- Вопрос или проблема
- Ответ или решение
- Как запустить оконный менеджер FVWM для собственного созданного таргета в Debian Bullseye
- Шаг 1: Создание выставления в Systemd
- Шаг 2: Настройка службы FVWM
- Шаг 3: Устранение ошибок и управление правами
- Шаг 4: Установка переменной окружения DISPLAY
- Шаг 5: Запуск вашего таргета
- Заключение
Вопрос или проблема
Я использую Debian bullseye (с окружением рабочего стола MATE) на Lenovo T430. Для игры в pcsxr я хочу создать собственную цель systemd (под названием pcsxr.target), так как у меня не так много памяти.
Текущее состояние:
cat /etc/systemd/system/pcsxr.target
# pcsxr.target
[Unit]
Description=pcsxr.target
Wants=fvwm.service
After=multi-user.target rescue.service rescue.target
Conflicts=rescue.target rescue.service
AllowIsolate=yes
Следующие службы я связал с pcsxr.target.wants
ls -al /etc/systemd/system/pcsxr.target.wants/
insgesamt 8
drwxr-xr-x 2 root root 4096 11. Apr 12:33 .
drwxr-xr-x 14 root root 4096 11. Apr 12:31 ..
lrwxrwxrwx 1 root root 32 10. Apr 13:39 dbus.service -> /lib/systemd/system/dbus.service
lrwxrwxrwx 1 root root 31 10. Apr 14:25 dbus.socket -> /lib/systemd/system/dbus.socket
lrwxrwxrwx 1 root root 30 11. Apr 12:33 fvwm.service -> /etc/systemd/user/fvwm.service
lrwxrwxrwx 1 root root 34 10. Apr 13:38 systemd-user-sessions -> /lib/systemd/systemd-user-sessions
lrwxrwxrwx 1 root root 35 10. Apr 13:40 udisks2.service -> /lib/systemd/system/udisks2.service
И
cat /etc/systemd/user/fvwm.service
#standalone fvwm для pcsxr
[Unit]
Description=standalone fvwm для pcsxr
Requires=basic.target
After=systemd-user-sessions.service sound.target
Conflicts=rescue.service rescue.target
After=basic.target rescue.service rescue.target
[Service]
User=alex
Group=alex
PAMName=login
#TTYPath=/dev/tty1
ExecStart=/usr/bin/fvwm2 -f /usr/share/fvwm/default-config/.stalonetrayrc -d :0
Restart=on-abort
StandardInput=tty
[Install]
WantedBy=pcsxr.target
Когда я пытаюсь загрузить эту цель через grub, последнее сообщение, которое я вижу:
reached pcsxr.target
но оконный менеджер не запускается.
Тогда я подумал, что возможно есть проблема с env ($DISPLAY)
cat .config/environment.d/fvwm-env.conf
Environment="DISPLAY=:0"
Моя цель – загрузить pcsxr.target с оконным менеджером fvwm без использования lightdm (дисплей-менеджера), если это возможно.
Хорошо, понял.
Сначала я допустил ошибку в
/etc/systemd/system/pcsxr.target.wants/
Правильная ссылка не
systemd-user-sessions -> /lib/systemd/systemd-user-sessions
она
ls -l /etc/systemd/system/pcsxr.target.wants/
insgesamt 0
lrwxrwxrwx 1 root root 32 10. Apr 13:39 dbus.service -> /lib/systemd/system/dbus.service
lrwxrwxrwx 1 root root 31 10. Apr 14:25 dbus.socket -> /lib/systemd/system/dbus.socket
lrwxrwxrwx 1 root root 32 22. Aug 12:56 fvwm.service -> /etc/systemd/system/fvwm.service
lrwxrwxrwx 1 root root 53 7. Sep 19:03 systemd-user-session.service -> /usr/lib/systemd/system/systemd-user-sessions.service # я имею в виду эту
lrwxrwxrwx 1 root root 35 10. Apr 13:40 udisks2.service -> /lib/systemd/system/udisks2.service
Затем, наконец, я получил сообщение об ошибке в
/home/alex/.local/share/xorg/Xorg.0.log.old
(EE) parse_vt_settings: Не удается открыть /dev/tty0 (отказано в разрешении)
Затем я изменил в
/etc/X11/Xwrapper.config
needs_root_rights=yes
Ответ или решение
Как запустить оконный менеджер FVWM для собственного созданного таргета в Debian Bullseye
Запуск оконного менеджера FVWM в собственном системном таргете (например, pcsxr.target
) в среде Debian Bullseye — это задача, требующая внимания к деталям конфигурации systemd и графической среды. В данной статье мы подробно опишем шаги, необходимые для успешной настройки и запуска FVWM без использования дисплей-менеджеров.
Шаг 1: Создание выставления в Systemd
Вы уже создали файл /etc/systemd/system/pcsxr.target
, который выглядит корректно. Убедитесь, что он содержит необходимые зависимости, чтобы запускать службы, такие как dbus, udisks и, что наиболее важно, fvwm. Важные поля включают:
[Unit]
Description=pcsxr.target
Wants=fvwm.service
After=multi-user.target rescue.service rescue.target
Conflicts=rescue.target rescue.service
AllowIsolate=yes
Кроме того, вы создали символические ссылки для служб в каталоге /etc/systemd/system/pcsxr.target.wants/
, что также правильно.
Шаг 2: Настройка службы FVWM
Ваш файл /etc/systemd/user/fvwm.service
требует некоторых изменений. Обратите внимание на следующие параметры:
[Unit]
Description=standalone fvwm для pcsxr
Requires=basic.target
After=systemd-user-sessions.service sound.target
[Service]
User=alex
Group=alex
ExecStart=/usr/bin/fvwm2 -f /usr/share/fvwm/default-config/.stalonetrayrc -d :0
Restart=on-abort
StandardInput=tty
При этом убедитесь, что User
и Group
правильно указывают на существующую учетную запись пользователя.
Шаг 3: Устранение ошибок и управление правами
Ошибка, конфликтующая с правами, которая указана в вашем Xorg логе ((EE) parse_vt_settings: Cannot open /dev/tty0 (Permission denied)
), может быть вызвана конфигурацией разрешений для доступа к виртуальным терминалам.
Чтобы устранить это, вы уже внесли изменения в /etc/X11/Xwrapper.config
, установив:
needs_root_rights=yes
Это должно помочь, но также убедитесь, что ваш пользователь (alex
) является частью группы video
, чтобы получить соответствующие права доступа.
Шаг 4: Установка переменной окружения DISPLAY
Переменная окружения DISPLAY
предполагает, что на выходе будет использоваться :0
. Обязательно протестируйте все настройки, чтобы убедиться, что DISPLAY
устанавливается корректно в контексте вашего таргета. Вы можете создать файл, например, в .bash_profile
:
export DISPLAY=:0
Или добавьте это значение в вашу службу FVWM, как:
Environment="DISPLAY=:0"
Шаг 5: Запуск вашего таргета
После завершения всех настроек перезагрузите системы и выполните следующую команду для запуска вашего нового таргета:
sudo systemctl isolate pcsxr.target
Следите за журналами во время выполнения:
journalctl -xe
Заключение
Создание и настройка пользовательского таргета для запуска оконного менеджера FVWM может представлять собой сложный процесс, но правильная конфигурация сервисов systemd, а также устранение проблем с правами и переменными окружения помогут вам достигнуть вашей цели. Запустив вашу сборку, вы сможете использовать FVWM в рамках вашего минимального окружения.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться к форумам или сообществам поддержки Debian.