Заказчик
Частное лицо
Задача
Целью данной работы являлась адаптация стандартного («стокового») дистрибутива Linux, поставляемого вместе с одноплатным компьютером HummingBoard, для нужд Заказчика. Адаптация подразумевает доработку дистрибутива с учётом перечисленных ниже требований:
- поддержка последних версий Qt5 «из коробки» с учётом всего списка зависимостей
- создание WiFi-точки доступа непосредственно самим компьютером сразу после загрузки ОС
- поддержка обмена данных через асинхронный интерфейс UART: физические уровни RS232/RS485 не требовались
- поддержка возможности управлять состоянием отдельных выходов и считывать уровни напряжения
на отдельных входах платы из userspace-приложения.
Решение
Наибольшей трудностью при решении данной задачи явилась организация и развёртывание WiFi-точки доступа сразу после загрузки системы в автоматическом режиме. Итогом этого этапа стала следующая заметка с подробным описанием «что и как». Для демонстрации работы с портами ввода-вывода (GPIO) и асинхронным приёмопередатчиком (UART) Заказчику были предоставлены демо-приложения, по сути, code-snippet-ы, которые в дальшейшем легко интегрируются в какие-либо разрабатываемые решения. Установка как самой Qt5, так и, в первую очередь, всего списка её зависимостей — рутинный, ни чем не примечательный процесс. Часть зависимостей была доступна из существующих репозиториев, часть потребовалось кросс-компилировать для целевого окружения. В конечном итоге, оконное «Hello-world» Qt-приложение было собрано и запущено непосредственно на одноплатном компьютере с подключенным к нему монитором.
Результаты
Главным результатом работы стал образ целевой системы с добавлением поддержки всего перечисленного выше функционала, оформленный в виде файла.