Asus X53TA две видеокарты ATI/ATI + Gentoo 64bit

Имеется Ноутбук Asus X53TA у него на борту две видео карты, в биосе никаких настроек по ним нет. После груба практически сразу черный экран но система догружается до конца. После загрузки подключаюсь по ssh.

Цитата:
# uname -a
Linux gensit-desktop 3.0.6-gentoo #6 SMP Sun Dec 25 16:55:55 MSK 2011 x86_64 AMD A6-3400M APU with Radeon(tm) HD Graphics AuthenticAMD GNU/Linux

Цитата:
# dmesg | grep radeon
[ 0.000000] Command line: real_root=/dev/sda6 radeon.modeset=1
[ 0.000000] Kernel command line: real_root=/dev/sda6 radeon.modeset=1
[ 0.980072] [drm] radeon kernel modesetting enabled.
[ 0.980334] radeon 0000:00:01.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 0.980406] radeon 0000:00:01.0: setting latency timer to 64
[ 0.981554] radeon 0000:00:01.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
[ 0.981697] radeon 0000:00:01.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF
[ 0.982433] [drm] radeon: 512M of VRAM memory ready
[ 0.982546] [drm] radeon: 512M of GTT memory ready.
[ 0.982813] radeon 0000:00:01.0: irq 40 for MSI/MSI-X
[ 0.982820] radeon 0000:00:01.0: radeon: using MSI.
[ 0.982965] [drm] radeon: irq initialized.
[ 61.920704] r600_cp: Failed to load firmware "radeon/SUMO_pfp.bin"
[ 61.920885] radeon 0000:00:01.0: disabling GPU acceleration
[ 61.921990] radeon 0000:00:01.0: ffff88014e00d400 unpin not necessary
[ 61.922104] radeon 0000:00:01.0: ffff88014e00d400 unpin not necessary
[ 62.303875] [drm] radeon: power management initialized
[ 62.606097] fbcon: radeondrmfb (fb0) is primary device
[ 62.627726] [drm:radeon_dp_get_link_status] *ERROR* displayport link status failed
[ 62.627728] [drm:radeon_dp_link_train_cr] *ERROR* clock recovery failed
[ 62.722714] fb0: radeondrmfb frame buffer device
[ 62.722776] [drm] Initialized radeon 2.10.0 20080528 for 0000:00:01.0 on minor 0
[ 62.722907] radeon 0000:01:00.0: enabling device (0000 -> 0003)
[ 62.722969] radeon 0000:01:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 62.723042] radeon 0000:01:00.0: setting latency timer to 64
[ 62.724143] radeon atpx: version is 1
[ 66.565013] radeon 0000:01:00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
[ 66.565064] radeon 0000:01:00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
[ 66.566295] [drm] radeon: 1024M of VRAM memory ready
[ 66.567368] [drm] radeon: 512M of GTT memory ready.
[ 66.570623] radeon 0000:01:00.0: irq 40 for MSI/MSI-X
[ 66.570629] radeon 0000:01:00.0: radeon: using MSI.
[ 66.571767] [drm] radeon: irq initialized.
[ 126.816779] ni_cp: Failed to load firmware "radeon/BTC_rlc.bin"
[ 126.818900] radeon 0000:01:00.0: disabling GPU acceleration
[ 126.821010] radeon 0000:01:00.0: ffff880149613800 unpin not necessary
[ 126.822020] radeon 0000:01:00.0: ffff880149613800 unpin not necessary
[ 126.825933] [drm] radeon: power management initialized
[ 126.836856] fb1: radeondrmfb frame buffer device
[ 126.837840] [drm] Initialized radeon 2.10.0 20080528 for 0000:01:00.0 on minor 1

Цитата:
# emerge xf86-video-ati mesa libdrm radeon-ucode -pv
* Last emerge --sync was Sun Oct 30 20:05:01 2011.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] x11-drivers/radeon-ucode-20110531 0 kB
[ebuild R ] x11-libs/libdrm-2.4.26 USE="libkms static-libs" VIDEO_CARDS="radeon -intel -nouveau -vmware" 0 kB
[ebuild R ] x11-drivers/xf86-video-ati-6.14.2 0 kB
[ebuild R ] media-libs/mesa-7.11 USE="classic egl gallium llvm nptl shared-glapi -bindist -debug -gbm -gles -motif -openvg -pax_kernel -pic (-selinux) -shared-dricore" VIDEO_CARDS="radeon -intel -mach64 -mga -nouveau -r128 -savage -sis -tdfx -via -vmware" 0 kB

