LINUX.ORG.RU

[кактус] xf86-video-ati + r300 + KMS


0

0

Джента, ~x86

Прбую заставить заработать няшный kms с r300. Собрал модуль ядра, обновил xf86-video-ati, libdrm и mesa из портажей до последней версии.

kms заводится. Ня! Но, блин, 3д рендер становится в Софтваре растерайзер. Колупаюсь второй день. Просто интересно, у кого-то получилось завасти kms с вменяемым 3д рендером?

/var/log/Xorg.0.log показывайте

Sylvia ★★★★★ ()

>у кого-то получилось завасти kms с вменяемым 3д рендером?

много у кого получилось )

у меня с обычным r300_dri:

OpenGL vendor string: DRI R300 Project
OpenGL renderer string: Mesa DRI R300 (RS400 5A62) 20090101 x86/MMX/SSE2 NO-TCL DRI2
OpenGL version string: 1.5 Mesa 7.9-devel


с Gallium3d (пока есть некоторые нарекания на перерисовку окон в compiz):

OpenGL vendor string: X.Org R300 Project
OpenGL renderer string: Gallium 0.4 on RC410
OpenGL version string: 2.1 Mesa 7.9-devel
OpenGL shading language version string: 1.20

Sylvia ★★★★★ ()
Ответ на: комментарий от Evil_Wizard

можете считать что это -9999
у меня другая сборка мезы, не с ebuild

sylvia@allure:~$ sudo bin/update_mesa.sh
Password:
Proceeding with MESA update...
fetch...
clean...
put ...
ldconfig...
done...

Sylvia ★★★★★ ()
Ответ на: комментарий от Evil_Wizard

kms впрочем должен работать на mesa 7.8 с основного дерева портежей ~x86/~amd64 без каких либо сложностей

gallium не везде, на картах NO-TCL галлиум заработал только недавно

Sylvia ★★★★★ ()
Ответ на: комментарий от Sylvia
                           
[I] media-libs/mesa (7.8.1@28.05.10): OpenGL-like graphic library for Linux
[I] x11-libs/libdrm (2.4.20@28.05.10): X.Org libdrm library
[I] x11-drivers/xf86-video-ati (6.13.0@28.05.10): ATI video driver
dmesg | grep -i drm 

[drm] Initialized drm 1.1.0 20060810
[drm] radeon defaulting to kernel modesetting.
[drm] radeon kernel modesetting enabled.
direct rendering: Yes
OpenGL renderer string: Software Rasterizer
    GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_fragment_program,
cat /var/log/Xorg.0.log | grep EE                                                                                                                                                       
[    21.127] Current Operating System: Linux shaman 2.6.34-gentoo-brezblock #1 SMP Fri May 28 08:58:31 EEST 2010 i686
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    21.930] (II) Loading extension MIT-SCREEN-SAVER
[    21.931] (II) Loading extension MIT-SCREEN-SAVER
[    22.408] (EE) RADEON(0): [dri] RADEONDRIGetVersion failed to open the DRM

Гм...

cat /var/log/Xorg.0.log | grep here: http://pastebin.com/t8GGeF4b

Походу с версиями из портажей не получится?

Evil_Wizard ★★★ ()
Ответ на: комментарий от Evil_Wizard

зря погрепали, я не вижу где ошибка

по портежам KMS работает, там проблемы только с включением Gallium, в ебилдах основного дерева (игнорирует)

Sylvia ★★★★★ ()

у меня работало

но кактус, да

note173 ★★★★★ ()
Ответ на: комментарий от Evil_Wizard

первое - для 200М драйвер лучше выставлять не как radeon , а как ati


второе, у вас устройство не может быть открыто

#
[ 22.274] drmOpenDevice: node name is /dev/dri/card0
#
[ 22.278] drmOpenByBusid: drmOpenMinor returns -1

[ 22.408] (EE) RADEON(0): [dri] RADEONDRIGetVersion failed to open the DRM



$ ls -l /dev/dri/c*
crw-rw----+ 1 root video 226, 0 May 28 09:16 /dev/dri/card0
crw-rw---- 1 root video 226, 64 May 27 02:25 /dev/dri/controlD64


