[英]Start systemd service after DRM card0 device
我有運行 electron 應用程序的信息亭顯示器。 此應用程序需要在啟動時啟動。
[Unit]
Description=Display Application
After=network.target getty@tty1.service
Conflicts=getty@tty1.service
[Service]
Type=simple
ExecStart=/usr/bin/xinit /usr/bin/electron main.js -- :0 -nocursor -nolisten tcp
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
但由於某種原因,該服務開始得很早,xinit 抱怨沒有找到屏幕。 在第一次 systemd 重新啟動后,應用程序正在運行。
我搜索了聽起來很有希望的systemd 設備。 但是使用dev-dri-card0
作為Requires
和After
會導致啟動時Missing Dependency
項。
# ls /dev/dri
by-path card0 renderD128
# dmesg | grep drm
[ 3.609070] systemd[1]: Starting Load Kernel Module drm...
[ 3.672741] systemd[1]: modprobe@drm.service: Succeeded.
[ 3.673192] systemd[1]: Finished Load Kernel Module drm.
[ 4.327074] fb0: switching to inteldrmfb from EFI VGA
[ 4.332654] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/bxt_dmc_ver1_07.bin (v1.7)
[ 4.356201] i915 0000:00:02.0: [drm] Panel advertises DPCD backlight support, but VBT disagrees. If your backlight controls don't work try booting with i915.enable_dpcd_backlight=1. If your machine needs this, please file a _new_ bug report on drm/i915, see https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs for details.
[ 4.367399] [drm] Initialized i915 1.6.0 20200917 for 0000:00:02.0 on minor 0
[ 4.376167] fbcon: i915drmfb (fb0) is primary device
[ 4.402186] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
# systemctl list-units -a -t device | grep card0
dev-dri-card0.device loaded inactive dead /dev/dri/card0
我沒有膠水這里有什么問題。 發現一些帖子說drm
模塊加載到很晚(在systemd之后)......將drm
添加到initramfs......沒有運氣。
好的找到了解決方案
[Unit]
Description=Display Application
After=network.target systemd-user-sessions.service
Conflicts=getty@tty1.service
[Service]
TTYPath=/dev/tty1
PAMName=systemd-user
Environment=NODE_ENV=production
ExecStart=/usr/bin/xinit /usr/bin/electron main.js -- :0 -quiet -nocursor -nolisten tcp
Restart=on-failure
RestartSec=5
[Install]
Alias=display-manager.service
WantedBy=multi-user.target
這樣, systemd-logind
會啟動一個用戶 session 並且所有的drm
東西都准備好了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.