Цитата:
# cat /usr/src/linux/.config | grep RADEON
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_KMS=y
CONFIG_FB_RADEON=y
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_BACKLIGHT=y
# CONFIG_FB_RADEON_DEBUG is not set

Цитата:
# cat /usr/src/linux/.config | grep DEBUG_FS
# CONFIG_OCFS2_DEBUG_FS is not set
CONFIG_DEBUG_FS=y

+ Это конечно маловажно очитывая вышеприведенное но всеже:

Цитата:
# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:01.0
1:DIS: :Pwr:0000:01:00.0

Цитата:
# lspci | grep VGA
00:01.0 VGA compatible controller: ATI Technologies Inc Device 9647
01:00.0 VGA compatible controller: ATI Technologies Inc Device 6741

Перечитал и опробовал кучу всего, ничего не помогает.

Меня смущает то что грузится пытаются какие-то странные прошивки:
r600_cp: Failed to load firmware "radeon/SUMO_pfp.bin"
ni_cp: Failed to load firmware "radeon/BTC_rlc.bin"

к слову сказать эти файлы есть в /lib/firmware и в /lib64/firmware

Смущает меня то что в таблице... вроде как сказано что это Turks. Яж ведь не ошибаюсь?

любые действия с /sys/kernel/debug/vgaswitcheroo/switch приводят к тому что все как будто подвисает повторно никаке действия с файлом невозможны.

Как все это заставить работать?

поставьте radeon-ucode и

поставьте radeon-ucode и сделайте как там в постинсталл написанно

___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

.

Исключите из строки загрузчика следующее регулярное выражение:
radeon.modeset=1, после чего пробуйте загрузиться :)
И ещё: так как я злостный "оффтопщик", осмелюсь посоветовать на ноуте использование
альтернативного ведра: sys-kernel/pf-sources, а не стандартного - gentoo-sources.
Мои аргументы (2): 1. использование BFS вместо CFS, 2. фича TuxOnIce, неплохо смотрящаяся на ляптяпе.

Попробовал

Попробовал sys-kernel/pf-sources результат тот же

Цитата:
[ 1.731118] [drm:radeon_dp_get_link_status] *ERROR* displayport link status failed
[ 1.731121] [drm:radeon_dp_link_train_cr] *ERROR* clock recovery failed

строчку radeon.modeset=1 убрал пробовал и с ней и без неё, и со значением 0 со значение 0 грузится все с буквами но видеокарты как устройства не появляются.

Сделал Цитата: # dmesg |

Сделал

Цитата:
# dmesg | grep radeon
[ 0.948115] [drm] radeon defaulting to kernel modesetting.
[ 0.948183] [drm] radeon kernel modesetting enabled.
[ 0.948440] radeon 0000:00:01.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 0.948511] radeon 0000:00:01.0: setting latency timer to 64
[ 0.949905] radeon 0000:00:01.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
[ 0.950072] radeon 0000:00:01.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF
[ 0.950843] [drm] radeon: 512M of VRAM memory ready
[ 0.950954] [drm] radeon: 512M of GTT memory ready.
[ 0.951254] radeon 0000:00:01.0: irq 40 for MSI/MSI-X
[ 0.951260] radeon 0000:00:01.0: radeon: using MSI.
[ 0.951407] [drm] radeon: irq initialized.
[ 0.956074] radeon 0000:00:01.0: WB enabled
[ 0.972781] [drm] radeon: ib pool ready.
[ 1.355472] [drm] radeon: power management initialized
[ 1.653586] fbcon: radeondrmfb (fb0) is primary device
[ 1.677741] [drm:radeon_dp_get_link_status] *ERROR* displayport link status failed
[ 1.677745] [drm:radeon_dp_link_train_cr] *ERROR* clock recovery failed

