Pull to refresh

BeagleBone: поддержка 7'' дисплея BB-View на новом ядре linux-4.4

Reading time 3 min
Views 7.4K
BB-VIEW с Debian 7.8

В новом ядре linux-4.4 переписали механизм работы с deviceTree. Теперь они больше не компилируются вместе с ядром, а поставляются отдельным репозиторием. В прошлый раз, когда я пытался завести китайский 4х дюймовый дисплей WaveShare, никаких адекватных мануалов не было. Максимум, что я смог найти — это исходники модуля для старого ядра (linux-3.8.13). Провозившись неделю я всё-таки собрал своё ядро, с которым не расстаюсь.

Но время меняется, уже давно все перешли на Debian 8.7, но мануалов как подключить дисплей BB-VIEW на новом ядре я так и не нашёл.

Установка Debian 8.7 на BeagleBone


  1. Качаем свежий образ с официального сайта.
  2. Теперь и под линуксом появилась удобная утилита для заливки образа файловой системы на SD-карту. Больше не нужно копировать в консоли через dd, боясь ошибиться и затереть себе содержимой жёсткого диска. Заливаем на SD-карту через Etcher.
  3. Вставляем 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. Сохраняем, перезагружаем. Должно работать!


Заключение


Всё оказалось проще, чем казалось. Не пришлось даже пересобирать ядро. Всё-таки жизнь меняется к лучшему!

Ссылки/Источники



Tags:
Hubs:
+27
Comments 7
Comments Comments 7

Articles