Objevil jsem to náhodou; nvidia-settings i výstup na druhý monitor (=televizi) fungují, takže jsem neměl sebemenší podezření. Až když jsem po opravdu dlouhé době měl chuť podívat se na nějakou hru, nainstaloval jsem Egoboo, spustil, načež se objevila hláška, že nemám 3D akcelerovanou kartu.
Protože jsem ten den updatoval na nové jádro, a protože mám zkušenost, že někdy chybí správný kmod-nvidia, začal jsem hledat a přeinstalovávat ovladače a moduly. Přešel jsem na akmod-nvidia, zajistil překompilování, reinstaloval balíčky, zkoušel starší jádra, ale všechno marné. Po dvou hodinách experimentů jsem byl rád, že X-Windows vůbec nastartují, pochopitelně bez akcelerace.
Výpis z glxinfo, kterým jsem se chtěl přesvědčit o tom, jakou mám kartu:
name of display: :0.0
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 137 (NV-GLX)
Minor opcode of failed request: 4 ()
Resource id in failed request: 0x3000003
Serial number of failed request: 33
Current serial number in output stream: 33
Bad window? Nu, prohledával jsem internet ještě dlouho, než jsem narazil na tuhle diskuzi, která mě navedla správným směrem. V jejich případě šlo o více výskytů různých libglx.so, originální a verzí od nVidia. V mém, zdá se, také:
bash-4.2$ locate libglx.so
/usr/lib/xorg/modules/extensions/libglx.so
/usr/lib/xorg/modules/extensions/nvidia/libglx.so
/usr/lib/xorg/modules/extensions/nvidia/libglx.so.1
/usr/lib/xorg/modules/extensions/nvidia/libglx.so.295.53
Podrobný výpis mě dovedl k hypotéze, že xWindows používají kód z /usr/lib/xorg/modules/extensions, zatímco pro spolupráci k nVidia modulem jádra je nutný ten z /usr/lib/xorg/modules/extensions/nvidia/:
-rwxr-xr-x. 1 root root 466144 14. kvě 06.12 /usr/lib/xorg/modules/extensions/libglx.so
lrwxrwxrwx. 1 root root 16 8. čen 22.19 /usr/lib/xorg/modules/extensions/nvidia/libglx.so -> libglx.so.295.53
lrwxrwxrwx. 1 root root 16 8. čen 22.19 /usr/lib/xorg/modules/extensions/nvidia/libglx.so.1 -> libglx.so.295.53
-rwxr-xr-x. 1 root root 5122672 12. kvě 08.38 /usr/lib/xorg/modules/extensions/nvidia/libglx.so.295.53
Zazálohoval jsem tedy extensions/libglx.so a předělal jej na symbolický link na extensions/nvidia/libglx.so:
bash-4.2$ ls -l /usr/lib/xorg/modules/extensions/libglx.so
lrwxrwxrwx. 1 root root 49 9. čen 21.52 /usr/lib/xorg/modules/extensions/libglx.so -> /usr/lib/xorg/modules/extensions/nvidia/libglx.so
A opravdu, od té doby je akcelerace v pořádku. Zřejmě při instalaci ovladačů nedošlo k potřebnému nalinkování.
Ne, v pořádku není, už je tam zase špatná verze a link zmizel. Něco je špatně. Myslím, že to, který ovladač použít, bude ještě někde uvedené.
Dělo se to lidem už v roce 2008 (viz 1, 2), podle údajů v diskuzi jsou cesty uložené v xorg.conf v sekci "Files":
Section "Files"
ModulePath "/usr/lib64/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib64/xorg/modules"
EndSection
Jak vypadá můj konfigurační soubor?
Section "Files"
EndSection
Tak tady je zakopaný pes! Tuto verzi vygeneroval nvidia-xconfig, když jsem jej jednou omylem spustil místo nvidia-settings
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 295.53 (mockbuild@builder1.ovh.rpmfusion.lan) Tue May 22 21:19:06 CEST 2012
A podle všeho je to známá chyba: „using nvidia-xconfig will break the driver as it adds a empty files section to xorg.conf“. Přidal jsem tedy ručně do sekce Files:
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib/xorg/modules"
Od té doby je driver i akcelerace v pořádku. Kontrolu cest doporučuje i Michal Šika, sekce Kontrola souboru xorg.conf, bohužel jeho článek jsem našel až dodatečně.
Hodnocení hvězdičkami používá jako prevenci
opakovaného kliknutí anonymní cookie.
Pokud s tím nesouhlasíte, neklikejte.
Další podrobnosti k cookies zde.