[ 1.777892] fb0: radeondrmfb frame buffer device
[ 1.777978] [drm] Initialized radeon 2.10.0 20080528 for 0000:00:01.0 on minor 0
[ 1.778171] radeon 0000:01:00.0: enabling device (0000 -> 0003)
[ 1.778233] radeon 0000:01:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 1.778301] radeon 0000:01:00.0: setting latency timer to 64
[ 1.779683] radeon atpx: version is 1
[ 5.876008] radeon 0000:01:00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
[ 5.876058] radeon 0000:01:00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
[ 5.880619] [drm] radeon: 1024M of VRAM memory ready
[ 5.882381] [drm] radeon: 512M of GTT memory ready.
[ 5.887718] radeon 0000:01:00.0: irq 41 for MSI/MSI-X
[ 5.887725] radeon 0000:01:00.0: radeon: using MSI.
[ 5.889477] [drm] radeon: irq initialized.
[ 5.898775] radeon 0000:01:00.0: WB enabled
[ 5.918375] [drm] radeon: ib pool ready.
[ 5.926012] [drm] radeon: power management initialized
[ 5.941080] fb1: radeondrmfb frame buffer device
[ 5.942615] [drm] Initialized radeon 2.10.0 20080528 for 0000:01:00.0 on minor 1

Из интересного, теперь после команд типа echo "DDIS" > /sys/kernel/debug/vgaswitcheroo/switch
Все адекватно работает судя по консоли.

Цитата:
# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:01.0
1:DIS: :Pwr:0000:01:00.0

# echo "DDIS" > /sys/kernel/debug/vgaswitcheroo/switch

# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD: :Off:0000:00:01.0
1:DIS:+:Pwr:0000:01:00.0

если после переключения стартовать xdm без xorg.conf то вот что имеем:
/var/log/Xorg.0.log
Но экран ноутбука всевремя черный

Нашел вот такую

Нашел вот такую штуку:
http://www.spinics.net/lists/dri-devel/msg01266.html
Пробую патчить, патчу вот так:

# cd /usr/src/linux
# patch -p0 < patchdrm
# make && make modules_install
# cp arch/x86_64/boot/bzImage /boot/3.0.6-gentoo

текст patchdrm

Цитата:
---
drivers/gpu/drm/radeon/radeon_encoders.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c
index 1ebb100..e0b30b2 100644
--- a/drivers/gpu/drm/radeon/radeon_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
@@ -1072,6 +1072,8 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode)
if (is_dig) {
switch (mode) {
case DRM_MODE_DPMS_ON:
+ if (!ASIC_IS_DCE4(rdev))
+ atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE_OUTPUT, 0, 0);
if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_DP) {
struct drm_connector *connector = radeon_get_connector_for_encoder(encoder);

@@ -1079,8 +1081,6 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode)
if (ASIC_IS_DCE4(rdev))
atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON);
}
- if (!ASIC_IS_DCE4(rdev))
- atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE_OUTPUT, 0, 0);
break;
case DRM_MODE_DPMS_STANDBY:
case DRM_MODE_DPMS_SUSPEND:
--
1.7.0.1

не соображу что не так делаю, но при команде patch -p0 < patchdrm
получаю сообщение:

Цитата:
can't find file to patch at input line 9
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|---
| drivers/gpu/drm/radeon/radeon_encoders.c | 4 ++--
| 1 files changed, 2 insertions(+), 2 deletions(-)
|
|diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c
|index 1ebb100..e0b30b2 100644
|--- a/drivers/gpu/drm/radeon/radeon_encoders.c
|+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
--------------------------
File to patch:

говорю что фал тут drivers/gpu/drm/radeon/radeon_encoders.c

получаю сообщение:

Цитата:
File to patch: drivers/gpu/drm/radeon/radeon_encoders.c
patching file drivers/gpu/drm/radeon/radeon_encoders.c
Hunk #1 FAILED at 1072.
Hunk #2 FAILED at 1081.
2 out of 2 hunks FAILED -- saving rejects to file drivers/gpu/drm/radeon/radeon_encoders.c.rej

чего делать дальше пока не пойму.

Пяльцем в небо :)

Пробовали:
sysctl kernel.acpi_video_flags=3
?

Не совсем понял в чем суть но

Не совсем понял в чем суть но ничего нового не произошло.
Но строчка меня натолкнула на мысль. при загрузке обе видео карты получается включены (питание есть на обоих) и если стартовать иксы в такм состоянии то они просто не находят видео карту. После переключения видюх исксы судя по логам стартуют, но экран черный. А мысль возникла такая есть ли возможность передать ядру параметр выключающую одну из видюх?

