Как навсегда сохранить разрешение экрана startx

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

Я использую сервер 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 с сенсорным экраном. Убедитесь, что все необходимые пакеты и драйверы установлены, и вы готовы к работе!

Если возникнут дополнительные вопросы, не стесняйтесь задавать их. Удачи в вашем проекте!

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

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