我的目标是为我的 Ubuntu 机器安装两个显示器。其中一个显示器是 Mimo 的 USB 触摸屏,带有 displaylink 芯片。我只需重新配置 xorg.conf 就可以让它作为主显示器工作。甚至触摸界面也可以工作。
但对于多用户环境,仅仅更改 xorg.conf 是不够的,因为还必须启动其他登录屏幕。这必须进入 lightdm 配置。
通过为多座席配置 lightdm (lightdm.conf),我成功启动了两个 X 实例,每个 ServerLayout (xorg.conf) 一个。一个在虚拟终端 7 (VT7) 上运行,另一个在 VT8 上运行。众所周知,您可以使用快捷键 Ctrl + Alt + Fx(其中 x 是终端号)在虚拟终端之间切换。
现在的问题是:默认情况下,VT7 是启用的,而 VT8 是禁用的。但是当我切换到 VT8 时,它变为启用状态,而 VT7 变为禁用状态。
我怎样才能使两个 X Server 终端/服务器并行运行?
谢谢。
这是我的 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
答案1
重新阅读维基百科条目https://help.ubuntu.com/community/MultiseatX,我想您应该看看 X 是如何调用的;例如,-sharevts
和-novtswitch
命令行选项应该以某种方式传递给您的 X lightdm.conf
。
如果您处于工作状态,请考虑将 wiki 条目更新至 11.10。
答案2
谢谢你的提示。-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
答案3
我认为第二个座位应该有一组单独的 tty,第二个 X 服务器应该在其中一个上运行。不过,在查看了内核控制台代码后,似乎它是在假设只有一个控制台的情况下编写的。它使用全局变量将虚拟控制台多路复用到单个显示器上,并从所有连接的键盘读取键盘输入。
看起来 Linux 控制台代码需要进行大量重构才能支持多席位。