Цитата: CONFIG_FB_RADEON=y C

Цитата:
CONFIG_FB_RADEON=y
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_BACKLIGHT=y

Мне кажется, что это лишнее.

P.S. Если хотите пользоваться звуком по HDMI, то к radeon.modeset=1 стоит добавить radeon.audio=1

С этим и без этого ведет себя

С этим и без этого ведет себя одинаково.

И так, нашел информацию о том

И так, нашел информацию о том что глюки из dmesg решены в ядрах 3.1.x поставил gentoo-sources-3.1.5
собрал genkernel-ом

теперь:

Цитата:
# dmesg | grep radeon
[drm] radeon defaulting to kernel modesetting.
[drm] radeon kernel modesetting enabled.
fb: conflicting fb hw usage radeondrmfb vs VESA VGA - removing generic driver
radeon 0000:00:01.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
radeon 0000:00:01.0: setting latency timer to 64
radeon 0000:00:01.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
radeon 0000:00:01.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF
[drm] radeon: 512M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
radeon 0000:00:01.0: irq 40 for MSI/MSI-X
radeon 0000:00:01.0: radeon: using MSI.
[drm] radeon: irq initialized.
radeon 0000:00:01.0: WB enabled
[drm] radeon: ib pool ready.
[drm] radeon: power management initialized
fbcon: radeondrmfb (fb0) is primary device
fb0: radeondrmfb frame buffer device
[drm] Initialized radeon 2.11.0 20080528 for 0000:00:01.0 on minor 0
radeon 0000:01:00.0: enabling device (0000 -> 0003)
radeon 0000:01:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
radeon 0000:01:00.0: setting latency timer to 64
radeon atpx: version is 1
radeon 0000:01:00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
radeon 0000:01:00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
[drm] radeon: 1024M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
radeon 0000:01:00.0: irq 41 for MSI/MSI-X
radeon 0000:01:00.0: radeon: using MSI.
[drm] radeon: irq initialized.
radeon 0000:01:00.0: WB enabled
[drm] radeon: ib pool ready.
[drm] radeon: power management initialized
fb1: radeondrmfb frame buffer device
[drm] Initialized radeon 2.11.0 20080528 for 0000:01:00.0 on minor 1

но экран при загрузке попрежнему черный и иксы по прежнему не запускают экран.

если стартовать xdm сразу после загрузки то /var/log/Xorg.0.log
переключаю видеокарты

# echo "DDIS" > /sys/kernel/debug/vgaswitcheroo/switch
и рестарую xdm
после рестарта XDM
# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD: :Off:0000:00:01.0
1:DIS:+:Pwr:0000:01:00.0

Видеокарты переключились и теперь /var/log/Xorg.0.log

.

Сие почему:

/var/log/Xorg.0.log написал(а):
LoadModule: "vesa"
...
LoadModule: "fbdev"
...

?
Что мы имеем, после
egrep -wi video_cards /etc/make.conf?

VIDEO_CARDS="radeon"Сам не

VIDEO_CARDS="radeon"

Сам не могу этого понять xord-drivers пересобирал

После старта xdm в dmesg появляется такое:

[drm:drm_mode_getfb] *ERROR* invalid framebuffer id

Баг этот вроде ещё с 2.6.какойто там был известен, а пофиксили или нет и как я чет найти не могу

На всякий пожарный вот что выводит dmesg

