web-dev-qa-db-ja.com

マルチシートセットアップとlightdmを使用した仮想ターミナルスイッチング

私の目的は、Ubuntuマシン用に2つのシートを用意することです。モニターの1つは、ディスプレイリンクチップを備えたMimoのUSBタッチスクリーンです。 xorg.confを再構成するだけで、メインディスプレイとして動作するようになりました。タッチインターフェイスも機能します。

ただし、マルチシートの場合、追加のログイン画面も起動する必要があるため、xorg.confを変更するだけでは不十分です。これは、lightdm構成に移行する必要があります。

マルチシート用にlightdm(lightdm.conf)を構成することにより、ServerLayout(xorg.conf)ごとに1つずつ、2つのXインスタンスを起動することができました。 1つは仮想端末7(VT7)で実行され、もう1つはVT8で実行されます。よく知られているように、ショートカットCtrl + Alt + Fx(xは端末番号)を使用して仮想端末を切り替えることができます。

問題はこれです。デフォルトでは、VT7は有効になっており、VT8は無効になっています。しかし、VT8に切り替えると、VT8は有効になりますが、VT7は無効になります。

両方のXサーバー端末/サーバーを並行して実行するにはどうすればよいですか?

ありがとうございました。

これが私のlightdm.confです

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu

[Seat:0]
xserver-layout=default

[Seat:1]
xserver-layout=displaylink

ここに私のxorg.confの関連部分のみを示します。

# Two Server Layouts

Section "ServerLayout"
    Identifier     "default"
    Screen      0  "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerLayout"
    Identifier     "displaylink"
    Screen         "DisplayLinkScreen"
    InputDevice    "Mouse1"
EndSection

# Two Screens

Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "Screen"
        Identifier      "DisplayLinkScreen"
        Device          "DisplayLinkDevice"
        Monitor         "DisplayLinkMonitor"
        SubSection "Display"
                Depth   24
                Modes   "800x480"
        EndSubSection
EndSection

# Two Monitors

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier      "DisplayLinkMonitor"
EndSection

# Two Graphics Cards/Interfaces

Section "Device"
    Identifier  "Card0"
    Driver      "nvidia"
    BusID       "PCI:1:0:0"
EndSection

Section "Device"
        Identifier      "DisplayLinkDevice"
        driver          "displaylink"
        Option  "fbdev" "/dev/fb1"
EndSection

# Three Input Devices (the last is touchscreen of the USB monitor)

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option      "Protocol" "auto"
    Option      "Device" "/dev/input/mice"
    Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "InputDevice"
    Identifier     "Mouse1"
    Driver         "mouse"
    Option         "Device"        "/dev/input/by-path/pci-0000:00:1d.7-usb-0:1.3:1.0-event"
EndSection
6
Michael Franzl

https://help.ubuntu.com/community/MultiseatX の下のwikiエントリを読み直して、Xがどのように呼び出されるかを確認する必要があると思います。例えば-sharevtsおよび-novtswitchコマンドラインオプションは、lightdm.confでXに何らかの方法で渡される必要があります。

動作状態がある場合は、Wikiエントリを11.10に更新することを検討してください。

4
aquaherd

ヒントをありがとう。 -sharevtsスイッチが重要でした。 Lightdmによってデフォルトでは追加されません。 /var/log/lightdm/lightdm.logを見て、カスタムのxserver-commandオプションを追加しましたが、今ではようやく機能します!ご協力いただきありがとうございます。

私の最後のlightdm.conf:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu

[Seat:0]
xserver-layout=default
xserver-command=/usr/bin/X :0 -layout default -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -sharevts

[Seat:1]
xserver-layout=displaylink
xserver-command=/usr/bin/X :1 -layout displaylink -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch -sharevts
1
Michael Franzl

2番目の席には別のttyのセットが必要であり、2番目のXサーバーはそれらの1つで実行する必要があると思います。ただし、カーネルコンソールコードを見ると、コンソールは1つしかないという前提で記述されているようです。グローバル変数を使用して仮想コンソールを単一のディスプレイに多重化し、接続されているすべてのキーボードからキーボード入力を読み取ります。

Linuxコンソールのコードは、マルチシートをサポートするために大幅にリファクタリングする必要があるようです。

0
psusi