Здравствуйте.
Есть один проект для ПК, в котором есть отображение графики и работа с клавиатурой. Этот проект переносится под работу на плате с i.mx6Solo.
Работать всё будет на buildroot.
Изначально в проекте отображение графики работало через SDL, но на i.mx в таком случае не использовалось ускорение графики (в моём случае блиттинга). Переписал функции отрисовки графики с использованием g2d (спасибо sasamy за версию buildroot с подержкой g2d), теперь изображение с помощью блиттинга отрисовывается напрямую в /dev/fb0.
В связи с этим возникла проблема, что на экране (который /dev/fb0) отображается пригашение логина и вообще консоль /dev/tty0. Таким образом при нажатии на клавиши клавиатуры из под выполняемого графического приложения проскакивают вводимые знаки, которые затем закрашиваются после перерисовки в приложении.
Нашёл, что решить эту проблему можно в общем двумя способами: либо закомментить вызов getty на /dev/tty1 в /etc/inittab, либо при сборке ядра отключить поддержку fbcon. В итоге с графикой всё решилось, но возникла проблема с вводом с клавиатуры - приложение подразумевает работу с ней.
Если раньше за обработку клавиатуры отвечала SDL, то теперь она это делать не может: либо я не разобрался, либо SDL не может инициализировать клавиатуру без инициализации видео, а инициализация видео в SDL мне мешает напрямую отрисовывать графику в fb0.
В итоге решил читать клавиатуру проще, как описано
здесь
Настроил автологин в консоль, в которой при старте запускается keyboard-test, ожидающий нажатие кнопки в асинхронном режиме. И тут наступает проблема, с которой я сейчас бьюсь - приложение получает нажатие кнопки только из консоли-терминала (отладочный интерфейс UART), но никак не с клавиатуры, которая подключена по USB к плате.
Я не очень ещё разобрался с работой tty в Linux, поэтому не могу понять, что нужно сделать. Может кто-лио подсказать, как захватывать нажатия клавиатуры в моей ситуации, либо подсказать, где я ошибся раньше и сделал всё изначально неправильно, из-за чего и создал сам себе такие сложности (у меня такие подозрения есть).