проверьте у себя ?

это конфигурация ядра, с libdrm, mesa, xf86-video-ati, xorg-server все в порядке

Sylvia ★★★★★ ()
Ответ на: комментарий от Sylvia

Да. Вы правы. /dev/dri пообще нет такого каталога.

zcat /proc/config.gz | grep KMS
CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_RADEON_KMS=y
zcat /proc/config.gz | grep 
DRM CONFIG_DRM=y CONFIG_DRM_KMS_HELPER=y                                            
CONFIG_DRM_TTM=y                                           
# CONFIG_DRM_TDFX is not set                  
# CONFIG_DRM_R128 is not set                   
CONFIG_DRM_RADEON=y                                            
CONFIG_DRM_RADEON_KMS=y       
# CONFIG_DRM_MGA is not set  
# CONFIG_DRM_SIS is not set 
# CONFIG_DRM_VIA is not set 
# CONFIG_DRM_SAVAGE is not set 

Эм.. А что еще включить надо-то?

Evil_Wizard ★★★ ()
Ответ на: комментарий от Evil_Wizard

да вроде все на месте,
sylvia@allure:~$ cat ~/NAS/kern/conf/config-2.6.34-allure |grep -i drm
CONFIG_DRM=y
CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_TTM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=y
CONFIG_DRM_RADEON_KMS=y
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_VMWGFX is not set
# CONFIG_DRM_NOUVEAU is not set
# CONFIG_DRM_I2C_CH7006 is not set
sylvia@allure:~$ cat ~/NAS/kern/conf/config-2.6.34-allure |grep -i radeon
CONFIG_DRM_RADEON=y
CONFIG_DRM_RADEON_KMS=y
# CONFIG_FB_RADEON is not set


а покажите dmesg, дело в том что для radeon drm нужна firmware, а она не всегда грузится

интересует вот чего:

[drm] Loading R300 Microcode
platform radeon_cp.0: firmware: using built-in firmware radeon/R300_cp.bin

у меня поставлено built-in firmware и модуль radeon собран не отдельно а в ядро.

CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_DRM_RADEON=y
CONFIG_DRM_RADEON_KMS=y

Sylvia ★★★★★ ()
Ответ на: комментарий от Sylvia

CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=m
CONFIG_BACKLIGHT_GENERIC=m

вот это еще нужно включить, хотя у вас (точнее она вообще для 200М существует ) проблема с firmware


и сразу заранее - если отвалится звук на 34 ведре, или ждете 34.1 или/и пока используете 2.6.33.x

или вот патч

diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index bd44f88..073ec61 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -976,8 +976,11 @@ void radeon_update_display_priority(struct radeon_device *rdev)
      /* set display priority to high for r3xx, rv515 chips
       * this avoids flickering due to underflow to the
       * display controllers during heavy acceleration.
+       * Don't force high on rs4xx igp chips as it seems to
+       * affect the sound card. See kernel bug 15982.
       */
-      if (ASIC_IS_R300(rdev) || (rdev->family == CHIP_RV515))
+      if ((ASIC_IS_R300(rdev) || (rdev->family == CHIP_RV515)) &&
+       !(rdev->flags & RADEON_IS_IGP))
         rdev->disp_priority = 2;
      else
         rdev->disp_priority = 0;
--
1.5.6.3

Sylvia ★★★★★ ()
Ответ на: комментарий от Sylvia

у меня поставлено built-in firmware и модуль radeon собран не отдельно а в ядро.

Аналогично же.

zcat /proc/config.gz | grep CONFIG_FIRMWARE_IN_KERNEL
CONFIG_FIRMWARE_IN_KERNEL=y 

zcat /proc/config.gz | grep CONFIG_DRM_RA
CONFIG_DRM_RADEON=y
CONFIG_DRM_RADEON_KMS=y 

В dmesg про фирмваре вообще ничего нет. (Потому что собрано in kernel?) Полный лог dmesg: http://pastebin.com/zHPLtPgy

Но про dri там тока две строчки которые я писал выше:

