Привет! Возможно моя статья будет выглядеть несколько «нубоватой», но аналогичного HOW TO в русскоязычном интернете лично я найти не смог. Речь пойдет о первичном развертывании операционной системы на одноплатном компьютере Odroid-W от Hardkernel, которому уделили на Хабре уже две статьи описательного характера. Особенностью будет использование совместно с самой платой “W Docking Board with TFT LCD”, без которой, к.м.к. возможности данной железки раскрыты не до конца.
О чем мне хотелось бы рассказать:
1) Подготовка и установка операционной системы;
2) Вывод графики на внешний дисплей;
3) Вывод графики на дисплей “W Docking Board”;
4) Подключение веб-камеры;
5) Подключение Wi-Fi донгла.
О чем я планирую рассказать в следующий раз, если эта статья не улетит в черную дыру:
6) Подключение 4G модема с последующей раздачей интернета через Wi-Fi.
На Odroid будем ставить омалиненный Debian. Все подготовительные работы выполнять на PC с установленной Windows 7. Подготовительные работы в nix-based операционках делаются гораздо проще и не требуют дополнительного ПО.
Часть первая
Итак начнем. Для начала потребуется обзавестись micro-sd картой размером > 4 Gb, а так же карт-ридером для оного (+переходник). Тут главное правило – чем больше, тем лучше. Ну и разумеется чем выше класс карты, тем быстрее все будет работать. Для начала необходимо скачать дистрибутив Raspbian последней версии сборки, а так же утилиты SDFormatter, Win32DiskImager, SSH-клиент (например Putty).
Для начала вставляем SD-карту в карт-ридер и запускаем SDFormatter, выбираем букву диска нашей карты, опцию QUICK FORMAT и жмем Format. Выполняется достаточно быстро.
Далее запускаем Disk Imager, выбираем скачанный образ дистрибутива и записываем на карту. Выполняется не очень быстро.
Далее, вставляем карту памяти в Odroid-W, подключаем сетевой кабель W Docking Board к запускаем микрокомпьютер. Затем немного подождав нужно определить ip-адрес платы (я подключал к своему роутеру, и соотв. выданный DHCP адрес увидел в веб-интерфейсе роутера). Затем необходимо подключиться SSH клиентом (я использую проприетарный SecureCRT) из простых и бесплатных подойдет Putty. Не буду останавливаться на настройке SSH там во-первых все просто, а во вторых статей в интернете хватает. Для подключения необходимо использовать логин pi и пароль raspberry. Сразу же рекомендую исполнить sudo su и passwd и задать свой пароль для пользователя root и в дальнейшем уже заходить из под него (хотя возможно найдется немало противников данного метода, которые используют sudo).
Часть вторая
Для подключения внешнего дисплея дополнительно необходимо: монитор/телевизор с разъемом HDMI, кабель HDMI-microHDMI, либо другие варианты, типа DVI-microHDMI и прочие извращения в зависимости от возможностей. После подключения монитора скорее всего на экран ничего выводится не будет, но это решается довольно просто, необходимо изменить файл /boot/config.txt при помощи редактора nano, либо сразу поставить mc, в дальнейшем все равно пригодится. Необходимо раскомментировать строку hdmi_safe=1
Небольшую часть настройки, такую как запуск X можно будет почерпнуть из третей части. Я не уделял особого внимания выводу картинки на монитор, т.к. предполагалось портативное решение, с использованием встроенного экрана.
Часть третья
Этот текст я не придумал сам, а нашел таки в официальном англоязычном вики. Поэтому привожу ссылку на оригинал, далее перевод и некоторые комментарии. На самом деле даже эту инструкцию оказалось не так просто найти (по крайней мере для меня).
Правим файл /etc/modprobe.d/raspi-blacklist.conf, необходимо закомментировать:
#blacklist spi-bcm2708
Добавляем в файл /etc/modules
fbtft_device name=adafruit22a verbose=0 rotate=90
На самом деле я использовал rotate=270, мне так оказалось удобнее.
В офф.мануале прописано, как сделать автологин, но мне такая идея не очень по нраву.
Привожу как есть, в файле /etc/inittab
Добавляем строку:
#1:2345:respawn:/sbin/getty --noclear 38400 tty1
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1
Где pi – имя юзера.
И автозапуск ИКСов. Если честно, учитывая размеры экрана я бы не рекомендовал их использование, но приведу для тех, кто хочет сделать из Odroid-W гламурные часики
Добавить в /etc/rc.local
su -l pi -c "env FRAMEBUFFER=/dev/fb1 startx &"
где pi – имя юзера.
А т.ж. отключаем опцию в /usr/share/X11/xorg.conf.d/99-fbturbo.conf
# Option "fbdev" "/dev/fb0"
Которая выводит картинку на внешний экран (через HDMI)
И последний штрих, в /boot/cmdline.txt добавляем в конце строки:
fbcon=map:10
И после перезагрузки вы увидите приветливо моргающий ГУЙ LXDE.
Часть четвертая
Warning! Здесь и далее будут представлены ссылки на допоборудование, но: а) не являются рекламой, б) не содержат рефералов, в) не рекомендуется к покупке.
Мной использовалась простейшая китайская noname веб-камера, которая была подвергнута некоторым механическим доработкам после получения. Для работы с ней потребовалось установка следующих пакетов: libv4l и fswebcam для установки и определения возможностей и mjpg-streamer для потоковой трансляции картинки с камеры.
Первые 2 пакета имеются в репозитарии, устанавливаем их aptitude install libv4l-0 fswebcam
А mjpg-streamer качаем с S.F. и распаковываем в *удобную вам папку* (для меня это просто в /root).
При подключении камеры в lsusb должно появится нечто связанное с камерой (особенно при использовании брендовых устройств):
pi:~# lsusb
Bus 001 Device 007: ID 1871:0101 Aveo Technology Corp.
И в dmesg:
pi:~# dmesg
[ 1182.284021] usb 1-1.4: new high-speed USB device number 8 using dwc_otg
[ 1182.394987] usb 1-1.4: New USB device found, idVendor=1871, idProduct=0101
[ 1182.395067] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1182.395087] usb 1-1.4: Product: USB2.0 Camera
[ 1182.395135] usb 1-1.4: Manufacturer: AVEO Technology Corp.
[ 1182.403956] uvcvideo: Found UVC 1.00 device USB2.0 Camera (1871:0101)
[ 1182.408696] input: USB2.0 Camera as /devices/platform/bcm2708_usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input4
Далее запускаем fswebcam:
pi:~# fswebcam --verbose
И определяем что (в данном случае моя) камера работает в режиме YUYV и поддерживает 2 разрешения:
Using palette YUYV
Adjusting resolution from 384x288 to 352x288.
Далее необходимо подготовить скрипт запуска mjpg-streamer. Большой набор примеров с описанием есть собственно в ./mjpg-streamer/start.sh
Можно в принципе не пользоваться данным файлом, а запускать прямо из консоли. Мой вариант такой:
pi:~# ./mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 384x288 -f 10 -y -q 100" -o "./output_http.so -w ./www"
MJPG Streamer Version: svn rev: 3:172M
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 384 x 288
i: Frames Per Second.: 10
i: Format............: YUV
i: JPEG Quality......: 100
Где указано устройство, разрешение, кол-во кадров в секунду, режим работы камеры, качество jpeg и выходной файл (встроенный веб-сервер).
Можно зайти в браузер по адресу http://[odroid.w.ip.address]:8080 и посмотреть поток со своей камеры. Готово!
У Odroid-W имеется интерфейс mipi-csi для подключения матрицы непосредственно к SoC, но работа с данными камерами остается за кадром (не очень устраивает их стоимость).
Часть пять
Wi-Fi донгл я купил на известном китайском e-рынке за вполне смешные деньги, тут главное не проколоться, и не купить донг, который не умеет поддержку AP.
Упс! Пока писал эту статью моя платка чуткасильно зачудила, и отказалась включаться. Но чтобы закончить начатое, я просто приведу ссылки на 2 мануала, по которым можно настроить Wi-Fi донгл на этой плате:
http://hizz.livejournal.com/3817.html
https://blog-agents.rhcloud.com/wifi-pi-point/
Часть 9¾
Изначально очень хотелось приручить к данной плате мою портативную клавиатуру CBR KB 477W, но этого не удалось сделать. Виной тому коряво работающая в линуксе bluez утилита. На самом деле я потратил много времени чтобы заставить работать данную связку, практически с полпинка завелся мой китайский bt-донгл, и даже дошло дело до авторизации клавиатуры в системе, но дальше дело не пошло. Я психанул и купил беспроводную клавиатуру A4Tech GK-85, которая работает безупречно (а хотя чему бы там не работать?).
Ненаписанная часть 6. В ближайшем будущем хочу допинать работу 4G модема в системе (уже опробовал работоспособность в большом Debian, плюс поигрался с прошивкой свистка в виртуальную сетевую карту (Huawei E3272)). После окончания работ должна получиться портативная точка доступа интернета для внешних устройств с возможностью трансляции сигнала с камеры.
В качестве заключения
Очень жаль, что Hardkernel были вынуждены свернуть производство данного микрокомпьютера, т.к. проект получился достаточно интересным. В виду этого вангую, что количество мануалов, посвященных данной плате так и останется на крайне низком уровне, очень вызывает у меня грусть и тоску. А несчастливым владельцам придется самим протаптывать свою дорожку в мире миниатюрных компьютеров. Удачи всем!
P.S.
В далеких планах (причем изначальных, до идеи с портативной точкой интернета) прицепить данную связку к моему проекту радиоуправляемого автомобиля на Arduino. Odroid должен взять на себя FPV и альтернативное управление при помощи смартфона. Правда этот проект двигается довольно медленно, но я надеюсь что получится его закончить и опубликовать на данном ресурсе.
Спасибо всем, кто прочитал.
Автор: paul35