Вопрос или проблема
Я хочу запустить Ubuntu Core на этом устройстве, которое является RPi CM4 с сенсорным дисплеем:
https://wiki.seeedstudio.com/reTerminal_Intro/
Попытка просто загрузить Ubuntu Core приводит к нерабочему экрану, поэтому я предполагаю, что требуется добавление драйверов, но неясно, как построить образ для Ubuntu Core с соответствующими драйверами. DTOverlay для драйверов можно найти здесь: https://github.com/Seeed-Studio/seeed-linux-dtoverlays
Любая помощь будет очень признательна.
Ответ или решение
Введение:
Использование Ubuntu Core на мощных встроенных устройствах, таких как Raspberry Pi Compute Module 4 (RPi CM4), может потребовать дополнительных настроек, особенно если речь идет о специализированных дисплеях, как, например, сенсорный экран reTerminal от компании Seeed Studio. Данный экран не будет работать "из коробки" с Ubuntu Core, так как это минималистская операционная система, нацеленная на IoT-устройства и контейнеризированные приложения. Чтобы обеспечить функциональность дисплея, потребуется выполнить интеграцию необходимых драйверов через Device Tree Overlay (DTOverlay). В этом ответе мы подробно рассмотрим технологию, примеры и применения, необходимые для решения вашей задачи.
Теория:
Ubuntu Core — это версия операционной системы Ubuntu, оптимизированная для использования в встраиваемых и IoT-устройствах. Она отличается от стандартной Ubuntu тем, что использует минималистичный подход и полагается на пакетный менеджер snap для установки приложений и драйверов. В случае с Ubuntu Core добавление поддержки для специализированных периферийных устройств, таких как сенсорные дисплеи, требует работы с Device Tree (DT) и Device Tree Overlays (DTO).
Device Tree — это структура данных, используемая для описания оборудования, с которым должна взаимодействовать операционная система. В мире Linux Device Tree используется для абстрагирования аппаратных различий устройств, таких как Raspberry Pi, от ядра операционной системы.
Device Tree Overlay позволяет добавлять или изменять существующие определения устройств в основном Device Tree. Это особенно полезно для устройств, таких как дисплеи, которые могут быть добавлены после сборки основного аппаратного обеспечения.
Пример:
Согласно предоставленной информации, необходимо интегрировать драйвера, находящиеся в репозитории Seeed Studio Linux Device Tree Overlays. Этот репозиторий содержит overlays для различных периферийных устройств и может быть использован для конфигурации вашего сенсорного дисплея.
На первом этапе вам нужно склонировать репозиторий на ваш локальный компьютер или устройство:
git clone https://github.com/Seeed-Studio/seeed-linux-dtoverlays.git
После получения исходных кодов перейдите в директорию, соответствующую вашему дисплею, и изучите доступные там файлы dts
и dtbo
.
Затем соберите overlay, используя компилятор Device Tree:
dtc -I dts -O dtb -o [имя файла].dtbo [имя файла].dts
Готовый файл .dtbo
нужно будет перенести на вашу Ubuntu Core систему и поместить в папку /boot/firmware/overlays
.
Применение:
После того, как вы скопировали ваш .dtbo
файл в соответствующую директорию, необходимо обновить конфигурацию загрузчика для использования нового overlay. Это делается путем редактирования файла конфигурации /boot/firmware/config.txt
, добавив строку:
dtoverlay=[имя вашего overlay файла без расширения]
После всех изменений необходимо перезагрузить устройство, чтобы убедиться, что изменения вступили в силу.
Если после перезагрузки дисплей начал функционировать, значит интеграция прошла успешно. В случае возникновения проблем стоит перепроверить правильность всех шагов, а также изучить лог-файлы системы для выявления дополнительных ошибок или предупреждений.
Заключение:
Интеграция драйверов для специализированных устройств в Ubuntu Core требует знания работы с Device Tree и Device Tree Overlays. Несмотря на то, что этот процесс может показаться сложным, при правильном следовании инструкциям и изучении предоставленных инструкций от Seeed Studio, можно успешно запустить Ubuntu Core с поддержкой сенсорного дисплея. Важно понимать, что каждая сборка оборудования уникальна, и может потребоваться дополнительная настройка конфигурации или поиск правильных версий драйверов, совместимых с вашей конкретной версией Ubuntu Core и ядра Linux.