Меню Рубрики

Установка armbian на cubietruck

Установка Armbian на неподдерживаемые устройства

Многим из читателей знаком дистрибутив Armbian — “серебряная пуля” для владельцев устройств серии Orange Pi. Без “этих ребят” наши одноплатники давно пылились бы на антресолях.

Возможно, кто-то уже убедился, что “ядра” под определенный процессор от Allwinner (H2/H3/A20/A10) одинаковые, а “дистрибутив” различается только настройками script.bin (для legacy-ядер) или uboot и Device Tree.

Механизм Device Tree был введен в ядрах 4.x для облегчения портирования Linux на новые устройства. Это файл, описывающий “дерево устройств” в некотором универсальном виде. При старте системы он передается в качестве параметра загрузчику, который уже в свою очередь правильно инициализирует систему. Вроде так :).

Таким образом открываются возможности для установки Armbian даже на те устройства, где он официально “не существует”.

Во избежании недоразумений — всё нижеописанное относится к устройствам на Allwinner A10/A20, других у меня в данный момент нет 🙂 или они поддержаны.

  • Путь правильный — собирать свою систему, благо разработчики Armbian предоставляют такую возможность. Нужно выбрать загрузчик под своё устройство, который будет использовать нужный DT-файл. Вполне годный вариант, если вы точно знаете, что у вас за девайс, и он поддержан в исходниках ядра linux-sunxi.
  • Путь неправильный — выбрать “похожий” вариант устройства и подкрутить его DT-файл. Потребуется куча усилий, но в результате вы можете вернуть к жизни какой-нибудь убогий девайс на Android 4.0.4.

Ясное дело, я выбрал путь второй (устройства черти-какие). Помня успешный опыт установки legacy-ядер от уважаемого romanrm от Cubieboard/Cubieboard2 на чудо-устройства из Поднебесной я решил попробовать установить mainline-версию Armbian на выводок устройств с КДПВ (картинки-для-привлечения-внимания).

  • Подделка под MK808C. Работает на Allwinner A20, но, в отличие от оригинала имеет всего 512 мегабайт памяти. Про оригинал можно почитать вот тут. Прошивка Android 4 для него есть, как пишут на 4pda — получена от продавца. Так что никаких кастомов и обновлений, то есть тупиковая ветвь эволюции. “Похож” на Cubieboard 2.
  • Measy U1A. Типа бренд. Allwinner A10, 1 гб памяти. Из положительных вещей — на нём работает Cyanogen. “Похож” на Cubieboard 1.
  • Странный образец по имени Intcrown. Очень похож на предыдущий, но вот только Cyanogen поставить нельзя (другой WiFi чип), есть какая-то прошивка на 4pda, искать в теме про MK802II (даже вспоминать об этом не хочу). Опять-таки похож на Cubieboard 1.

Ну а дальше всё просто — качаем дистрибутивы Armbian для Cubieboard 2 и 1, пишем на microSD и грузим. Небольшая загвоздка с Cubieboard 1 — в Armbian он помечен, как deprecated, т.е. ветка не развивается, но, к счастью, образ доступен для скачивания.

С удивлением обнаруживаем, что система вполне себе стартует, но в dmesg видим массу “красноты”, ибо у нас нет ни Ethernet, ни Sata, ну может ещё пары устройств. На этом этапе лучше обновить систему командами apt-get update и apt-get upgrade.

И тут начинается некоторая магия. Примеры будут для Cubieboard 1, для второй версии принцип тот же.

Шаг первый

Делаем копию DTB-файла, который будем мучить.

cd /boot/dtb sudo cp sun4i-a10-cubieboard.dtb sun4i-a10-cubieboard_patched.dtb

В файле /boot/armbianEnv.txt добавляем строчку:

Перегружаем устройство и проверяем, что всё работает, как до редактирования.

Шаг второй

Для начала нужно декомпилировать dtb-файл в формат, пригодный для редактирования.

dtc -I dtb /boot/dtb/sun4i-a10-cubieboard_patched.dtb -O dts -o /boot/dtb/sun4i-a10-cubieboard_patched.dts

Шаг третий

Теперь открываем полученный .dts и редактируем. Хороший вопрос — что и как убирать 🙂 Смотрим в dmesg, находим несуществующие устройства типа ethernet, sata, ir и меняем их статус из “okay” на статус “disabled”.

Лучше отключать устройства по одному и проверять, достигнут ли желаемый эффект. Перед перезагрузкой нужно скомпилировать dts обратно в dtb.

dtc -I dts /boot/dtb/a10-cubieboard_patched.dts -O dtb -o /boot/dtb/a10-cubieboard_patched.dtb

Финально я лично получил вполне работающую систему. Главное тут — “не перехимичить” с устройствами, иначе останетесь без USB или там hdmi-вывода.

Шаг четвертый, последний и необязательный

В armbianconfig отключите обновления uboot и ядра. Это полезно, если не хотите повторять все приседания или гадать, почему система не грузится после обновления этих компонентов.

На выходе — правильно работающее устройство с ядром 4.x, которое вполне справится с задачами домашнего сервера.

Что ещё можно сделать? Например, для первого и третьего девайса на фотографии установить в nand систему на legacy ядре. В этом случае, правда, придётся выполнять отключение в script.bin — как его редактировать, можно почитать в документации на linux-sunxi. Но устанавливать не просто систему, а с GUI — ведь там будет работать аппаратное ускорение. И карманная рабочая станция вполне готова к работе :), а про винтажный Android забыть, как про страшный сон — всё равно прошивки скоро невозможно будет найти.

Читайте также:  Установка радиального подшипника на вал

Да, кстати, если кто-то будет собирать какие-то 3rd-party драйвера с гитахаба в Armbian, тут нужно выполнить ещё один шажок, а именно:

После этого драйвера вполне себе собираются.

На этом вроде всё. Пожалуй, про Android-свистки уже хватит, много уже про них написано.

источник

NAS на базе Cubietruck

NAS (Network Attached Storage) — это небольшой домашний сервер. Полезная в хозяйстве штука, которая обычно играет роль файлохранилища для домашней вычислительной техники, а также может сама скачивать файлы из интернета по расписанию. Использовать в качестве такого сервера полноценный компьютер нерационально — большое потребление энергии, шум. На эту роль отлично подходят популярные сейчас одноплатные компьютеры. (Как вариант, можно купить готовый NAS.) Попробуем настроить собственный NAS на основе CubieTruck.

О CubieTruck

Пару лет назад я купил CubieTruck — одноплатный компьютер на основе SoC архитектуры ARM. Тогда он подкупил меня тем, что имел аппаратную поддержку SATA, и к нему можно было подключить жёсткий диск напрямую без переходников, как в RaspberryPi.

  • AllWinnerTech SOC A20, ARM® Cortex™-A7 Dual-Core, ARM® Mali400 MP2 Complies with OpenGL ES 2.0/1.1
  • 2GB DDR3 @480MHz (960MTPS)
  • Видеовыходы: HDMI & VGA 1080p
  • 10M/100M/1G Ethernet
  • Wifi+BT беспроводные интерфейсы с антенной на плате
  • SATA 2.0 интерфейс, поддерживающий 2.5″ HDD, (для 3.5″ HDD потребуется дополнительное 12 V питание)
  • Хранение данных: MicroSD
  • 2 × USB HOST, 1 × OTG, 1 × Toslink (SPDIF Optical), 1 × IR, 4 × LED, 1 аудио, 3 кнопки
  • Питание: DC 5 V @ 2.5 A с HDD, поддержка литиевых батареек для RTC
  • 54 пина, поддерживающих I2S, I2C, SPI, CVBS, LRADC x2, UART, PS2, PWMx2, TS/CSI, IRDA, LINEIN&FMIN&MICIN, TVINx4 with 2.0 pitch connectors
  • Размер платы: 11 cm × 8 cm × 1.4 mm, хорошо подходит подходит для установки 2.5″ HDD

Об этом компьютере не раз писали в Интернете:

Хотя сейчас есть одноплатные компьютеры и помощнее при меньшей цене, эта система всё ещё актуальна.

С самого начала предполагалось, что плата будет работать без монитора как NAS. Она бесшумная, шум создаёт только жёсткий диск.

В качестве операционной системы поддерживается как Linux, так и Android. Естественно, для NAS лучше подходит первый.

Ниже описаны шаги, позволяющие построить файлохранилище и автоматическую торренто-качалку. Конечно, можно было бы добавить ещё много чего, возможности этого компьютера очень велики.

