SeatN을 강제로 표시:N

SeatN을 강제로 표시:N

3개의 GPU를 사용하는 다중 좌석 설정이 있는데 loginctl대부분 lightdm잘 작동합니다. 누락된 두 개의 작은 영역이 있는데, ssh전원이 켜지지 않거나 :0적어도 마지막으로 로그인했을 때와 다른 번호가 있을 때 Bluetooth 오디오 장치와 X 전달이 오작동하는 것입니다.

❯ ps axo pid,user,args | grep xorg
   6279 root     /usr/lib/Xorg :1 -seat seat0 -auth /run/lightdm/root/:1 -nolisten tcp vt7 -novtswitch
   6284 root     /usr/lib/Xorg :0 -seat seat2 -auth /run/lightdm/root/:0 -nolisten tcp
   6285 root     /usr/lib/Xorg :2 -seat seat1 -auth /run/lightdm/root/:2 -nolisten tcp

...바꾸다...

❯ ps axo pid,user,args | grep xorg
   6279 root     /usr/lib/Xorg :0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
   6284 root     /usr/lib/Xorg :1 -seat seat2 -auth /run/lightdm/root/:1 -nolisten tcp
   6285 root     /usr/lib/Xorg :2 -seat seat1 -auth /run/lightdm/root/:2 -nolisten tcp

놓다...

# Force seatN to run on display :N
[Seat:seat0]
xserver-command=/usr/lib/Xorg :0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch #

[Seat:seat1]
xserver-command=/usr/lib/Xorg :1 -seat seat1 -auth /run/lightdm/root/:1 -nolisten tcp #

[Seat:seat2]
xserver-command=/usr/lib/Xorg :2 -seat seat2 -auth /run/lightdm/root/:2 -nolisten tcp #

... /etc/lightdm.conf.d/71-seatdisplays.conf원래 로그인 방식대로 로그인하면 상황이 정말 복잡해집니다 seat0. 결국 모니터에 표시하게 되지만 :0어느 쪽이든 seat0GPU와 마우스 및 키보드 USB 포트가 모니터에 바인딩할 신호를 제공하지만 다음과 같습니다.seat1seat2seat0

❯ echo $DISPLAY
:0
❯ ps axo pid,user,args | grep xorg
   6711 root     /usr/lib/Xorg :1 -seat seat1 -auth /run/lightdm/root/:1 -nolisten tcp
   6713 root     /usr/lib/Xorg :2 -seat seat2 -auth /run/lightdm/root/:2 -nolisten tcp
   6731 root     /usr/lib/Xorg :0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
❯ loginctl list-sessions
SESSION  UID USER    SEAT  TTY
      3 1000 myuser  seat1
     c1  958 lightdm seat2
     c2  958 lightdm seat0

3 sessions listed.

#줄 끝에서 주석을 제거하면 xserver-command정확 seat0하지만 결과가 반드시 표시되는 것은 아닙니다 :0. 실제로 발생한 내용을 수동으로 설정한 명령에 자동으로 추가하고 마침내 올바른 좌석 번호를 얻으면 디스플레이가 다시 무작위로 표시됩니다.

❯ echo $DISPLAY
:2
❯ ps axo pid,user,args | grep xorg
   6423 root     /usr/lib/Xorg :1 -seat seat1 -auth /run/lightdm/root/:1 -nolisten tcp :0 -seat seat1 -auth /run/lightdm/root/:0 -nolisten tcp
   6428 root     /usr/lib/Xorg :2 -seat seat2 -auth /run/lightdm/root/:2 -nolisten tcp :1 -seat seat2 -auth /run/lightdm/root/:1 -nolisten tcp
   6437 root     /usr/lib/Xorg :0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch :2 -seat seat0 -auth /run/lightdm/root/:2 -nolisten tcp vt7 -novtswitch
❯ loginctl list-sessions
SESSION  UID USER    SEAT  TTY
      3 1000 myuser  seat0
     c1  958 lightdm seat1
     c2  958 lightdm seat2

3 sessions listed.

명령에 원하는 내용을 추가하는 것처럼 보이므로 xserver-commandfor and와 같은 어리석은 설정을 시도했지만 이로 인해 and가 중단되었습니다.sleep 1; /usr/lib/Xorgseat12seat12

❯ echo $DISPLAY
:0
❯ ps axo pid,user,args | grep xorg
   6064 root     /usr/lib/Xorg :0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
❯ loginctl list-sessions
SESSION  UID USER   SEAT  TTY
      3 1000 myuser seat0

1 sessions listed.

나는 그것이 처음에 :0 등을 얻는 명령을 실행하거나 완료한다고 가정할 수 있습니다.

seat0강제로 표시 :0, seat1표시, 표시 하는 방법이 있나요 :1?seat2:2

seat1또는 시작을 지연 하고 2항상 seat0먼저 해결하는 방법이 있습니까 :0?

답변1

나도 같은 소원을 갖고 있는데... 헷갈려서 괴로워요! 내가 만든다:https://github.com/canonical/lightdm/pull/350

곧 병합할 수 있고 모든 것이 거기에 있을 수 있기를 바랍니다!

관련 정보