Показаны сообщения с ярлыком ARM. Показать все сообщения
Показаны сообщения с ярлыком ARM. Показать все сообщения

22 декабря 2013 г.

Настройка Debian на Cubietruck (cubieboard 3)

В прошлом посте мы установили debian на nand память cubietruck. Итак, сеть не работает.

Проводная сеть.

modprobe sunxi_gmac

Это команда подгрузки модуля сетевого интерфейса в cubietruck. Она вызовет у нас ошибку вроде "could not open moddep file modules.dep.bin". А все потому что такого файла у нас нет и вообще каталога /lib/modules у нас нет. Решается просто - копируйте с SD карты с debian каталог /lib/modules, только проследите за тем, что у ядра у вас совпадают.

root@debtruck:~# mount /dev/mmcblk0p2  /mnt/mmc
root@debtruck:~# modprobe sunxi_gmac
root@debtruck:~# uname -a
Linux debtruck 3.4.61+ #1 SMP PREEMPT Sat Oct 26 13:08:57 CST 2013 armv7l GNU/Linux

После этого сетевой модуль подгрузится и будет работать.

Теперь есть интернет можно поставить еще один пакетик:
apt-get install bash-completion

Включение wifi

modprobe bcmdhd


А проще скопировать файл /mnt/mmc/etc/modules.conf c SD карты в NAND и перезаписать его. Тогда все необходимые модули будут грузиться автоматически. Еще можно скопировать каталог /lib/firmware.

Расширение дискового пространства

Так как изначально образ lubuntu сервера был где-то около 2 Гигабайт, а в NAND вроде нам обещали 8 Гигабайт, то имеет смысл расширить основной раздел. Перезагружаемся на SD карту (В принципе можно и работать прямо с nand, но мне не хотелось захламлять систему пока всякими git и make). Я испытываю проблемы с загрузкой с SD карты, похоже какой-то баг нерешенный. Но вроде приноровился вставлять карту при перезагрузке (см. предыдущий пост). Далее:
# apt-get install git
# git clone git://github.com/linux-sunxi/sunxi-tools
# cd sunxi-tools
# apt-get install libusb-1.0-0-dev make pkg-config
# make
# make install

Далее, запускаем скомпилированную программу nand-part и читаем, что пишут:
"Как видим мы хотим объединить 2 и 3 раздел в один, поэтому новая часть 2 радела is 4194304 + 10584064 = 14778368. "

# ./nand-part -f a20 /dev/nand 32768 'boot 131072' 'rootfs 14778368'

Перезагружаемся без SD карты.

# resize2fs /dev/nandb
# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          7.0G  866M  5.9G  13% /
Отлично, у нас 7 гигабайт!

Память

С памятью вроде проблем нет (dmesg):

Memory: 448MB 1536MB = 1984MB total

Светодиодная индикация

1 голубой включено
2 оранжевый cpu0 (загрузка)
3 белый cpu1 (загрузка)
4 зеленый mmc0 (обращение)


init.d Скрипт отключения/включения светодиодов в cubietruck:

#!/bin/bash
case "$1" in
    start)
        echo 0 > /sys/class/leds/orange:ph20:led2/brightness
        echo "Switching off Orange LED"
        echo 0 > /sys/class/leds/blue:ph21:led1/brightness
        echo "Switching off Blue LED" 
        echo 0 > /sys/class/leds/white:ph11:led3/brightness
        echo "Switching off White LED" 
        echo 0 > /sys/class/leds/green:ph07:led4/brightness
        echo "Switching off Green LED" 
    ;;
    stop)
        echo 1 > /sys/class/leds/orange:ph20:led2/brightness
        echo "Switching on Orange LED"
        echo 1 > /sys/class/leds/blue:ph21:led1/brightness
        echo "Switching on Blue LED" 
        echo 1 > /sys/class/leds/white:ph11:led3/brightness
        echo "Switching on White LED" 
        echo 1 > /sys/class/leds/green:ph07:led4/brightness
        echo "Switching on Green LED" 
     ;;
    *)
        echo "Usage: /etc/init.d/leds {start|stop}"
        exit 1
    ;;
esac


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

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 отсюда.