我有一个运行 Debian 11 的信息亭系统,带有板载 GPU (intel),使用 UEFI 运行。显示器的端口是VGA。
目前它使用 getty override 自动登录(参考) 并调用startx
tty1。我们不使用显示管理器。
然后它将启动一个openbox-session
,然后启动 vnc 和单个应用程序。
if [[ "$(tty)" == '/dev/tty1' ]]; then
exec xinit $HOME/.xinitrc -- /etc/X11/xinit/xserverrc :0 vt1
fi
如果在启动前连接了显示器,那么如果我稍后拔下并重新插入显示器,它将正常显示。
但如果开机时没有显示器插头。以后我将无法插入显示器(屏幕永远保持空白)。
启动期间openbox-session
和应用程序均成功启动(可以从vnc查看)
我尝试使用 xserver-driver-xorg-video-dummy 并创建 /etc/X11/xorg.dummy.conf。
当所有组件正在运行时,openbox-session 不知何故未加载到屏幕中。
目前在 xorg.log 中没有看到任何明显的错误
if [[ "$(tty)" == '/dev/tty1' ]]; then
exec xinit $HOME/.xinitrc -- /etc/X11/xinit/xserverrc :0 vt1 -config xorg.dummy.conf
fi
xorg.dummy.conf文件
我尝试使用 Xvfb 但我认为它不适合这个。虽然没有任何问题,但同样的问题仍然存在。
有可能实现这一目标吗?
目前,如果我在重新启动时忘记连接显示器,我需要重新重新启动它。
答案1
问题不在x服务器或显示管理器中,实际上是在
而 xfce、gnome、etchave 自动检测监视器插头 openbox 显然没有
使用 xrandr 来完成这项工作( autorandr 不起作用)
在 .config/openbox/autostart 中
while true; do
# Grep first connected display
FIRSTDISPLAY=$(xrandr | grep " connected " | awk '{ print$1 }' | head -n 1)
# Force on
xrandr --output ${FIRSTDISPLAY} --auto
# Kill dpms, require to rerun incase display replug
xset -dpms
xset s noblank
xset s off
sleep 1
done