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.

  1. apt-get update  
  2. apt-get install debootstrap  
  3. mount /dev/nandb /mnt/rootfs  
  4. debootstrap --verbose --arch armhf --variant=minbase --foreign stable /mnt/rootfs http://ftp.debian.org/debian  
  5. chroot /mnt/rootfs  
  6. /debootstrap/debootstrap --second-stage  
  7.   
  8.   
  9. cat <<END > /etc/apt/sources.list  
  10. deb http://ftp.debian.org/debian/ stable main contrib non-free  
  11. deb-src http://ftp.debian.org/debian/ stable main contrib non-free  
  12. deb http://ftp.debian.org/debian/ stable-updates main contrib non-free  
  13. deb-src http://ftp.debian.org/debian/ stable-updates main contrib non-free  
  14. deb http://security.debian.org/ stable/updates main contrib non-free  
  15. deb-src http://security.debian.org/ stable/updates main contrib non-free  
  16. END  
  17.   
  18. apt-get update  
  19. export LANG=C  
  20. apt-get install apt-utils dialog locales  
  21. dpkg-reconfigure locales  
  22. # Выбираем en_US.UTF-8 или что сами хотите.  
  23. export LANG=en_US.UTF-8  
  24. 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  
  25.   
  26. cat <<END > /etc/network/interfaces  
  27. auto lo eth0  
  28. allow-hotplug eth0  
  29. iface lo inet loopback  
  30. iface eth0 inet dhcp  
  31. END  
  32.   
  33. echo cubietruck > /etc/hostname  
  34.    
  35. cat <<END > /etc/fstab  
  36. # /etc/fstab: static file system information.  
  37. #  
  38. #                  
  39. proc /proc proc defaults 0 0  
  40. /dev/nandb / ext4 noatime,errors=remount-ro 0 1  
  41. END  
  42.   
  43. passwd  
  44. /etc/init.d/ntp stop  
  45.   
  46. exit  


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

под дескопной Виндой или Линуксом (од нашу АРМ систему не пойдет):
  1. wget http://dl.cubieboard.org/software/a20-cubieboard/lubuntu/cb-a20-lubuntu-server-13.06-v1.00.img.gz  
  2. wget "http://forum.xda-developers.com/attachment.php?attachmentid=1740401&d=1361198061" -O "imgRePacker_204.zip"  
  3. gunzip cb-a20-lubuntu-server-13.06-v1.00.img.gz  
  4. unzip imgRePacker_204.zip  
  5. chmod 777 imgrepacker  
  6. ./imgrepacker cb-a20-lubuntu-server-13.06-v1.00.img.gz  
  7.   
  8. Заливаем через scp bootloader.fex  
  9.   
  10. 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. Ну инструкция могла слегка устареть, не спорю :)

      Удалить