UEFI를 사용하여 실행되는 온보드 GPU(인텔)가 있는 Debian 11을 실행하는 키오스크 시스템이 있습니다. 모니터 포트는 VGA입니다.
현재는 getty 재정의를 사용하여 자동 로그인합니다(인용하다) 그리고 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