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
いずれにしてもseat0
GPUとマウスとキーボードのUSBポートがモニターにバインドする信号を提供しますが、次のようになります。seat1
seat2
seat0
❯ 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-command
for andのような愚かな設定を試しましたが、これはandを中断しました。sleep 1; /usr/lib/Xorg
seat1
2
seat1
2
❯ 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
すぐにマージでき、すべてがそこにあることを願っています!