Цитата:
# dmesg | grep drm
[drm] Initialized drm 1.1.0 20060810
[drm] radeon defaulting to kernel modesetting.
[drm] radeon kernel modesetting enabled.
fb: conflicting fb hw usage radeondrmfb vs VESA VGA - removing generic driver
[drm] initializing kernel modesetting (SUMO 0x1002:0x9647 0x1043:0x107C).
[drm] register mmio base: 0xFEB00000
[drm] register mmio size: 262144
[drm] Detected VRAM RAM=512M, BAR=256M
[drm] RAM width 32bits DDR
[drm] radeon: 512M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] Driver supports precise vblank timestamp query.
[drm] radeon: irq initialized.
[drm] GART: num cpu pages 131072, num gpu pages 131072
[drm] Loading SUMO Microcode
[drm] ring test succeeded in 1 usecs
[drm] radeon: ib pool ready.
[drm] ib test succeeded in 0 usecs
[drm] Radeon Display Connectors
[drm] Connector 0:
[drm] VGA
[drm] HPD2
[drm] DDC: 0x6440 0x6440 0x6444 0x6444 0x6448 0x6448 0x644c 0x644c
[drm] Encoders:
[drm] CRT1: INTERNAL_UNIPHY2
[drm] CRT1: NUTMEG
[drm] Connector 1:
[drm] LVDS
[drm] HPD1
[drm] DDC: 0x6430 0x6430 0x6434 0x6434 0x6438 0x6438 0x643c 0x643c
[drm] Encoders:
[drm] LCD1: INTERNAL_UNIPHY2
[drm] LCD1: TRAVIS
[drm] Connector 2:
[drm] HDMI-A
[drm] HPD6
[drm] DDC: 0x6480 0x6480 0x6484 0x6484 0x6488 0x6488 0x648c 0x648c
[drm] Encoders:
[drm] DFP1: INTERNAL_UNIPHY1
[drm] Radeon display connector VGA-1: No monitor connected or invalid EDID
[drm] Radeon display connector LVDS-1: No monitor connected or invalid EDID
[drm] Radeon display connector HDMI-A-1: No monitor connected or invalid EDID
[drm] Internal thermal controller without fan control
[drm] radeon: power management initialized
[drm] fb mappable at 0xB0141000
[drm] vram apper at 0xB0000000
[drm] size 4325376
[drm] fb depth is 24
[drm] pitch is 5632
fb0: radeondrmfb frame buffer device
drm: registered panic notifier
[drm] Initialized radeon 2.11.0 20080528 for 0000:00:01.0 on minor 0
[drm] initializing kernel modesetting (TURKS 0x1002:0x6741 0x1043:0x107C).
[drm] register mmio base: 0xFEA20000
[drm] register mmio size: 131072
[drm] Detected VRAM RAM=1024M, BAR=256M
[drm] RAM width 128bits DDR
[drm] radeon: 1024M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] Driver supports precise vblank timestamp query.
[drm] radeon: irq initialized.
[drm] GART: num cpu pages 131072, num gpu pages 131072
[drm] Loading TURKS Microcode
[drm] ring test succeeded in 2 usecs
[drm] radeon: ib pool ready.
[drm] ib test succeeded in 0 usecs
[drm] Radeon Display Connectors
[drm] Internal thermal controller with fan control
[drm] radeon: power management initialized
[drm] Cannot find any crtc or sizes - going 1024x768
[drm] fb mappable at 0xC0141000
[drm] vram apper at 0xC0000000
[drm] size 3145728
[drm] fb depth is 24
[drm] pitch is 4096
fb1: radeondrmfb frame buffer device
[drm] Initialized radeon 2.11.0 20080528 for 0000:01:00.0 on minor 1
[drm:drm_mode_getfb] *ERROR* invalid framebuffer id

В моём случае

В моём случае помогло:
CONFIG_FB=y
CONFIG_FB_EFI=y
CONFIG_FRAMEBUFFER_CONSOLE=y
Все 3 ключа обязательно должны быть в =y, модулем у меня не заработало.
Вероятно, твой asus тоже на uefi, вот полезные ссылки:
http://en.gentoo-wiki.com/wiki/UEFI#Kernel_Options
https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#Linux_Kernel_Configuration_for_UEFI

P.S. Мой HP 4535s (LG850EA) с amd a4 и дискретной картой тоже любитель выдавать чёрный экран, kms удалось завести только на gentoo-sources-3.0.15, на 3.1.7 и 3.2.0 с теми же конфигами чернота.

Поборол у себя путём отката

Поборол у себя путём отката cf2aff6eff251b6fbdaf8c253e65ff7c693de8cd:
http://forums.gentoo.org/viewtopic-p-6926564.html#6926564

Но hybrid graphics так и не работают.

В общем пока работает на

В общем пока работает на fglrx с ядром 3.1.6 на встроенной видеокарте. Как работает мне не нравиться, и всеже хочется на radeon настроить, поэтому пока не ставлю решено буду пробовать чуть позже, добить вопрос.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".