Konfigurowanie dwóch ekranów w Xorg

1

Mam dwie karty Nvidii, ale Xorg aktywuje tylko jedną z nich. Poniższa konfiguracja oparta jest na danych wyjściowych konfiguratora nvidia:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" LeftOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "keyboard"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "HP LE2201w"
    HorizSync       24.0 - 83.0
    VertRefresh     50.0 - 76.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Acer AL2017"
    HorizSync       30.0 - 82.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier  "Card0"
    Driver      "nvidia"
    VendorName  "nVidia Corporation"
    BoardName   "GeForce 6100 nForce 405"
    BusID       "PCI:0:13:0"
EndSection
Section "Device"
    Identifier  "Card1"
    Driver      "nvidia"
    VendorName  "nVidia Corporation"
    BoardName   "GeForce 8400 GS"
    BusID       "PCI:2:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

To, co widzę w pliku dziennika, to:

(==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar 19 11:08:08 2010
(==) Using config file: "/etc/X11/xorg.conf"
(==) ServerLayout "Layout0"
(**) |-->Screen "Screen0" (0)
(**) |   |-->Monitor "Monitor0"
(==) No device specified for screen "Screen0".
        Using the first device section listed.
(**) |   |-->Device "Card0"
(**) |-->Screen "Screen1" (1)
(**) |   |-->Monitor "Monitor1"
(==) No device specified for screen "Screen1".
        Using the first device section listed.
(**) |   |-->Device "Card0"
(**) |-->Input Device "Keyboard0"
(**) |-->Input Device "Mouse0"
(**) Option "Xinerama" "0"
(==) Automatically adding devices
(==) Automatically enabling devices

nawet jeśli później zostaną wykryte obie karty:

(--) PCI:*(0:0:13:0) 10de:03d1:1019:2601 nVidia Corporation C61 [GeForce 6100 nForce 405] rev 162, Mem @ 0xfb000000/16777216, 0xd0000000/268435456, 0xfc000000/16777216, BIOS @ 0x????????/131072
(--) PCI: (0:2:0:0) 10de:0422:0000:0000 nVidia Corporation G86 [GeForce 8400 GS] rev 161, Mem @ 0xf8000000/16777216, 0xe0000000/268435456, 0xf6000000/33554432, I/O @ 0x0000bc00/128, BIOS @ 0x????????/131072
[ --- some more logs --- ]
(II) Mar 19 11:08:10 NVIDIA(0): NVIDIA GPU GeForce 6100 nForce 405 (C61) at PCI:0:13:0
(II) Mar 19 11:08:10 NVIDIA(0):     (GPU-0)
[ --- some more logs --- ]
(II) Mar 19 11:08:12 NVIDIA(GPU-1): NVIDIA GPU GeForce 8400 GS (G86) at PCI:2:0:0 (GPU-1)

Niestety później tylko jedna karta jest inicjowana i jeden ekran jest aktywny. Xrandr pokazuje tylko jeden ekran.

Wszelkie pomysły, jak to naprawić?

viraptor
źródło

Odpowiedzi:

3

Sekcje ekranu nie pasują do zdefiniowanych sekcji urządzeń. W pierwszej sekcji ekranu (Screen0) opcja Device wskazuje na „Device0” - w pierwszej sekcji Device ustawiasz opcję Identyfikator na „Card0”. Sekcje ekranu muszą używać poprawnego identyfikatora.

Co chcesz mieć tutaj:

Section "Device"
    Identifier  "Card0"
    ^^^^^^^^^^^^^^^^^^^  this line names this device "Card0"
    [...]
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    ^^^^^^^^^^^^^^^^^^^^^^  this line needs to match a device's Identifier
    [...]
EndSection
MJBoa
źródło
Wspaniały! Nie zauważyłem tego - prawdopodobnie spowodowanego błędem kopiowania i wklejania ...
viraptor