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

в 19:03, , рубрики: beaglebone, Device Tree, linux kernel, дисплей, Разработка под Linux, ядро Linux

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 -sP 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. Сохраняем, перезагружаем. Должно работать!

Заключение

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

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

Автор: vitperov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js