dmesg| grep drm
[drm] Initialized drm 1.1.0 20060810
[drm] radeon defaulting to kernel modesetting.
[drm] radeon kernel modesetting enabled.

Evil_Wizard ★★★ ()
Ответ на: комментарий от Sylvia

Не установлен только BACKLIGHT_GENERIC сецчас попробую с ним.

Спасибо за патч, но вроде пока звук работает (/me стучит по дереву):)

Evil_Wizard ★★★ ()
Ответ на: комментарий от Evil_Wizard

radeonfb отключить нужно, у radeondrm свой fb есть

поэтому и dmesg по выводу маленький, что нет инициализации radeon drm kms


вот что примерно должно быть:

[drm] Initialized drm 1.1.0 20060810
[drm] radeon defaulting to kernel modesetting.
[drm] radeon kernel modesetting enabled.
[drm] initializing kernel modesetting (RS400 0x1002:0x5A62).
[drm] register mmio base: 0xFE1F0000
[drm] register mmio size: 65536
[drm] GPU reset succeed (RBBM_STATUS=0x00000140)
[drm] 2 Power State(s)
[drm] State 0 Battery
[drm]    1 Clock Mode(s)
[drm]       0 engine: 100000
[drm] State 1 Default (default)
[drm]    1 Clock Mode(s)
[drm]       0 engine: 300000
[drm] radeon: power management initialized
[drm:rs400_gart_adjust_size] *ERROR* Forcing to 32M GART size (because of ASIC bug ?)
[drm] Generation 2 PCI interface, using max accessible memory
radeon 0000:01:05.0: VRAM: 128M 0x78000000 - 0x7FFFFFFF (128M used)
radeon 0000:01:05.0: GTT: 32M 0x80000000 - 0x81FFFFFF
[drm] radeon: irq initialized.
[drm] Detected VRAM RAM=128M, BAR=256M
[drm] RAM width 128bits DDR
[TTM] Zone kernel: Available graphics memory: 446008 kiB.
[TTM] Zone highmem: Available graphics memory: 972252 kiB.
[drm] radeon: 128M of VRAM memory ready
[drm] radeon: 32M of GTT memory ready.
[drm] GART: num cpu pages 8192, num gpu pages 8192
[drm] radeon: 4 quad pipes, 1 z pipes initialized.
[drm] radeon: cp idle (0x10000C03)
[drm] Loading R300 Microcode
platform radeon_cp.0: firmware: using built-in firmware radeon/R300_cp.bin
[drm] radeon: ring at 0x0000000080000000
[drm] ring test succeeded in 2 usecs
[drm] radeon: ib pool ready.
[drm] ib test succeeded in 0 usecs
...
Console: switching to colour frame buffer device 128x48
fb0: radeondrmfb frame buffer device
registered panic notifier
[drm] Initialized radeon 2.3.0 20080528 for 0000:01:05.0 on minor 0

Sylvia ★★★★★ ()
Ответ на: комментарий от Evil_Wizard

>вроде пока звук работает (/me стучит по дереву):)

потому что dri2 не работает :) отпишитесь про звук, интересно, хотя все равно багу уже исправили

Sylvia ★★★★★ ()
Ответ на: комментарий от Sylvia

[code]
OpenGL vendor string: DRI R300 Project
OpenGL renderer string: Mesa DRI R300 (RS400 5A62) 20090101 x86/MMX/SSE2 NO-TCL DRI2
OpenGL version string: 1.5 Mesa 7.8.1
OpenGL extensions:
[/code]

Супер! работает :) Спасибо.

btw: Звук таки заботает, правда при нагрузке на видеокарты начинает лагать :) Сейчас опробую патчик.

Evil_Wizard ★★★ ()
Ответ на: комментарий от Evil_Wizard

если лень пересобирать

radeon.disp_priority=1

в параметры загрузки ядра можно добавить

Sylvia ★★★★★ ()
Ответ на: комментарий от Sylvia

Пересобрал, заработало. Вельме якую, сиречь Бальшое спасибо :)

Evil_Wizard ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.