Как запустить QT-приложение на HDMI-экране без входа в систему на Raspbian Lite?

Вопрос или проблема

У меня установлена операционная система 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, который будет запускать ваше приложение в фоновом режиме.

Шаги по настройке:

  1. Убедитесь, что ваш QT-приложение работает с нужными параметрами:
    Убедитесь, что вы можете запускать приложение с параметрами, которые вам нужны. В вашем случае это:

    /home/pi/arholding/arholding -platform eglfs -fullscreen
  2. Создайте 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
  3. Настройте автоматический вход в систему:
    Чтобы избежать необходимости входить в систему через HDMI, вам нужно настроить автоматический вход для пользователя pi. Для этого выполните:

    sudo raspi-config

    Затем перейдите в раздел "Boot Options" -> "Desktop / CLI" -> "Console Autologin". Сохраните изменения и выйдите из конфигуратора.

  4. Обновите систему и запустите ваш сервис:
    После создания службы, обновите конфигурацию systemd и запустите вашу службу с помощью следующих команд:

    sudo systemctl daemon-reload
    sudo systemctl enable myqtapp.service
    sudo systemctl start myqtapp.service
  5. Перезагрузите Raspberry Pi:
    Теперь перезагрузите вашу Raspberry Pi с помощью:

    sudo reboot

После перезагрузки ваше QT-приложение должно автоматически запуститься на HDMI-выходе без необходимости входа в систему через монитор.

Дополнительные советы:

  • Убедитесь, что ваше приложение тестировалось на совместимость с режимом eglfs, так как некоторые функции OpenGL могут не работать должным образом без X-сервера.
  • Если ваш экран не отображает приложение, возможно, стоит проверить настройки графики и совместимость с вашим QT-приложением.

Следуя этим шагам, вы сможете настроить ваш Raspberry Pi для автоматического запуска QT-приложения на HDMI-экране при старте системы.

Оцените материал
Добавить комментарий

Капча загружается...