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 флешке.

Пару команд на заметку:

locale-gen ru_RU.UTF8
dpkg-reconfigure locales


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

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

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

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

dd if=u-boot-sunxi-with-spl-ct-20131102.bin of=$card bs=1024 seek=8

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

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

mkfs.ext4 /dev/nandb


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

Установка.

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

apt-get update
apt-get install debootstrap
mount /dev/nandb /mnt/rootfs
debootstrap --verbose --arch armhf --variant=minbase --foreign stable /mnt/rootfs http://ftp.debian.org/debian
chroot /mnt/rootfs
/debootstrap/debootstrap --second-stage


cat <<END > /etc/apt/sources.list
deb http://ftp.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.debian.org/debian/ stable main contrib non-free
deb http://ftp.debian.org/debian/ stable-updates main contrib non-free
deb-src http://ftp.debian.org/debian/ stable-updates main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
END

apt-get update
export LANG=C
apt-get install apt-utils dialog locales
dpkg-reconfigure locales
# Выбираем en_US.UTF-8 или что сами хотите.
export LANG=en_US.UTF-8
apt-get install dhcp3-client udev netbase ifupdown iproute openssh-server iputils-ping wget net-tools ntpdate ntp vim nano less tzdata console-tools module-init-tools mc

cat <<END > /etc/network/interfaces
auto lo eth0
allow-hotplug eth0
iface lo inet loopback
iface eth0 inet dhcp
END

echo cubietruck > /etc/hostname
 
cat <<END > /etc/fstab
# /etc/fstab: static file system information.
#
#                
proc /proc proc defaults 0 0
/dev/nandb / ext4 noatime,errors=remount-ro 0 1
END

passwd
/etc/init.d/ntp stop

exit


Выключаем. Вытаскиваем SD карту. Включаем.  Должно работать, но сети у меня пока нет.  :) Исправлю - напишу.
Продолжение "настройка debian на cubietruck".
Еще пару экспериментов для памяти (которые мне не помогли):

под дескопной Виндой или Линуксом (од нашу АРМ систему не пойдет):
wget http://dl.cubieboard.org/software/a20-cubieboard/lubuntu/cb-a20-lubuntu-server-13.06-v1.00.img.gz
wget "http://forum.xda-developers.com/attachment.php?attachmentid=1740401&d=1361198061" -O "imgRePacker_204.zip"
gunzip cb-a20-lubuntu-server-13.06-v1.00.img.gz
unzip imgRePacker_204.zip
chmod 777 imgrepacker
./imgrepacker cb-a20-lubuntu-server-13.06-v1.00.img.gz

Заливаем через scp bootloader.fex

dd if=/usr/src/bootloader.fex of=/dev/nanda
это извлечение из nand образа загрузчика (какого-то уровня). imgrepacker отсюда.

8 комментариев:

  1. Для того, чтобы работали ethernet, wifi и прочее, необходимо скопировать в целевую систему папки /lib/modules и /lib/firmware. Делать это после выхода из чрута, но до перезагрузки в новую систему. Также, находясь в чруте, необходимо добавить модули sunxi_gpio и sunxi_gmac в автозагрузку.

    ОтветитьУдалить
    Ответы
    1. Да, Максим, я осветил этот вопрос в следующей части "Настройка Debian на Cubietruck". http://vermus.blogspot.ru/2013/12/debian-cubietruck-cubieboard-3.html

      Удалить
    2. Прошу меня простить, по началу не заметил...)

      Удалить
    3. Максим, это я виноват - забыл ссылку сделать на вторую часть :)

      Удалить
  2. > Многие кубитраки идут с багой - невозможно загрузить систему с SD карты.
    Что за баг? Как этого избежать? Просто наугад какой попадется?

    ОтветитьУдалить
    Ответы
    1. Я думаю баг был в софте (с которым поставляется кубитрак). Как с ним сейчас обстоит дело не знаю. Поищите на http://www.cubieforums.com/ информацию по-актуальнее.

      Удалить
  3. Проьовал по это инструкции, загрузка останавливалась на строчке
    systemd-journald[80]: Recieved request to flush runtime journal from PID 1

    модули и прошивки были перенесены (как советовали выше, с карты в nand).

    В итоге на карточку установил armbian (armbian.com), а из него скриптом (в комплекте) nand-sata-install перенёс систему на жесткий диск. Сейчас карточка используется как раздел с загрузчиком, а сама система на жестком диске. nand вообще не виден (такая особенность ядра).

    ОтветитьУдалить
    Ответы
    1. Ну инструкция могла слегка устареть, не спорю :)

      Удалить