Вопрос или проблема
Я использую сервер ubuntu lts 24.04.1. У меня есть программа, которая использует графический интерфейс на python. Я установил startx, и запустил программу без ошибок.
Я создал сервис следующим образом:
[Unit]
Description=CPApp
After=network.target
[Service]
Type=simple
User=root
Environment=DISPLAY=:0
Environment=XAUTHORITY=/home/enes/.Xauthority
ExecStartPre=/usr/local/bin/pigpiod
ExecStart=/usr/bin/startx /home/enes/cp/env/bin/python /home/enes/cp/main.py — :0 vt7
WorkingDirectory=/home/enes
#Restart=always
#RestartSec=20
StandardOutput=null
StandardError=null
[Install]
WantedBy=multi-user.target
Я попробовал много разных решений по настройке конфигурации экрана на 1024×600. Но не смог найти правильное решение. Можете помочь мне?
С уважением.
Система: Raspberry Pi 4B 8GB и 7-дюймовый сенсорный экран с USB-интерфейсом
Ответ или решение
Как постоянно сохранить разрешение экрана для startx в Ubuntu Server 24.04.1 на Raspberry Pi 4B
Для настройки постоянного разрешения экрана в вашем программном обеспечении на базе Ubuntu Server 24.04.1, работающем с Python GUI, необходимо внести некоторые изменения в конфигурацию системы. Давайте разберем необходимые шаги.
1. Изменение xinitrc
Файл .xinitrc
используется для настройки окружения X Window перед запуском X-сессии. Вы можете указать желаемое разрешение экрана, добавив соответствующие команды. Перейдите в домашнюю директорию пользователя, под которым будет запускаться X:
cd /home/enes
Создайте или отредактируйте файл .xinitrc
:
nano .xinitrc
Добавьте следующие строки:
#!/bin/sh
xrandr --fb 1024x600
exec /home/enes/cp/env/bin/python /home/enes/cp/main.py
Это указывает xrandr
установить разрешение в 1024×600 перед выполнением вашего приложения. Не забудьте сделать файл исполняемым:
chmod +x .xinitrc
2. Обновление конфигурации службы
Ваша служба systemd должна быть настроена на использование .xinitrc
. Внесите изменения в ваш .service
файл, чтобы запускать startx
с учетом нового скрипта:
[Unit]
Description=CPApp
After=network.target
[Service]
Type=simple
User=root
Environment=DISPLAY=:0
Environment=XAUTHORITY=/home/enes/.Xauthority
ExecStartPre=/usr/local/bin/pigpiod
ExecStart=/usr/bin/startx /home/enes/.xinitrc -- :0 vt7
WorkingDirectory=/home/enes
StandardOutput=null
StandardError=null
[Install]
WantedBy=multi-user.target
3. Установка драйверов и настройка конфигурации
Убедитесь, что у вас установлены все необходимые драйверы для вашего сенсорного экрана. Для Raspberry Pi 4B может потребоваться установить и настроить дополнительные параметры графики. Примените настройку конфигурации config.txt
, расположенную в разделе boot
вашей SD-карты:
sudo nano /boot/config.txt
Добавьте или измените следующие строки:
hdmi_group=2
hdmi_mode=1
hdmi_cvt=1024 600 60 6 0 0 0
Эти параметры укажут на использование специфичного разрешения для вашего сенсорного экрана.
4. Перезагрузите устройство
После всех внесенных изменений, вам нужно перезагрузить Raspberry Pi для применения новых настроек:
sudo reboot
Заключение
Следуя вышеперечисленным шагам, вы сможете установить и сохранить разрешение экрана на уровне 1024×600 для вашего приложения на Python, запущенного через startx
на Ubuntu Server 24.04.1, работающем на Raspberry Pi 4B с сенсорным экраном. Убедитесь, что все необходимые пакеты и драйверы установлены, и вы готовы к работе!
Если возникнут дополнительные вопросы, не стесняйтесь задавать их. Удачи в вашем проекте!