Вопрос или проблема
У меня установлена операционная система Raspbian Lite, и я могу получить к ней доступ через HDMI на мониторе, а также по SSH с моего ПК.
Что я хотел бы достичь, так это чтобы приложение QT автоматически отображалось на HDMI-выходе при запуске Raspbian, чтобы я мог сделать киоск.
В настоящее время я могу запустить приложение, если вызову его через SSH /home/pi/arholding/arholding -platform eglfs -fullscreen
, и оно отображается на экране HDMI, но только после того, как я войду в систему через HDMI.
Тем не менее, я хотел бы, чтобы приложение запускалось и было видно без необходимости входа в систему с HDMI, но без отключения пароля для входа через SSH.
Существует ли способ сделать это?
Ответ или решение
Для того чтобы запустить ваше QT-приложение на HDMI-экране автоматически при загрузке Raspbian Lite без необходимости входа в систему через HDMI, можно использовать следующие шаги. Мы создадим сервис systemd, который будет запускать ваше приложение в фоновом режиме.
Шаги по настройке:
-
Убедитесь, что ваш QT-приложение работает с нужными параметрами:
Убедитесь, что вы можете запускать приложение с параметрами, которые вам нужны. В вашем случае это:/home/pi/arholding/arholding -platform eglfs -fullscreen
-
Создайте systemd-сервис:
Для автоматического запуска приложения, создайте файл службы systemd. Откройте терминал SSH и выполните следующие команды:sudo nano /etc/systemd/system/myqtapp.service
Затем добавьте следующий содержимое в открывшийся файл:
[Unit] Description=My QT Application After=display-manager.service [Service] ExecStart=/home/pi/arholding/arholding -platform eglfs -fullscreen User=pi Environment=DISPLAY=:0 Environment=XAUTHORITY=/home/pi/.Xauthority Restart=always [Install] WantedBy=multi-user.target
-
Настройте автоматический вход в систему:
Чтобы избежать необходимости входить в систему через HDMI, вам нужно настроить автоматический вход для пользователяpi
. Для этого выполните:sudo raspi-config
Затем перейдите в раздел "Boot Options" -> "Desktop / CLI" -> "Console Autologin". Сохраните изменения и выйдите из конфигуратора.
-
Обновите систему и запустите ваш сервис:
После создания службы, обновите конфигурацию systemd и запустите вашу службу с помощью следующих команд:sudo systemctl daemon-reload sudo systemctl enable myqtapp.service sudo systemctl start myqtapp.service
-
Перезагрузите Raspberry Pi:
Теперь перезагрузите вашу Raspberry Pi с помощью:sudo reboot
После перезагрузки ваше QT-приложение должно автоматически запуститься на HDMI-выходе без необходимости входа в систему через монитор.
Дополнительные советы:
- Убедитесь, что ваше приложение тестировалось на совместимость с режимом
eglfs
, так как некоторые функции OpenGL могут не работать должным образом без X-сервера. - Если ваш экран не отображает приложение, возможно, стоит проверить настройки графики и совместимость с вашим QT-приложением.
Следуя этим шагам, вы сможете настроить ваш Raspberry Pi для автоматического запуска QT-приложения на HDMI-экране при старте системы.