Summary: | Cannot enable second video card on nvidia quadro NVS420 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Ilya Ilyin <ilyin> | ||||||||
Component: | Driver/nouveau | Assignee: | Nouveau Project <nouveau> | ||||||||
Status: | RESOLVED INVALID | QA Contact: | Xorg Project Team <xorg-team> | ||||||||
Severity: | major | ||||||||||
Priority: | high | CC: | ilyin | ||||||||
Version: | 7.7 (2012.06) | ||||||||||
Hardware: | x86-64 (AMD64) | ||||||||||
OS: | Linux (All) | ||||||||||
Whiteboard: | |||||||||||
i915 platform: | i915 features: | ||||||||||
Attachments: |
|
Created attachment 63904 [details]
kernel messages on drm
Kernel drm messages for the two PCI 03 and 04 are rather the same.
Created attachment 63905 [details]
Xorg log
As the result, X server opens only the first two monitors of card0. Any experiments without xorg.conf or with it have no positive outcome: the last two monitors are always blank as disabled.
With the commercial nvidia driver everything works from a scratch on four displays as one long screen with Xinerama extension, but it has no proper ARGB support for Quardro NVS.
How to enable /dev/dri/card1? Is there another way for manual tuning with KMS?
I tried video=DP-1:e video=DP-2:e video=DP-3:e video=DP-4:e, but the result is the same.
> ls /sys/bus/pci/devices/*/drm/*/card*/enabled | xargs -I {} -i bash -c "echo -n {}: ; cat {}"
Here's a neat trick:
grep . /sys/bus/pci/devices/*/drm/*/card*/enabled
I think "enabled" is like "is there a KMS user that has enabled this connector" (probably something to do with assigned crtc's or who knows). e.g. Xorg. Looking at your xorg log, it only loads for the first gpu. Do you have an xorg.conf that hardcodes the busid?
In any case, I'd highly recommend retesting with a new kernel and xf86-video-nouveau (and maybe xorg-server).
(In reply to comment #3) Slight improvement of Ilia's trick grep . /sys/bus/pci/devices/*/drm/*/card*/{status,enabled} > I think "enabled" is like "is there a KMS user that has enabled this > connector" (probably something to do with assigned crtc's or who knows). I think so too, * status indicates if there is a connection (cable is plugged) * whereas enabled - if the output enabled/is there a user that has enabled > e.g. Xorg. Looking at your xorg log, it only loads for the first gpu. Do you > have an xorg.conf that hardcodes the busid? > Indeed, I was wondering why nouveau is loaded only once by X A minimal xorg.conf like the following should do the job Section "Device" Identifier "Device0" Driver "nouveau" # Actual PCI location of first card/gpu BusID "PCI:3:0:0" EndSection Section "Device" Identifier "Device1" Driver "nouveau" # Actual PCI location of second card/gpu BusID "PCI:4:0:0" EndSection Additionally if you're planning to use three or more outputs you might want to setup xinerama/zaphod heads [1] > In any case, I'd highly recommend retesting with a new kernel and > xf86-video-nouveau (and maybe xorg-server). Seconded [1] http://nouveau.freedesktop.org/wiki/MultiMonitorDesktop/ BTW2: It has been noticed that the second gpu's outputs are not going to be enabled since 3.7 unless you use nouveau.modeset=1. This will hopefully be fixed in a future kernel though. When re-resting, please use that option on the kernel commandline. Lastly, a fix went into xf86-video-nouveau 1.0.8 for a bug that caused the second GPU to never be used by X on those cards, so make sure you upgrade to at least that version. Thanks for your comments: I was certainly playing with xorg.conf with the explicit specification of the BusID for each Device, but with no avail. But the good or bad news is that our NVS420 device is ceased to exist any longer: its cooling fun jammed, and it was burned up to 98C, then failed to function properly even with two screens. We have replaced it with another dual video port card, so that this case is closed for me so far, but your comments would be useful for other people having a similar problem. Sorry to hear the card died. Marking as invalid since the original owner no longer has the hardware. Note that Kepler cards (nve0+) have 4 CRTC's on one GPU, and the current linux stack is a whole lot better at supporting a single GPU with multiple screens than multiple GPUs with multiple screens. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Created attachment 63903 [details] lspci With nouveau module I can only see two monitors working which are connected to the first video card out of two cards of NVS420, connected via PCI bridge pci 03:00 and 04:00: -[0000:00]-+-00.0 Intel Corporation 4 Series Chipset DRAM Controller +-01.0-[01-04]----00.0-[02-04]--+-00.0-[03]----00.0 G98 Quadro NVS420 | \-02.0-[04]----00.0 G98 Quadro NVS420 Full list of PCIs are in the attachment. DRI status is given here and shows that the second video card (card1) is not set to any PCI bus: dristat -a /dev/dri/card0 Busid: pci:0000:03:00.0 Version information: Name: nouveau Version: 1.0.0 Date: 20120316 Desc: nVidia Riva/TNT/GeForce VM map information: flags: (R)estricted (r)ead/(w)rite (l)ocked (k)ernel (W)rite-combine (L)ock: slot offset size type flags address mtrr 0 0x11839000 0x00002000 SHM w L 0x1b7ff000 none DRI client information: a pid uid magic ioctls prog y 1482 0 0 7 dristat y 761 0 0 3824 /usr/bin/Xorg System statistics: Lock 0x00000000 Opens 2 Closes 1 Ioctls 3834 Locks 0 Unlocks 0 /dev/dri/card1 Busid: (not set) Version information: Name: nouveau Version: 1.0.0 Date: 20120316 Desc: nVidia Riva/TNT/GeForce VM map information: flags: (R)estricted (r)ead/(w)rite (l)ocked (k)ernel (W)rite-combine (L)ock: slot offset size type flags address mtrr DRI client information: a pid uid magic ioctls prog y 1482 0 0 6 dristat System statistics: Lock 0x00000000 Opens 0 Closes 0 Ioctls 8 Locks 0 Unlocks 0 Though all the DisplayPorts are connected: ls /sys/class/drm/*/status | xargs -I {} -i bash -c "echo -n {}: ; cat {}" /sys/class/drm/card0-DP-1/status:connected /sys/class/drm/card0-DP-2/status:connected /sys/class/drm/card1-DP-3/status:connected /sys/class/drm/card1-DP-4/status:connected BUT ls /sys/bus/pci/devices/*/drm/*/card*/enabled | xargs -I {} -i bash -c "echo -n {}: ; cat {}" /sys/bus/pci/devices/0000:03:00.0/drm/card0/card0-DP-1/enabled:enabled /sys/bus/pci/devices/0000:03:00.0/drm/card0/card0-DP-2/enabled:enabled /sys/bus/pci/devices/0000:04:00.0/drm/card1/card1-DP-3/enabled:disabled /sys/bus/pci/devices/0000:04:00.0/drm/card1/card1-DP-4/enabled:disabled i.e. the last two ports of card1 are disabled.