Предполагается, что читатель немного знаком с работой в командной строке Linux.

Питание

Вопрос питания довольно важный, если к плате подключен жёсткий диск. Сначала я питал его двух зарядных устройств: одно было подключено к основному разъёму питания, а второе к MicroUSB. Они могут использоваться одновременно. Но это неудобно и возникали сложности с отключением от питания.

Поэтому я купил в Китае блок адаптер, способный выдавать 3 А, с разъёмом USB. Его оказалось достаточно для запуска платы и старта жёсткого диска. Кстати, как я понял, большой ток нужен лишь для старта, во время работы диск потребляет меньше.

Установка базовой системы

Предлагаемые официально образы основаны на Lubuntu (ядро Linaro 13.06) и, мягко говоря, устарели. Если хочется установить свежее программное обеспечение, придётся повозится. После одной из попыток обновиться пакеты у меня система и вовсе перестала загружаться. Я уж не стал искать причины, а попробовал найти альтернативы.

Оказывается, существует дистрибутив Armbian (бывший Cubian), поддерживающий широкий спектр одноплатных компьютеров на ARM. Он основан на актуальных версиях Ubuntu и Debian и постоянно обновляется.

Для «безголового сервера» больше подходит ветка «Mainline». Если же нужен компьютер с монитором и поддержкой мультимедиа, то нужно устанавливать ветку «Legacy».

Для каждой ветки можно выбрать дистрибутив. Предполагается, что в дальнейшем используется образ Xenial Server, хотя разница в настройке будет незначительной.

Установка образа

Про это довольно много написано в Интернете. Установка выполняется очень просто. На «большом компьютере» скачиваем образ и записываем его побайтово на карточку:

Не забудьте заменить /dev/sdX на имя устройства, соответствующего карточке!

Команда dd предназначена для побайтового копирования файлов блоками указанного размера. Это размер задаётся параметром bs . В нашем случае он равен 1 мегабайту. if и of — входной и выходной файлы соответственно. А параметр status=progress заставляет во время работы выводить информация о том, сколько байт уже скопировано, чтобы мы не скучали.

Вставляем карточку и включаем систему. Первый запуск образа дольше обычного, так как создаётся swap и образ «растягивается» на всю карточку.

Первый запуск нужно проводить подключив монитор и клавиатуру, чтобы следить за диагностическими сообщениями и, если нужно, что-то подправить.

Хотя, хоть я это и не пробовал, наверное, можно после загрузки сразу подключиться через SSH. Главное узнать IP-адрес — он по умолчанию определяется динамически через DHCP.

Читайте также:  Установка 2 din магнитолы в sportage

Первоначальная настройка

По умолчанию вход выполняется от имени суперпользователя ( root ) с паролем 1234 (ха!).

При первом запуске система сама запрашивает логин и пароль, а также создаёт пользователя. И это правильно — лучше не сидеть от имени root , чтобы что-то не сломать и не подвергать компьютер лишнему риску.

Я создал пользователя vadim .

Зададим имя нашему компьютеру (я назвал его archive):

Сразу хочу оговориться, что это действие, как и многие другие можно выполнить с помощью утилиты armbian-config . Но мне нравится контролировать процесс настройки, да и команды несложные, поэтому пользоваться мы ей не будем.

Тем не менее, если у вас нет опыта работы с Linux, то, возможно, эта утилита вам пригодится.

Запуск команд без пароля

Чтобы пользователю vadim можно было запускать команды от имени суперпользователя без запроса пароля, нужно подправить файл /etc/sudoers . Его нужно открыть на редактирование командой visudo . Добавим строчку:

Кто-то может счесть это дырой в безопасности. Однако, если злоумышленник сможет зайти от имени пользователя vadim , то это будет меньшей из проблем, так как он получит доступ к файлам. В противном же случае эта настройка на безопасность никак не влияет.

Локализация

Устанавливаем пакет с переводами:

Установка системной локали (язык, кодировка и разные настройки, связанные с ними):

Для переключения раскладки клавиатуры на русский язык правим файл /etc/default/keyboard :

После этого раскладка будет переключаться по Alt+Shift.

Если требуется тонкая настройка шрифтов в консоли:

Последние шаги нужно выполнять только если предполагается сидеть в терминале через подключенный монитор. При работе через SSH это ни на что не влияет.

