Привет всем. У меня есть достаточно современный ноутбук, на котором есть две видеокарты. Одна от nvidia и одна от intel. На него я хочу поставить gentoo. И у меня возник вопрос, который пока не удалось решить. При попытке запустить X с драйверами от nvidia пишет «No screen found». После размышлений я пришел к выводу, что это вполне логично, если у меня сейчас система использует видеокарту от Intel.
Далее я тчетно пытался заставить выводить что-либо на экран через видеокарту от nvidia (хотя бы через nouveau). Пусть даже пока без X сервера. Я пытался передавать параметры ядру при загрузке, в частности
nouveau.modeset=1
i915.modeset=0
где i915 - модуль драйверов для intel собранный при сборке ядра
После я пытался сделать аналогичные телодвижения через modprobe.d, в котором я делал тоже самое. Плюс пытался заблеклистить i915 чтобы он не загружался.
При всех этих попытках у меня просто слетало разрешение экрана на минимум но, судя по всему, карточка от nvidia не работала, а рисовалось все минимальными возможностями ядра через intel.
Далее я собрал ядро с поддержкой vgaswitcheroo.
Если загружать модули nouveau и i915 то vgaswitcheroo обнаруживает две видеокарты и начинает свою работу.
#lsmod
Module Size Used by
nouveau 863603 0
ttm 61215 1 nouveau
dcdbas 5089 0
btusb 11578 0
bluetooth 185002 2 btusb
i915 482726 1
i2c_i801 9268 0
drm_kms_helper 25131 2 nouveau,i915
#cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Pwr:0000:01:00.0
Далее пробую переключить
#echo "DDIS" > /sys/ker...oo/switch
И у меня перестает что-либо рисоваться на экране. Экран просто зависает. Подсоединяюсь по ssh и проверяю - все верно, выбрана дискретная видеокарта и интегрированная отключена. Смотрю
#dmesg | tail
[ 1913.185499] fbcon: Remapping primary device, fb0, to tty -63
[ 1913.196222] [drm] Cannot find any crtc or sizes - going 1024x768
[ 1913.196224] i915: switched off
#dmesg | tail
[ 2855.404055] i915: switched on
[ 2855.414190] i915 0000:00:02.0: setting latency timer to 64
[ 2855.448716] [drm] Enabling RC6 states: RC6 on, RC6p on, RC6pp off
[ 2855.994831] fbcon: Remapping primary device, fb0, to tty 1-63
[ 2855.994834] VGA switcheroo: switched nouveau off
[ 2855.995013] [drm] nouveau 0000:01:00.0: Disabling display...
[ 2855.995196] [drm] nouveau 0000:01:00.0: Disabling fbcon...
[ 2855.995198] [drm] nouveau 0000:01:00.0: Unpinning framebuffer(s)...
[ 2855.995285] [drm] nouveau 0000:01:00.0: Evicting buffers...
[ 2856.002018] [drm] nouveau 0000:01:00.0: Idling channels...
[ 2856.002019] [drm] nouveau 0000:01:00.0: Suspending GPU objects...
[ 2856.118746] [drm] nouveau 0000:01:00.0: And we're gone!
[ 2856.333947] nouveau 0000:01:00.0: power state changed by ACPI to D3hot
#dmesg
[ 3003.622213] VGA switcheroo: switched nouveau on
[ 3003.622218] [drm] nouveau 0000:01:00.0: We're back, enabling device...
[ 3004.040116] nouveau 0000:01:00.0: power state changed by ACPI to D0
[ 3004.050881] [drm] nouveau 0000:01:00.0: POSTing device...
[ 3004.050885] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0x850B
[ 3004.131703] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0x8D1D
[ 3004.194586] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0x6594
[ 3004.194587] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xA72B
[ 3004.194588] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xA72C
[ 3004.314513] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 5 at offset 0xA7E4
[ 3004.314514] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table at offset 0xA849
[ 3004.314516] [drm] nouveau 0000:01:00.0: Restoring GPU objects...
[ 3004.322338] [drm] nouveau 0000:01:00.0: Reinitialising engines...
[ 3004.322344] [drm] nouveau 0000:01:00.0: Restoring mode...
[ 3004.424473] fbcon: Remapping primary device, fb1, to tty 1-63
[ 3004.435193] [drm] Cannot find any crtc or sizes - going 1024x768
[ 3004.435196] i915: switched off
В итоге я не знаю, что делать и как заставить работать карточку от nvidia. Хотел отключить в bios карточку от intel, но в биосе тупо нет возможности это сделать.
Может сталкивался кто с такой проблемой? Что делать? Желательно бы иметь работающие две карточки, чтобы можно было переключать их, пусть и с рестартом x сервера.
Вот некоторые параметры железа и логи:
#lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GT 650M] (rev a1)
#dmesg | grep -i vga
[0.000000] Console: colour VGA+ 80x25
[0.291324] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[0.291475] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
[0.291620] vgaarb: loaded
[0.291712] vgaarb: bridge control possible 0000:01:00.0
[0.291810] vgaarb: no bridge control possible 0000:00:02.0
[2.394070] VGA switcheroo: detected Optimus DSM method \_SB_.PCI0.PEG0.PEGP handle
[2.416790] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[2.416791] vgaarb: transferring owner from PCI:0000:00:02.0 to PCI:0000:01:00.0
[3.466109] vga_switcheroo: enabled
#dmesg | grep nouveau
[ 2.394089] nouveau 0000:01:00.0: enabling device (0006 -> 0007)
[ 3.460320] [drm] nouveau 0000:01:00.0: Detected an NVe0 generation card (0x0e7110a2)
[ 3.462399] [drm] nouveau 0000:01:00.0: acceleration disabled by default, pass noaccel=0 to force enable
[ 3.466116] [drm] nouveau 0000:01:00.0: Checking PRAMIN for VBIOS
[ 3.514166] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[ 3.514168] [drm] nouveau 0000:01:00.0: Checking PROM for VBIOS
[ 3.514222] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[ 3.514223] [drm] nouveau 0000:01:00.0: Checking ACPI for VBIOS
[ 4.349168] [drm] nouveau 0000:01:00.0: ... BIOS checksum invalid
[ 4.349172] [drm] nouveau 0000:01:00.0: Checking PCIROM for VBIOS
[ 4.349173] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[ 4.349174] [drm] nouveau 0000:01:00.0: Using VBIOS from ACPI
[ 4.349176] [drm] nouveau 0000:01:00.0: BIT BIOS found
[ 4.349178] [drm] nouveau 0000:01:00.0: Bios version 80.07.35.00
[ 4.349180] [drm] nouveau 0000:01:00.0: TMDS table version 2.0
[ 4.349335] [drm] nouveau 0000:01:00.0: MXM: no VBIOS data, nothing to do
[ 4.349336] [drm] nouveau 0000:01:00.0: DCB version 4.0
[ 4.349338] [drm] nouveau 0000:01:00.0: DCB outp 00: 02000f00 00000000
[ 4.349340] [drm] nouveau 0000:01:00.0: DCB conn 00: 00000000
[ 4.349355] [drm] nouveau 0000:01:00.0: Adaptor not initialised, running VBIOS init tables.
[ 4.349357] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0x850B
[ 4.450309] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0x8D1D
[ 4.513196] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0x6594
[ 4.513197] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xA72B
[ 4.513198] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xA72C
[ 4.633126] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 5 at offset 0xA7E4
[ 4.633127] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table at offset 0xA849
[ 4.635754] [drm] nouveau 0000:01:00.0: Detected 2048MiB VRAM (GDDR5)
[ 4.640632] [drm] nouveau 0000:01:00.0: 512 MiB GART (aperture)
[ 4.645112] [drm] nouveau 0000:01:00.0: ACPI backlight interface available, not registering our own
[ 4.645114] [drm] nouveau 0000:01:00.0: voltage table 0x50 unknown
[ 4.651178] [drm] nouveau 0000:01:00.0: 3 available performance level(s)
[ 4.651181] [drm] nouveau 0000:01:00.0: 1: core 202MHz shader 405MHz memory 405MHz voltage 490mV
[ 4.651183] [drm] nouveau 0000:01:00.0: 2: core 400MHz shader 800MHz memory 1080MHz voltage 560mV
[ 4.651185] [drm] nouveau 0000:01:00.0: 3: core 1000MHz shader 2000MHz memory 1080MHz voltage 570mV
[ 4.651186] [drm] nouveau 0000:01:00.0: c:
[ 4.663870] [drm] nouveau 0000:01:00.0: allocated 1024x768 fb: 0xe0000, bo ffff880232021400
[ 4.663896] fb1: nouveaufb frame buffer device
[ 4.663899] [drm] Initialized nouveau 1.0.0 20120316 for 0000:01:00.0 on minor 1
#dmesg | grep i915
[ 2.382374] i915 0000:00:02.0: setting latency timer to 64
[ 2.416638] i915 0000:00:02.0: irq 45 for MSI/MSI-X
[ 3.460052] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
P.S. Так как я планировал использовать nvidia драйвера, то я собрал ядро в соответствии с инструкциями, т.е. отключил
Device Drivers --->
Graphics Support --->
< > nVidia Framebuffer Support
< > nVidia Riva support
Правда, у меня не включен VESA VGA graphics support. Я попробую, как вернусь домой, ключить эту опцию.
P.P.S Если блеклистить nouveau и сразу загружать nvidia, то vgaswitcheroo также не загружается.