SeatNを強制表示:N

SeatNを強制表示:N

3つのGPUを使用したマルチシート設定があり、loginctlほとんどがlightdmうまく機能します。欠落している2つの小さな領域があります。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強制的に表示:0seat1表示、表示する方法はありますか:1seat2:2

seat1または開始を遅らせ、2常にseat0最初に解決する方法はありますか:0

答え1

私も同じ願いを持っていますが…混乱して苦しんでいます!私が作る:https://github.com/canonical/lightdm/pull/350

すぐにマージでき、すべてがそこにあることを願っています!

関連情報