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


Заключение


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

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



Комментарии (7)


  1. bykvaadm
    06.09.2017 15:41

    А сразу разметку корректную сделать не судьба? Чтобы не ломать sd-шку при необходимости обновиться.


    кроме того можно ставить хотя бы security-обновления автоматически, с помощью пакета unattended-upgrades


    Также улыбает ваше предположение, что сеть может быть либо 192.168.1.0, либо 192.168.0.1, другого не дано просто. Лучше бы вместо гадания пояснили лбдям как определить их подсеть. Да и кстати, залезть на dhcp сервер посмотреть вообще не судьба? Чем сеть сканировать


    1. vitperov Автор
      06.09.2017 16:29

      1) про корректную разметку не очень понял. Где у меня ломается sd-шка?
      2) Ну я лишь хотел обратить внимание, что не нужно слепо копировать, а нужно подставить свою подсетку. (Текст подправил, спасибо за замечание).
      Ну, лично у меня нет в офисе доступа к dhcp-серверу. Да и быстрее ввести в консоли одну команду чем логиниться на роутер.


      1. bykvaadm
        08.09.2017 15:43

        Я имел ввиду, что ваше предположение о том, что на обновление может нехватить места и для этого нужно будет достать карточку и переразметить. можно же это сделать сразу, а не потом, рискуя потереть свои данные, если у этого человека мало опыта.


        насчет доступа к дхцп, я бы предложил вам добавить несколько вариантов, это повысит годноту статьи. Т.е. предложить людям не только тот один и единственный вариант, который работает для вас, но и какие-то другие более/менее корректные или удобные. Например кто-то будет работать с винды через путти, у него нет nmap, а про zennap он не знает. Спасибо.


  1. KawaiDesu
    06.09.2017 17:21

    nmap -p 22 192.168.1.0/24
    Чуточку лучше, чем ломиться вообще на все хосты подряд.


    1. vitperov Автор
      06.09.2017 18:16

      Спасибо! Не знал. Исправил.


  1. disrecord
    06.09.2017 18:04

    А что в полученной системе с аппаратным графическим ускорением? OpenGL ES 2.0 работает?


    1. vitperov Автор
      06.09.2017 18:12

      С аппаратным ускорением всё плохо: его нет :)
      Как-то запускал Ogre — получил 0.5 FPS.
      Вообще, всё мечтаю в новых разработках перейти на Raspberry: там и ядер больше и 3д ускорение работает.
      Только вот Raspberry — не промышленное решение. Как минимум там карта памяти, вылетающая при вибрациях. Хотел распаять на плате Flash-память на 4Гб, как у BBB. Покопался в интернетах — похоже это никто не делал, всем хватает SD-карты.
      А начальство хочет побыстрее готовое решение, а не экспериментов с Raspberry…