Полезные программы

Тут каждый ставит то, что хочет. Например, для установки пакетов я использую aptitude. Но здесь он уже есть из коробки.

Поэтому доустановим лишь Midnight Commander и текстовый редактор jed (легкий вариант моего любимого emacs):

Настройка сети

Чтобы было удобнее подключаться, зададим нашему NAS статический IP-адрес. (Его нужно задавать так, чтобы он находился в той же подсети, что и остальные домашние компьютеры, и чтобы он не попадал в диапазон раздаваемых через DHCP адресов. Поэтому у вас адрес может быть и другим.)

У меня шлюз (в его роли выступает роутер) имеет адрес 192.168.0.254.

Итак, зададим статический IP 192.168.0.1 со шлюзом 192.168.0.254.

Есть два варианта настройки сети. (Спойлер: второй проще и скорее всего вам нужен именно он.)

1 способ. Настройка сети через systemd

Создаём файл /etc/systemd/network/wired.network с содержимым:

Включаем автонастройку сети через systemd

После этого systemd будет добавлять к указанному интерфейсу статический адрес. Но и адрес, полученный через DHCP тоже будет работать. Это бывает удобно.

2 способ. Настройка сети через /etc/network/interfaces

Настройка сводится к правке /etc/network/interfaces :

Для настройки DNS добавим в /etc/resolv.conf строчки:

Это DNS от Google. Можете указать и свои. У меня, например, на самом деле прописан адрес роутера, который умеет кэшировать DNS-запросы.

После настройки нужно перезапустить сетевую подсистему:

Или же можно просто перезагрузиться.

Настройка WiFi

Если не хочется тянуть к NAS сетевой провод, можно использовать WiFi. Настраивается так же, как и проводная сеть.

Удалённый доступ

В дальнейшем планируется подключаться к NAS через SSH. Чтобы не вводить каждый раз пароль настроим доступ по ключу.

Проверка состояния сервера SSH (он установлен из коробки):

Все дальнейшие действия выполняются на большом компьютере (который будет подключаться).

Пароль можно оставить пустым. (Тогда, главное, ключ никому не давайте!)

Добавление ключа в связку:

Копирование ключа на сервер:

Теперь к NAS можно подключиться без пароля:

Жёсткий диск

Для начала создадим системную группу для работы с жёстким диском. Все пользователи, от имени которых работают демоны (системный фоновые процессы), должны быть включены в эту группу, так как у диска будут права этой группы.

Включаем основного пользователя в эту группу:

Создание директории для монтирования жёсткого диска:

Для автоматического монтирования добавляем диск в /etc/fstab :

Здесь /dev/sda1 — имя устройства, связанного с жёстким диском. Скорее всего оно будет так называться, хотя гарантий нет.

Вместо /dev/sda1 можно указать UUID, который отображается командой blkid.

У каталогов, с которыми будут работать разные программы, должны быть права

  • 2 — SGID, чтобы для внутренних файлов использовались права группы владельца каталога.
  • 7 — Пользователь может всё.
  • 7 — Группа пользователя может всё.
  • 5 — Остальные могут только читать и смотреть содержимое каталога.

Если на диске уже есть файлы, для смены прав доступа могут быть полезны команды:

Они находят все файлы и подкаталоги в текущем (не забудьте в него перейти) и меняют права.

Читайте также:  Установка air 110 plus

Установка владельца для всех файлов и каталогов в текущем:

Торренты

Настроим автоматическую закачку торрентов по расписанию.

Установка Transmission

В качестве «качалки» будет использовать Transmission. У него есть вариант без графического интерфейса. Управлять программой можно через браузер или с помощью приложений, которые подключаются к нему по сети.

Я, например, использую Torrnado для Android.

Добавляем демона к группе data:

Для настройки демона нужно сперва его остановить:

Конфигурация демона находится в файле /etc/transmission-daemon/settings.json . Исправим следующие параметры:

Здесь umask=2 (или же 002) вместо 18 (=022) по умолчанию задаёт файлам права 774 вместо 744. Этот параметр задаёт биты маски прав доступа, которые не устанавливаются.

Пользователь и пароль по умолчанию: transmission:transmission. Чтобы задать пароль нужно вписать его в поле rpc-password.

Для пользователя и пароля vadim:PASSW0RD:

После перезапуска Transmission сам его хеширует и в следующий раз в конфигурации вместо пароля будет хеш.

Выключить пароль можно опцией rpc-authentication-required .

Если поменять URL для RPC, то некоторые программы могут не работать. Будьте внимательны!

Установка Monitorrent

Раньше я пользовался Flexget — это необычайно мощная качалка файлов, которая, пожалуй, может всё. Но, поддавшись модным тенденциям, перешёл на Monitorrent. У него лучше поддержка популярных трекеров, но он пока не умеет, например, скачивать премьеры.

Проще всего устанавливать его через Docker. Для этого, конечно, нужно сперва установить сам Docker.

Теперь запустим контейнер с Monitorrent:

Здесь при помощи параметра -v файл вне контейнера (база настроек) отображается в контейнер. Это нужно, чтобы при обновлении или перезапуске контейнера база не стёрлась.

Параметр —name сразу даёт контейнеру имя monitorrent , чтобы потом его легко было найти.

Следующей командой можно получить список контейнеров и убедиться, что наш контейнер успешно создан и запущен.

Затем настраивается сам Monitorrent по адресу http://192.168.0.1:6687. Не забудьте задать пароль на вход.

Осталось только настроить уведомления. Тут уже каждый выбирает способ себе по душе. Для меня самыми удобными оказались уведомления через Telegram. Подробную инструкцию можно найти в wiki проекта.

Samba

Для доступа к файлам с компьютеров под управлением Windows нужна Samba.

источник

Vermus

Программирование, администрирование, музыка, мысли.

19 декабря 2013 г.

Установка Debian на Cubietruck (cubieboard 3) на внутреннюю память (NAND)

Пришел мне cubietruck. На нем для тестов предустановлен android 4. Мне графика ни к чему, да и сервер на андроиде бестолковая затея. Выяснив, что на данный момент Cubian толком не поддерживает Cubietruck пришлось выбирать из рекомендованного программного обеспечения. В итоге выбор пал на Lubuntu Server (официальный сайт).

В процессе поиска, я наткнулся на порт debian для cubietruck для SD Card. Но он нам пригодится не для установки, а для работы с NAND. Можно взять Cubiuntu (пароль по умолчанию linaro\linaro).

1. Скачиваем образ по ссылкам.
2. Скачиваем Win32 Disk Imager (делал под виной)
3. Вставляем sd карту или флешку, и пишем на нее образ. После старта, ищет загрузчик сначала на MicroSD карте, если не находит его, тогда на внутреннем накопителе, и в конце на USB флешке.

Устанавливаем lubuntu в nand с помощью LiveSuitPack (или PhoenixSuit1.0.6.rar for Windows). Нажимаем кнопку FEL вставляем miniUSB в компьютер. Отпускаем FEL после включения. Для чего это надо? С этим образом загрузочные разделы, в которых я честно говоря пока не особо шарю, поэтому проще будет сделать так.

Далее, узнаем ip адрес устройства, заходим по ssh или подключаем клавиатуру.

Дальше у меня возникла проблема с этим портом для sd-карты. Многие кубитраки идут с багой — невозможно загрузить систему с SD карты. Испробовав разные комбинации обнаружил что если нажать ресет, а потом сразу вставить карту — система грузится! Потом нашел и другое решение — загрузить андроид с nand, и перезагрузится из него.

Попробуем скопировать другой загрузчик (собранный для lubuntu) в карту (не в раздел,а прямо в устройство).

В итоге в данном виде загрузка с SD карты у меня происходит без проблем.
Черт, вчера работало, сегодня нет, необъяснимо. 🙂

Форматируем после перезагрузки основной раздел, где лежит ОС (опять же загружаемся с sd карты пока).

Раздел /dev/nanda трогать, как тут смысла я думаю нет. Плюс в /dev/nand уже тоже есть загрузочный сектор, который уже подготовлен.

rootfs, устанавливаем стабильный debian.

Выключаем. Вытаскиваем SD карту. Включаем. Должно работать, но сети у меня пока нет. 🙂 Исправлю — напишу.

Продолжение «настройка debian на cubietruck».
Еще пару экспериментов для памяти (которые мне не помогли):

это извлечение из nand образа загрузчика (какого-то уровня). imgrepacker отсюда.

источник

Добавить комментарий