У меня в системе две видеокарты, на обеих из которых включены все мониторы до
:: 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
Если это имеет значение, я использую Arch Linux на x86_64.