Ubuntu 中的双 NVidia 显卡 / xorg.conf 狂热

Ubuntu 中的双 NVidia 显卡 / xorg.conf 狂热

我有两张 NVidia 显卡:

  • Quadro NVS 295(PCI Express,双 DisplayPort 输出)
  • GeForce FX 5200(PCI、DVI 和 VGA 输出)

我有三个相同的显示器,两个采用 DisplayPort 连接,一个采用 DVI 连接。

我使用的是 Ubuntu Hardy(由于其他原因,目前无法进行 dist-upgrade)。我使用“nvidia”驱动程序。

新的是 GeForce 卡和第三台显示器。我目前有双 DisplayPort 显示器工作正常。以下是我的 xorg.conf 中与显示相关的部分:

Section "ServerLayout"
    Identifier "Default Layout"
    Screen          "PCI-Express Screen" 0 0
# adding this makes X fail to start:  Screen "PCI Screen" 0
    Inputdevice "Generic Keyboard"
    Inputdevice "Configured Mouse"
EndSection

Section "Module"
    Load  "glx" # not sure why/if this is needed
EndSection

Section "Monitor"
    Identifier "DELL 2408WFP"
    Option  "DPMS"
EndSection

Section "Device"
    Identifier "NVIDIA Quadro NVS 295"
    Driver  "nvidia"
    Option  "RenderAccel" "true"
    Screen          0
    BusID           "PCI:2:0:0"
EndSection

Section "Device"
    Identifier "NVIDIA GeForce FX 5200"
    Driver  "nvidia"
    Option  "RenderAccel" "true"
    Screen          1
    BusID           "PCI:6:4:0"
EndSection

Section "Screen"
    Identifier "PCI-Express Screen"
    Device  "NVIDIA Quadro NVS 295"
    Monitor  "DELL 2408WFP"
    Defaultdepth 24
    Option  "TwinView" "True"
    Option  "UseEdidFreqs" "True"
    Option  "MetaModes" "1920x1200 +0+1200, 1920x1200 +0+0"
EndSection

Section "Screen"
    Identifier "PCI Screen"
    Device  "NVIDIA GeForce FX 5200"
    Monitor  "DELL 2408WFP"
    Defaultdepth 24
    Option  "TwinView" "True"
    Option  "UseEdidFreqs" "True"
    Option  "MetaModes" "1920x1200 +0+0"
EndSection

我用来nvidia-settings配置我的显示器,但它没有显示第二个 GPU。 lspci但是,显示:

02:00.0 VGA compatible controller: nVidia Corporation Unknown device 06fd
06:04.0 VGA compatible controller: nVidia Corporation NV34 [GeForce FX 5200]

这就是我获得两个设备的 BusID 设置的地方(当我只有一个设备时,我没有列出任何 BusID……并且添加 BusID 并没有破坏任何东西)。

我遗漏了什么?如何显示nvidia-settings我的第二个 GPU,以便我可以配置其显示器?

答案1

我让它工作了。第一步是用与第一张相同的 Quadro 卡替换 GeForce 卡。然后 nvidia-settings 能够看到它。我最终得到了这个 xorg.conf:

Section "ServerLayout"
    Identifier     "Default Layout"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen2"
    Screen      2  "Screen2" RightOf "Screen0"
    Option         "Clone" "off"
    Option         "Twinview" "on"
    Option         "Xinerama" "on"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL 2408WFP"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
    Option         "RandRRotation" "on"
    Option         "Rotate" "CCW"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "DELL 2408WFP"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
    Option         "RandRRotation" "on"
    Option         "Rotate" "CCW"
EndSection

Section "Monitor"
    Identifier     "Monitor2"
    VendorName     "Unknown"
    ModelName      "DELL 2408WFP"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
    Option         "RandRRotation" "on"
    Option         "Rotate" "CCW"
EndSection

Section "Device"
    Identifier     "Videocard1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro NVS 295"
    Option         "RenderAccel" "true"
    BusID          "PCI:3:0:0"
    Screen          1
EndSection

Section "Device"
    Identifier     "Videocard0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro NVS 295"
    BusID          "PCI:3:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Videocard2"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro NVS 295"
    BusID          "PCI:4:0:0"
EndSection


Section "Screen"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "UseEdidFreqs" "True"
    Option         "TwinView" "0"
    Option         "metamodes" "DFP-2: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Videocard2"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "UseEdidFreqs" "True"
    Option         "TwinView" "0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen2"
    Device         "Videocard1"
    Monitor        "Monitor2"
    DefaultDepth    24
    Option         "UseEdidFreqs" "True"
    Option         "TwinView" "0"
    Option         "metamodes" "DFP-3: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

TwinView 似乎无法在多张卡上使用,因此现在我将多个 X 屏幕与 Xinerama 一起使用,这导致 Gnome 屏幕分辨率小程序无法工作(即使启用了 XRandRExtension,它也会认为未启用)。但我在其中硬编码了屏幕旋转,一切正常。

希望 Ubuntu Karmic 能够解决所有这些问题,无论其替代系统是什么,这都是相当可怕的xorg.conf

答案2

您是否在 Xinerama 和 TwinView 上启用了 VDPAU 加速?您可以使用以下方法探测它:

mplayer -vo vdpau -vc ffh264vdpau,ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau $file

其中 $file 是 H.264 视频文件。

相关内容