Linux:启动 udev 后,显示输出仅发送到一个显卡

Linux:启动 udev 后,显示输出仅发送到一个显卡

我的系统中有两块显卡,两块显卡都启用了所有显示器,直到

:: Starting udevd...
done.

在启动过程中。完成之后,连接到主显卡的 2 个显示器继续更新,而连接到辅助显卡的显示器则永远停留在该屏幕上。

主卡是 ATI 卡 (HD4770),使用 radeon 驱动程序,副卡是 NVidia 卡 (NVS 290),使用 nouveau 驱动程序。

我已经使用 mkinitcpio 将 nouveau 和 radeon 模块添加到 initramfs。

如果我查看内核日志(dmesg),我会看到两个卡都已初始化(基于驱动程序消息),但 ATI 卡是“主”卡,并且是 udev 启动后唯一获得视频输出的卡。

任何 X 应用程序中都没有提及该卡,而且 Xrandr 甚至没有意识到该卡的存在。

是否可以让系统继续使用两个显卡进行输出,包括 X?

这是我的 xorg.conf:

Section "Monitor"
    Identifier "LeftMonitor"
EndSection

Section "Monitor"
        Identifier "MainMonitor"
EndSection

Section "Monitor"
    Identifier "RightMonitor"
EndSection


Section "Device"
    Identifier "NVCard"
    Driver "nouveau"
EndSection

Section "Device"
    Identifier "ATICard"
    Driver "radeon"
EndSection


Section "Screen"
    Identifier "LeftScreen"
    Device "NVCard"
    Monitor "LeftMonitor"
    DefaultDepth 24
EndSection

Section "Screen"
    Identifier "MainScreen"
    Device  "ATICard"
    Monitor "MainMonitor"
    DefaultDepth 24
EndSection

Section "Screen"
    Identifier "RightScreen"                                                                                                                                                                                                                                               
    Device "ATICard"                                                                                                                                                                                                                                                       
    Monitor "RightMonitor"                                                                                                                                                                                                                                                 
    DefaultDepth 24                                                                                                                                                                                                                                                        
EndSection                                                                                                                                                                                                                                                                     


Section "ServerLayout"                                                                                                                                                                                                                                                         
    Identifier "Default Layout"                                                                                                                                                                                                                                            
    Screen  0       "MainScreen"    0 0                                                                                                                                                                                                                                    
    Screen  1       "RightScreen"   RightOf "MainScreen"                                                                                                                                                                                                                   
    Screen  2       "LeftScreen"    LeftOf  "MainScreen"                                                                                                                                                                                                                   
EndSection                                                                                                                                                                                                                                                                     

Section "ServerFlags"                                                                                                                                                                                                                                                          
    Option  "Xinerama"      "true"                                                                                                                                                                                                                                         
EndSection

我已经在 xorg.conf 中做了很多自动配置,但它对于主卡上的显示器来说工作得很好。

证明这两张卡实际上都已初始化:

$ dmesg | grep nouveau
[    0.665095] nouveau 0000:03:00.0: enabling device (0000 -> 0003)
[    0.665103] nouveau 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[    0.665109] nouveau 0000:03:00.0: setting latency timer to 64
[    0.666787] [drm] nouveau 0000:03:00.0: Detected an NV50 generation card (0x086f00a2)
[    0.672319] [drm] nouveau 0000:03:00.0: Attempting to load BIOS image from PRAMIN
[    0.672326] [drm] nouveau 0000:03:00.0: ... BIOS signature not found
[    0.672327] [drm] nouveau 0000:03:00.0: Attempting to load BIOS image from PROM
[    0.866916] [drm] nouveau 0000:03:00.0: ... appears to be valid
[    0.866919] [drm] nouveau 0000:03:00.0: BIT BIOS found
[    0.866920] [drm] nouveau 0000:03:00.0: Bios version 60.86.57.00
[    0.866922] [drm] nouveau 0000:03:00.0: TMDS table version 2.0
[    0.866924] [drm] nouveau 0000:03:00.0: Found Display Configuration Block version 4.0
[    0.866926] [drm] nouveau 0000:03:00.0: Raw DCB entry 0: 02011300 00000028
[    0.866928] [drm] nouveau 0000:03:00.0: Raw DCB entry 1: 01011302 00000010
[    0.866930] [drm] nouveau 0000:03:00.0: Raw DCB entry 2: 01000310 00000028
[    0.866931] [drm] nouveau 0000:03:00.0: Raw DCB entry 3: 02000312 00000010
[    0.866933] [drm] nouveau 0000:03:00.0: Raw DCB entry 4: 0000000e 00000000
[    0.866935] [drm] nouveau 0000:03:00.0: DCB connector table: VHER 0x40 5 14 2
[    0.866937] [drm] nouveau 0000:03:00.0:   0: 0x00002030: type 0x30 idx 0 tag 0x08
[    0.866939] [drm] nouveau 0000:03:00.0:   1: 0x00001130: type 0x30 idx 1 tag 0x07
[    0.866946] [drm] nouveau 0000:03:00.0: Adaptor not initialised, running VBIOS init tables.
[    0.866948] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table 0 at offset 0xC311
[    0.890347] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table 1 at offset 0xC688
[    0.912148] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table 2 at offset 0xD2C9
[    0.912184] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table 3 at offset 0xD3BB
[    0.913281] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table 4 at offset 0xD5B5
[    0.913282] [drm] nouveau 0000:03:00.0: Parsing VBIOS init table at offset 0xD61A
[    1.340045] [drm] nouveau 0000:03:00.0: 2 available performance level(s)
[    1.340048] [drm] nouveau 0000:03:00.0: 0: memory 100MHz core 208MHz shader 416MHz fanspeed 100% timing 0
[    1.340051] [drm] nouveau 0000:03:00.0: 1: memory 400MHz core 459MHz shader 918MHz fanspeed 100% timing 2
[    1.340067] [drm] nouveau 0000:03:00.0: c: memory 399MHz core 459MHz shader 918MHz
[    1.344826] [drm] nouveau 0000:03:00.0: Detected 256MiB VRAM
[    1.344843] [drm] nouveau 0000:03:00.0: 512 MiB GART (aperture)
[    1.628178] [drm] nouveau 0000:03:00.0: allocated 1280x1024 fb: 0x310000, bo ffff880137763800
[    1.649087] fb0: nouveaufb frame buffer device
[    1.649092] [drm] Initialized nouveau 0.0.16 20090420 for 0000:03:00.0 on minor 0

$ dmesg | grep radeon
[    1.662486] [drm] radeon defaulting to kernel modesetting.
[    1.662489] [drm] radeon kernel modesetting enabled.
[    1.662530] radeon 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    1.662534] radeon 0000:01:00.0: setting latency timer to 64
[    1.662931] radeon 0000:01:00.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
[    1.662934] radeon 0000:01:00.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF
[    1.662949] [drm] radeon: 512M of VRAM memory ready
[    1.662951] [drm] radeon: 512M of GTT memory ready.
[    1.662991] radeon 0000:01:00.0: irq 44 for MSI/MSI-X
[    1.662995] radeon 0000:01:00.0: radeon: using MSI.
[    1.663016] [drm] radeon: irq initialized.
[    1.667914] radeon 0000:01:00.0: WB enabled
[    1.713645] [drm] radeon: ib pool ready.
[    1.818118] [drm] radeon: power management initialized
[    1.954928] fbcon: radeondrmfb (fb1) is primary device
[    2.539672] fb1: radeondrmfb frame buffer device
[    2.539676] [drm] Initialized radeon 2.11.0 20080528 for 0000:01:00.0 on minor 1

如果重要的话,我在 x86_64 上运行 Arch Linux。

答案1

据我所知,您需要为该卡使用不同的驱动程序...

我使用的是带有专有nVidia 驱动程序并且它运行良好...但是您需要进行一些配置才能使其正常工作。

为了使用专有驱动程序...您可能需要将 nouveau 列入黑名单,因为存在已知的兼容性问题...

咨询8.1. 与 Nouveau 驱动程序的交互在与该内容相关的文档中...

关于您的 xorg.conf ...您很可能需要在安装 nVidia 驱动程序后启用 TwinView 来配置第二张卡和第三台显示器。

相关内容