Под катом 3 скрипта, которые позволяют обновить Cubian (дистрибутив для плат на Allwinner A10/A20) до актуальной версии Debian.
После выполнения всех скриптов будет установлена актуальная версия Debian.



Скрипты проверялись на плате с Soc Allwinner A10. Обновление с версии Cubian-nano-x1-a10-hdmi до Debian 8.3 (актуальной на момент окончания статьи). С минимальными изменениями (а может и без них) должно работать и на A20.
Дистрибутивы Cubian предназначены для плат на основе Soc Allwinner A10/A20.
Дистрибутив Cubian X1 вышел Oct 08, 2014. С тех пор не обновлялся. Доступен для скачивания через официальный торрент(который не всегда работает, поэтому доступен на яндекс-диске).
В своей основе Cubian это Debian с загрузчиком, настройками и скриптами специфическими для Allwinner, в частности для плат Cubian. В принципе все платы на A10/A20 похожи и повторяют референсную схему — придумывать/изменять там особо нечего.
Для поддержки в актуальном состоянии ОС и пакетов (это очень снижает затраты на подготовку и поддержку нашей прошивки) надо подробно разбираться в особенностях SoC для формирования загрузчика и управления всей периферией. Это уже сделано командой дистрибутива Cubian.
Но Cubian немного устарел.
Были созданы скрипты для последовательного обновления от Cubian до актуальной версии Debian с минимальным вмешательством пользователя.
Скрипты были проверены на Allwinner A10 на плате DS-110, которая является почти аналогом CubieBoard.

Порядок обновления

