两天来,我一直在尝试设置我的 NVidia 卡以支持多座位安装,但感觉没有取得任何进展。
首先,我尝试按照此处的 Ubuntu 说明进行操作:
https://wiki.ubuntu.com/MultiseatTeam/Instructions
这些还不算太糟,只有 NVidia 驱动程序不提供为每个输出连接器选择一个座位的方法,因为它在设备列表中只定义了一个设备:
udevadm info --export-db
这给了我 NVidia 视频板的以下条目:
P: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
E: DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0
E: DRIVER=nvidia
E: ID_MODEL_FROM_DATABASE=GF108GL [Quadro 600]
E: ID_PCI_CLASS_FROM_DATABASE=Display controller
E: ID_PCI_INTERFACE_FROM_DATABASE=VGA controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller
E: ID_VENDOR_FROM_DATABASE=NVIDIA Corporation
E: MODALIAS=pci:v000010DEd00000DF8sv000010DEsd00000835bc03sc00i00
E: PCI_CLASS=30000
E: PCI_ID=10DE:0DF8
E: PCI_SLOT_NAME=0000:01:00.0
E: PCI_SUBSYS_ID=10DE:0835
E: SUBSYSTEM=pci
E: USEC_INITIALIZED=85345
音频有其他条目,但视频没有其他条目。因此,无法创建两个“视频席位”(实际上,我loginctl list-seats
在席位列表中从未看到过除“seat0”之外的任何内容,尽管我将第二个鼠标和键盘标记为“seat-1”……从自由桌面网站,听起来添加任何名为“seat-???”的标签就足以创建一个loginctl list-seats
最终会显示的座位。对我来说,即使重新启动后,它也没有用。)
该条目有一个有趣的方面,它不包含座位标签,正如我们在其他一些条目中看到的那样:
E: TAGS=:seat:
因此,我很确定,除非您有 2 个或更多视频板,否则上面链接的 Ubuntu 页面提供的简洁设置根本无法与 NVidia 一起使用。
后来我尝试了旧方法,即创建一个带有 2 个屏幕的 xorg.conf 设置。NVidia 提供了一种自动进行设置的方法,这很棒(即可以使用 nvidia-settings 工具保存有效的 xorg.conf。)这种方法确实有效,因为我们确实获得了两个独立的屏幕,但我还没有找到在第二个屏幕(屏幕 1)上放置登录屏幕的方法。我尝试启动 X 两次,如在各个地方所示,但当为屏幕 1 启动 X 时,NVidia 驱动程序告诉我某些资源不可用(被屏幕 0 锁定)。
[Seat0]
xserver-command=/usr/bin/X :0
[Seat1]
xserver-command=/usr/bin/X :1
我不太确定 lightdm 是否会尝试启动两个 X 服务器,因此我手动从 ssh 会话中尝试,在启动第一个 X 实例时,它工作正常。第二个实例生成错误并退出,因为它无法初始化驱动程序(这是有道理的,因为两者都会尝试使用相同的硬件资源。)我使用的完整命令行是:
/usr/bin/X -config /etc/X11/xorg.conf -isolateDevice PCI:1:0:0 :0 \
-auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -sharevts -keeptty
并对另一个使用:1。
因此,我认为我需要使用直接的屏幕 0 和 1 设置,并确保屏幕 1 为其他用户保留。有人知道如何实现这一点吗?
到目前为止,我尝试了 xorg.conf 的一个版本,但我还没有找到获取第二个登录屏幕的方法……
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 331.20 (buildd@roseapple) Mon Feb 3 15:07:22 UTC 2014
Section "ServerLayout"
Identifier "seat0"
Screen "Screen0" 0 0
#Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
#Option "Xinerama" "0"
# Avoid having X add all the devices to all the layouts
Option "AutoAddDevices" "False"
Option "AutoEnableDevices" "False"
EndSection
Section "ServerLayout"
Identifier "seat1"
Screen 0 "Screen1" 0 0
InputDevice "Keyboard1" "CoreKeyboard"
InputDevice "Mouse1" "CorePointer"
#Option "Xinerama" "0"
# Avoid having X add all the devices to all the layouts
Option "AutoAddDevices" "False"
Option "AutoEnableDevices" "False"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
#Option "Device" "/dev/psaux" -- default setup
Option "Device" "/dev/input/mouse0"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mouse1"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
# /devices/platform/i8042/serio0/input/input2
Option "Device" "/dev/input/event2"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard1"
Driver "kbd"
# /devices/platform/i8042/serio0/input/input2
Option "Device" "/dev/input/event7"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Sony SDM-S73"
HorizSync 28.0 - 65.0
VertRefresh 57.0 - 75.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Samsung SyncMaster"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro 600"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro 600"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "CRT-0"
Option "metamodes" "DVI-I-0: nvidia-auto-select +0+0; DVI-I-0: 1280x1024 +0+0; DVI-I-0: 1024x768 +0+0; DVI-I-0: 800x600 +0+0; DVI-I-0: 640x480 +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "Stereo" "0"
Option "metamodes" "DP-0: nvidia-auto-select +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection