Для xorg версии 6.8.2-alt12 требуется более новый модуль savage. В логах вылазит следующее: (EE) SAVAGE(0): [dri] SAVAGEDRIScreenInit failed because of a version mismatch. [dri] savage.o kernel module version is 2.4.1 but version 3.0.x is needed. [dri] Disabling DRI.
Либо я чего-то не понимаю, либо одно из двух. На ядре 2.6.10-wks26-up-alt5 dri завёлся без проблем, хотя: [vasya@localhost vasya]$ dmesg |grep drm [drm] Initialized savage 1.0.0 20011023 on minor 0: S3 Inc. VT8375 [ProSavage8 KM266/KL266] верся drm ещё более древняя. Может бага в xorg?
Хм... если со сборки xorg-x11-6.8.2-alt4 ничего существенного в драйвере savage не менялось, то проблема не в том, что модуль savage слишком старый, а как раз в том, что он слишком новый. В драйвере xorg стоит проверка version->version_major != 1, но в сообщении почему-то написано 3.0.x. Откатиться на старую версию модуля ядра не получится, поскольку версия 2.0.0, похоже, была переписана полностью, а старая версия не собирается с новыми ядрами 2.6.x. Правда, новая версия не собирается уже с ядрами 2.4.x; для них остался старый модуль 1.0.0, но в последнем коммите туда написано, что он не работает: date: 2004-09-23 05:39:14 +0000; author: jonsmirl 1) switches from class_sysfs to drm sysfs implementation to allow customization 2) compiles again on 2.4, but doesn't work Эта старая версия сейчас окончательно заброшена; в логах для новой ветки написано, что старый модуль был к тому же дырявым. Вывод: чтобы получить DRI на savage, необходимо обновить соответствующий драйвер в xorg (но я не знаю, в каком состоянии сейчас новая версия).
обновить savage в xorg не получится. ему нужна новая mesa. ждем 6.9.0
да и вообще savage в xorg-6.8.2 не умеет DRI. это только у нас он такой этакий.
исправлено в xorg-x11-6.8.2-alt13. savage больше не умеет DRI
Это конечно здоровско, но мирный выход какой-нибудь есть? Или все в сад (в смысле на dri.freedesktop.org/snapshots)?
можно отключить проверку версии #if 0 /* Check the DRI version */ { int major, minor, patch; DRIQueryVersion( &major, &minor, &patch ); if ( major != 4 || minor < 0 ) { xf86DrvMsg( pScreen->myNum, X_ERROR, "[dri] SAVAGEDRIScreenInit failed because of a version mismatch.\n" "[dri] libDRI version = %d.%d.%d but version 4.0.x is needed.\n" "[dri] Disabling the DRI.\n", major, minor, patch ); return FALSE; } } #endif что из этого получится не знаю