.
Скачиваем Cubian-nano-x1-a10-hdmi.7z, разархивируем и записываем на карту microSD образ (например с помощью sourceforge.net/projects/win32diskimager). Просто для работы достаточно карты размером 2Гб, если планируется разработка под Debian — 4 или 8 Гб.
Вставляем полученную карту в плату, включаем. Ждем окончания загрузки.
Меняем, если необходмо, пароль. По умолчанию пароль «cubie».
Изначально ip адрес получается по dhcp. Узнать адрес можно на dhcp сервере или залогинившись на консоли(имя «cubie», пароль «cubie»).
Оригинальная плата Cubiebiard покажет свой адрес азбукой Морзе мигая светодиодом, подробнее на github.com/cubieplayer/Cubian/wiki/Get-started-with-Cubian
Для обновления этот ip адрес должен иметь доступ в интернет.
Подключаемся через ssh, порт 36000.
Изначально имеем
cubie@Cubian:~$ cat /etc/*release*
PRETTY_NAME="Debian GNU/Linux 7 (wheezy)"
NAME="Debian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support/"
BUG_REPORT_URL="http://bugs.debian.org/"

Подготовка к выполнению скриптов.
Устанавливаем git(предварительно установив время и обновив репозитории)
sudo ntpdate-debian
sudo apt-get -y install debian-keyring
sudo apt-get update
sudo apt-get -y install debian-archive-keyring
sudo apt-get update	
sudo apt-get install -y git

Скачиваем скрипты обновления
git clone https://opensourceclient@bitbucket.org/opensourceclient/prepare-cubian.git

Первый скрипт:


добавляет удобства (файлы .nanorc, .bashr), устанавливает ограничение частоты(через cpufrequtils), перенаправляет логи на ram-диск, отключает IPv6.
./prepare-cubian/cubian_update-1.sh

Плата будет выключена.

Второй скрипт:


./prepare-cubian/cubian_update-2.sh

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

Третий скрипт:


./prepare-cubian/cubian_update-3.sh

обновляет дистрибутив Debian до актуальной версии, ядро остается то же.
При обновление udevil — ответить yes.
Также будет установлен пакет cubian-nandinstall — он один для A10/A20(https://github.com/cubieplayer/Cubian/wiki/Install-Cubian) позволяет скопировать содержимое sd карты в NAND(если на плате есть NAND) и в дальнейшем загружаться с NAND.
Скрипты от Сubian (cubian-morsedecode, cubian-morsemsg, cubian-morseshowip-reversed, cubian-networklight, cubian-getip, cubian-morseencode, cubian-morseshowip, cubian-motd-package, cubian-ntpdate) находятся в /usr/lib/cubian/. Из названий понятно предназначение.
Плата будет выключена.

В итоге имеем


cubie@Cubian:~ $ cat /etc/*release*
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"


Стоит сохранить образ SD карты в качестве «эталонного».

Ещё несколько слов


Важной частью Сubian является пакет cubian-nandinstall — позволяет скопировать образ SD карты с карты в NAND. Пакет сам установит загрузчик на NAND и обеспечить загрузку с NAND.
Немного о SoC Allwiner A10/A20
Порядок загрузки SoC Allwiner A10/A20:
— если есть SD карты — грузимся с SD карты, этот режим является режимом восстановления, всегда можно загрузиться с эталонного образа SD карты.
— если нет карты, пробуем загрузиться с NAND.
— как правило в качестве загрузчика используется uboot, что позволяет сделать загрузчик для дальнейшей загрузки по сети.
SoC Allwiner A10/A20 не имеет фиксированного mac адреса. Mac адрес назначается при загрузке ОС.
Параметры видео, сетевые настройки, GPIO (в cubieboard их 67 штук) настраиваются через файл /boot/script.bin (подробнее linux-sunxi.org/Manual_build_howto).

Оболочка для использования в качестве терминального клиента RDP - точно применимо на нашей плате (DS-110).
Возможно будет работать и на других платах на A10/A20.
Нижеследующие скрипты не зависят друг от друга.

Для работы нашей платы (ссылка) в качестве тонкого клиента необходимо запустить скрипт


prepare-cubian/cubian_update-customize.sh

будут поставлены необходимые пакеты, сделаны настройки консоли, установлена оболочка, специально скомпилированный пакет FreeRDP плата будет выключена.

Для обновления ядра служит скрипт


prepare-cubian/cubian_update-kernel.sh

К нашей платы можно подключиться к консоли через COM порт (переходник USB-toCOM,ttl), параметры порта 115200/8-N-1.

Установить средства разработки


prepare-cubian/cubian_update-development.sh

Комментарии (9)


  1. ErshoFF
    28.01.2016 13:14

    Это ответ на комментарий, что
    «обновлять cubian не надо, теперь он называется armbian»

    Cпасибо за поправку.
    Однако не нашел на www.armbian.com про то, что он продолжение cubian, и наоборот, что cubian теперь называется armbian.

    Не нашел «автор, Igor Pecovnik » в авторах cubian на github (https://github.com/cubieplayer/Cubian).

    Поэтому можно ссылку на ваше заявление? Добавлю в пост.


    1. rurik19
      29.01.2016 06:56

      На сайте www.igorpecovnik.com, откуда я брал ранние образы, был пост «Project name change», однако сейчас все ссылки оттуда ведут на armbian.com и прочитать его не получается. Так что приношу извинения — доказательств наследственности нет :)
      UPD: Доп. изыскания на www.cubieforums.com показывают, что о cubian и сборке Pecovnik говорили как о разных.
      UPD2: ага, вот — назывался «Debian-micro-home-server» github.com/igorpecovnik/Debian-micro-home-server.
      Сорри за непроверенное заявление. Но armbian, как мне кажется, всё-же лучший дистрибутив по крайней мере для cubietruck


  1. rurik19
    28.01.2016 17:48

    Зачем обновлять cubian?? Его автор, Igor Pecovnik активно развивает проект, обобщив его для всех ARM-ов, в связи с чем сменил название на «ARMBIAN». Сайт соответственно www.armbian.com. У меня на кубике сейчас debian 8.3 с ядром 4.2.6.


  1. GTSpecialist
    29.01.2016 09:59

    ДОБРОГО ВСЕМ ВРЕМЕНИ СУТОК! Схема рабочая, проверено на А10.
    Господа подскажите, надо поставить некую прогу teamviewer, на сайте скачал deb, а Сubian выдает типа неправильная архитектура i386. На сайте: «In case you get the error “wrong architecture i386” you have to execute the following command lines as an administrator:
    dpkg --add-architecture i386
    apt-get update»
    пытаюсь dpkg --add-architecture i386, а он мне пишет: dpkg:error: unable to create new file '/var/lib/dpkg/arch-new': Permission denied
    Понимаю: надо под root запускать… гуглил искал алгоритм — нет решения. Может кто в теме, как на этом образе зайти через root?
    Пожалуйста, подробный алгоритм. Заранее БЛАГОДАРЮ!
    P.S. и ещё: при загрузки после установки второго скрипта MATE desktop не загружается, остаюсь в text mode(. а как у вас?


    1. Celtis
      29.01.2016 10:25

      Я так понимаю, отсылать в man бесполезно…
      Ладно, «execute the following command lines as an administrator» подразумевает запуск от имени root. Делается это путем вызова команды sudo.
      Пример: для запуска apt-get update с правами администратора нужно ввести sudo apt-get update
      Во время выполнени команды от Вас потребуется ввести пароль учетки, позволяющей выполнять команды с указанными правами. Вы его, надеюсь, знаете?
      ЗЫ. Вот вам и Read&Comment…


    1. doubleP
      29.01.2016 11:07

      Вроде бы нет TeamViewer под Linux для архитектуры ARM. Есть только для Android.


    1. shabbybastard
      29.01.2016 11:07

      Посмею предположить, что архитектуры разные и у вас не получится получить Teamviewer на кубике. У Cubieboard armhf, а пакеты на сайте для i386/amd64.
      Можно было бы собрать из исходников, но на проприетарное ПО вы их вряд ли найдёте.

      А вообще, вопросы не по теме топика лучше оставлять на Тостере.


  1. avizero
    29.01.2016 13:02

    Аппаратное ускорение видео (1080p?) и 3D акселерация будет работать после всех манипуляций?


    1. ErshoFF
      29.01.2016 13:06

      HD точно работает.
      Был проект по показу в общественном транспорте рекламы.
      Собранный пакет есть на bitbucket.org/opensourceclient/prepare-cubian
      файл
      prepare-cubian / deb/xf86-video-fbturbo-for-ds110_0.5.1-1_armhf.deb

      Ставиться при установке нашей оболочки.
      Если нужен — поставьте самостоятельно.