Novější jádra Debianu mají zakompilovanou podporu KVM. Ta se nesnese s ovladači NVIDIA a nezdaří se jejich kompilace. Konečně jsem přišel na to, jak problém snadno vyřešit.
Po (už docela dávném) update jádra z 2.6.18 na 2.6.21 mi přestaly chodit ovladače NVIDIA. Kompilace končila s chybou. V logu ( /var/log/nvidia-installer.log
) jsem se vždy na konci dočetl:
FATAL: modpost: GPL-incompatible module nvidia.ko uses
GPL-only symbol 'paravirt_ops'
make[3]: *** [__modpost] Error 1
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.21-1-k7'
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make[1]: *** [module] Error 1
make[1]: Leaving directory `/usr/src/modules/nvidia-kernel/nv'
make: *** [build-stamp] Error 2
Problémem je kolize mezi nově zavedenou virtualizací KVM (v jádře) a modulem NVIDIA. Jedním z řešení je samozřejmě rekompilace jádra bez KVM. Existuje ale snadnější řešení. Objevil jsem ho na blog.tbnm.org a je velmi jednoduché.
Jde vlastně jen o vložení dvou řádků do Makefile. Není na tom nic složitého, přikládám podrobný postup pro další generace a svou děravou hlavu:
1) Navštivte stránky NVIDIA a stáhněte si nejnovější soubor s ovladači (asi 13 MB).
2) Nechejte balík, aby se sám rozbalil:
./NVIDIA-Linux-x86-96.43.01-pkg1.run --extract-only
3) Poeditujte soubor Makefile.kbulid
v adresáři:
cd NVIDIA-Linux-x86-96.43.01-pkg1/usr/src/nv/
Je třeba připsat dva řádky za řádek 77. Na něm byste měli najít něco jako
EXTRA_CFLAGS += -Wall -Wimplicit -Wreturn-type...
Přímo za něj tedy zkopírujte následující:
PARAVIRT_OPS := $(shell grep "D paravirt_ops" /boot/System.map-$(shell uname -r) | colrm 9)
EXTRA_LDFLAGS := --defsym paravirt_ops=0x$(PARAVIRT_OPS)
4) Vraťte se o tři adresáře nahoru (tedy do NVIDIA-Linux-x86-96.43.01-pkg1
a spusťte normálně instalátor:
./nvidia-installer
Proběhne běžná instalace (jak ji zřejmě znáte) a všechno běží. Samozřejmě je ještě potřeba poeditovat /etc/X11/xorg.conf
, ale v tom se už instalace nijak neliší (čili viz manuál).
Mám to vyzkoušené, právě mi nový modul běží a karta akceleruje. Přeji mnoho dalších šťastných dní s akcelerovaným Debianem.
??? mi to v debianu normalne funguje a to mam:
Linux triple 2.6.22-2-amd64 #1 SMP Thu Aug 30 23:43:59 UTC 2007 x86_64 GNU/Linux
normalne nainstalovane z baliku, takze kvm tam je dostupne jako modul.
staci spustin:
apt-get install nvidia-glx
m-a build nvidia
a dpkg -i vysledny-balicek
resp.
m-a a-i nvidia
by to mela udelat cele sama. Ale z nejaky iracionalnich duvodu to rad instaluji rucne.
Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. GNU/Linuxem a Unixem obecně se zabývá již více než deset let a věnuje se především jeho nasazení v počítačových sítích a bezpečnostní politice. Zde bloguje o Root.cz, Linuxu, internetu a světě kolem sebe.
Přečteno 112 839×
Přečteno 89 919×
Přečteno 73 318×
Přečteno 58 205×
Přečteno 54 486×