суббота, 26 октября 2013 г.

Установка Linux на Cubieboard

Как мы ставили Linux на SD-карту для использования в одноплатном компьютере Cubieboard.


Предыстория

По умолчанию на внутренней флеш-памяти компьютера имеется ОС Android, однако нам она не подходит, ведь мы хотим не мультимедийно-развлекательную платформу, а бортовой компьютер для летающего робота. В его задачи будет входить распознавание образов с видеокамеры и формирование управляющих команд. Конечно, полноценный Linux для таких целей подходит гораздо лучше.



Процесс установки  

После нескольких проб и ошибок мы остановились на дистрибутиве Cubian. Он основан на Debian и имеет адекватный размер по умолчанию (106 мегабайт в архиве). Для установки требуется MicroSD-карта размером не менее 2 Гб (мы использовали 16 Гб).
(Обратите внимание, что с момента написания статьи появились новые версии Cubian. Здесь приведены инструкции для версии r5. При использовании более новых версий возможны небольшие отличия)

Грузимся в имеющийся Linux на ноутбуке и
#  Получаем контроль над вселенной
sudo -i
#  Удостоверяемся, что установлены нужные утилиты
apt-get install wget p7zip-full pv
#  Качаем образ (106 Мб)
wget http://dl.cubieboard.org/software/a10-cubieboard/cubian/Cubian-base-r5-arm-a10.img.7z
#  Находим тут имя своей SD-карты, например, sdx
ls -l /dev/disk/by-id/
#  Удостоверяемся, что карта не примонтирована
umount /dev/sdx*
#  Распаковываем образ и сразу заливаем его на карту
#  Все данные на карте будут уничтожены!
7z -so x Cubian-base-r5-arm-a10.img.7z | pv -B 1M -s 1G > /dev/sdx
#  Удостоверяемся, что данные записаны
sync
Если ваша карта больше 1 Гб, имеет смысл растянуть раздел на всю карту. Для этого можно воспользоваться интуитивно понятным графическим редактором разделов:
apt-get install gparted
gparted
Вставляем готовую карту в Cubieboard и включаем питание. Далее нужно решить, каким образом вы хотите получить доступ к консоли. Есть несколько способов.

Монитор + клавиатура

HDMI-монитора у нас не оказалось. Для VGA-монитора требуется либо переходник HDMI→VGA, либо плата с VGA разъёмом. Но мы лёгких путей не ищем и распаяли VGA самостоятельно.

Ethernet

Это возможно, если в сети имеется DHCP-сервер (например, роутер), который сможет выдать вашему одноплатнику IP-адрес. Этот IP-адрес можно подсмотреть в роутере, либо считать сигналы азбуки Морзе с синего светодиода платы. После чего можно зайти по SSH, порт 36000, пароль cubie.
ssh -p 36000 cubie@192.168.0.132

Последовательный порт

Подключаем самый простой USB-Serial адаптер к любезно выведенному коннектору прямо посередине платы и
apt-get install screen
screen /dev/ttyUSB0 115200
Пользователь cubie, пароль cubie.
Для выхода из screen используйте последовательность клавиш Ctrl+A k y

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

Поздравляю, Linux занял положенное ему место на вашем одноплатнике, однако расслабляться рано. Нужно ещё кое-что подшаманить.
sudo -i
#  Процессор разогнан до 1200 МГц, из-за этого он нестабилен. Ставим 1008 МГц
echo -n 1008000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
#  Ставим обновлялку cubian, которая, в частности, исправляет проблему с тактовой частотой
apt-get update
apt-get install cubian-update
cubian-update
reboot

Также имейте в виду, что по умолчанию не установлена графическая оболочка. Если вам она нужна, поставьте по своему усмотрению. Мы поставили LXDE:
sudo -i
apt-get install lxde
Надеюсь, я не забыл ничего важного. Буду рад вашим вопросам и комментариям.