В новом ядре linux-4.4 переписали механизм работы с deviceTree. Теперь они больше не компилируются вместе с ядром, а поставляются отдельным репозиторием. В прошлый раз, когда я пытался завести китайский 4х дюймовый дисплей WaveShare, никаких адекватных мануалов не было. Максимум, что я смог найти — это исходники модуля для старого ядра (linux-3.8.13). Провозившись неделю я всё-таки собрал своё ядро, с которым не расстаюсь.
Но время меняется, уже давно все перешли на Debian 8.7, но мануалов как подключить дисплей BB-VIEW на новом ядре я так и не нашёл.
Установка Debian 8.7 на BeagleBone
- Качаем свежий образ с официального сайта.
- Теперь и под линуксом появилась удобная утилита для заливки образа файловой системы на SD-карту. Больше не нужно копировать в консоли через dd, боясь ошибиться и затереть себе содержимой жёсткого диска. Заливаем на SD-карту через Etcher.
- Вставляем SD-карту в BB и ждём загрузки
Как найти BeagleBone в сети
Есть несколько стандартных способов подключения к консоли BeagleBone
- SSH через Ethernet
- UART через Debug-разъём на плате (нужно купить преобразователь USB->UART)
- Втыкаем Биглбон в USB-порт, устанавливаем драйвера и на нашем компе создаётся вторая подсеть 192.168.7.0, в которой и будет наш BeagleBOne.
Лично мне проще втыкать Биглбон в роутер и общаться с ним по сети. Только вот одна проблема: как узнать его адрес?
Для этого есть утилита nmap, которая сканирует все живые компьютеры в вашей локальной сети.
Сканируем сеть:
nmap -p 22 192.168.1.1/24
Не забудьте исправить на свою подсеть (например 192.168.0.1, ели у вас нулевая подсеть).
И… стучимся к каждому найденному айпишнику:
ssh debian@192.168.1.178
Один из них обязательно ответит приветствием.
Обновление Debian
Наверное это очевидно, но на всякий случай напишу.
sudo apt-get update
sudo apt-get upgrade
Вполне вероятно, что при этой операции у вас может не хватить свободного места на SD-карте. Не беда. Выключаем Биглбон, вставляем SD-карту в компьютер, а дальше при помощи gparted просто увеличиваем размер соответствующего раздела (главное — не менять начало раздела).
Где брать драйвера дисплея
Проще всего установить оверлеи из репозитория debian.
Обновляем пакет с оверлеями:
sudo apt update ; sudo apt install bb-cape-overlays
Обновляем пакет с оверлеями:
Если не помогло, то можем собрать из исходников
Вообще, репозиторий оверлеев теперь располагается по адресу.
Но! Создатели BeagleBone уже всё за вас продумали, и уже склонированный репозиторий находится на SD-карте вашего BeagleBone по адресу: /opt/source/bb.org-overlays
Заходим туда.
Обновляем исходники драйверов до последней версии:
git pull origin master
Обновляем компилятор DTC:
./dtc-overlay.sh
Собираем и устанавливаем *.dtbo драйвера:
./install.sh
На этом этапе должен собраться новый образ initrd, включающий собранные драйвера.
Как включить нужный *.dtbo драйвер
Рассмотрим на примере 7-дюймового диспле BB-VIEW.
Редактируем файл /boot/uEnv.txt (не забываем sudo, т.к. владелец файла root)
И вставляем туда (ближе к концу) следующие строчки:
cape_disable=bone_capemgr.disable_partno=BB-GREEN-HDMI
cape_enable=bone_capemgr.enable_partno=BB-VIEW-LCD7-01
Первая строчка запрещает загрузку HDMI-драйвера. Т.к. BB-VIEW конфликтует по ножкам с HDMI. Вторая строка — загружает соответствующий модуль.
Перезагружаемся и проверяем.
Типичные проблемы
После перезагрузки через некоторые время все лампочки потухают и устройство выключается
Не хватает питания. Скорее всего выключение BeagleBone происходит в момент включения подсветки дисплея. С дисплеем рекомендуется использовать USB-зарядку с током не менее 2А. Кроме зарядки также важен USB-кабель. Плохой кабель уменьшает ток и напряжение на входе биглбона. Лучше всего брать короткие и толстые кабели.
Как изменить разрешение экрана и неправильные цвета
Картинка с рабочим столом Debian появляется, но сплюснутая и на половину экрана. Как изменить разрешение?
Редактируем файл /etc/X11/xorg.conf. Находим там раздел Section «Screen», и в нём параметр DefaultDepth. Ставим значение 24. Сохраняем, перезагружаем. Должно работать!
Заключение
Всё оказалось проще, чем казалось. Не пришлось даже пересобирать ядро. Всё-таки жизнь меняется к лучшему!
Ссылки/Источники
- Последние сборки Debian для BeagleBone
- Репозиторий с оверлеями. Там же инструкция по использованию.
- Инструкция по подключению дисплея к старому ядру
Комментарии (7)
disrecord
06.09.2017 18:04А что в полученной системе с аппаратным графическим ускорением? OpenGL ES 2.0 работает?
vitperov Автор
06.09.2017 18:12С аппаратным ускорением всё плохо: его нет :)
Как-то запускал Ogre — получил 0.5 FPS.
Вообще, всё мечтаю в новых разработках перейти на Raspberry: там и ядер больше и 3д ускорение работает.
Только вот Raspberry — не промышленное решение. Как минимум там карта памяти, вылетающая при вибрациях. Хотел распаять на плате Flash-память на 4Гб, как у BBB. Покопался в интернетах — похоже это никто не делал, всем хватает SD-карты.
А начальство хочет побыстрее готовое решение, а не экспериментов с Raspberry…
bykvaadm
А сразу разметку корректную сделать не судьба? Чтобы не ломать sd-шку при необходимости обновиться.
кроме того можно ставить хотя бы security-обновления автоматически, с помощью пакета unattended-upgrades
Также улыбает ваше предположение, что сеть может быть либо 192.168.1.0, либо 192.168.0.1, другого не дано просто. Лучше бы вместо гадания пояснили лбдям как определить их подсеть. Да и кстати, залезть на dhcp сервер посмотреть вообще не судьба? Чем сеть сканировать
vitperov Автор
1) про корректную разметку не очень понял. Где у меня ломается sd-шка?
2) Ну я лишь хотел обратить внимание, что не нужно слепо копировать, а нужно подставить свою подсетку. (Текст подправил, спасибо за замечание).
Ну, лично у меня нет в офисе доступа к dhcp-серверу. Да и быстрее ввести в консоли одну команду чем логиниться на роутер.
bykvaadm
Я имел ввиду, что ваше предположение о том, что на обновление может нехватить места и для этого нужно будет достать карточку и переразметить. можно же это сделать сразу, а не потом, рискуя потереть свои данные, если у этого человека мало опыта.
насчет доступа к дхцп, я бы предложил вам добавить несколько вариантов, это повысит годноту статьи. Т.е. предложить людям не только тот один и единственный вариант, который работает для вас, но и какие-то другие более/менее корректные или удобные. Например кто-то будет работать с винды через путти, у него нет nmap, а про zennap он не знает. Спасибо.