Klątwa PARAVIRT_OPS
Dla tych, którzy próbują samodzielnie kompilować sterowniki NVIDII dla kernela powyżej wersji 2.6.2X, powyższy parametr PARAVIRT_OPS jawi się w nocnych koszmarach i goni ich z włączoną kosiarką do trawy. Tak, w Debianie są problemy z kompilowaniem sterowników, które postanowiły sprawdzać i uzależnić swoją dalszą kompilację od pewnych warunków. Pisałem o tym pewnym sposobie wcześniej, pisał o tym Hadret, a ja mam kolejną poradę, najprostszą chyba z możliwych.
Zaczynamy standardowo, czyli musimy posiadać wiadome sprawy – paczki build-essential, linux-headers-`uname -r`, ściągnięte sterowniki NVIDII. Sterowniki kopiujemy sobie do np. /usr/src/, rozpakowujemy (u mnie sterowniki to plik NVIDIA-Linux-x86-100.14.11-pkg1.run) :
$#cd /usr/src/
$#chmod 755 NVIDIA-Linux-x86-100.14.11-pkg1.run
$#./NVIDIA-Linux-x86-100.14.11-pkg1.run -x
Owieramy do edycji ulubionym edytorem plik :
$#joe NVIDIA-Linux-x86-100.14.11-pkg1/usr/src/nv/Makefile.kbuild
Znajdujemy fragment :
EXTRA_CFLAGS += -I$(src)
EXTRA_CFLAGS += -Wall -Wimplicit -Wreturn-type (…)
Poniżej tego fragmentu wklejamy :
PARAVIRT_OPS := $(shell grep "D paravirt_ops" /boot/System.map-$(shell uname -r) | colrm 9)
EXTRA_LDFLAGS := --defsym paravirt_ops=0x$(PARAVIRT_OPS)
(uwaga : \-\-defsym a nie jedno – jakby się mogło wydawać)
Zapisujemy, wychodzimy z edycji i kompilujemy :
$#./NVIDIA-Linux-x86-100.14.11-pkg1/nvidia-installer
Powinno się udać – ew. szukaj co poszło nie tak w /var/log/nvidia-installer.
Nie podoba mi się bo nie jest to Debian-Way. W Debian-Way instalujesz sterowniki z repozytoriów – niezależnie od posiadanego kernela. W wolnej chwili planuję przełożyć na polski i ukraść na bloga to. U mnie działa (:
Z małymi zgrzytami 😉 ale zadziałało. Metoda bardzo szybka i prosta.
Może nie Debian-Way, ale :
– działa,
– jak ktoś lubi sobie kompilować, to sobie skompiluje wg. swoich potrzeb,
– jak ktoś nie ma w repozytorium najnowszych sterowników, w ten sposób sam sobie je wprowadzi w system,
Debianowcy nie muszą mieć klapek na oczach, lecz mogą być otwarci na wszelkie możliwości wpływania na pracę i komponenty systemu 🙂
To nie tyle kwestia klapek, co wygody. Wygodniej mi użyć do instalacji typowo debianowych narzędzi i nie robić sobie bałaganu w systemie. Nie wspomnę o tym, że po instalacji nowego kernela, musisz te operacje powtórzyć, a wracając do starego, nie będziesz miał wsparcia 3D. Instalacja via debian-way rozwiązuje również te niedogodności 😉
@up: oczywiście po instalacji nowego kernela również musisz przeinstalować sterowniki od nvidii, tylko robi się to szybciej i bez bałaganienia (:
Jednak do końca sterowniki tak zainstalowane u mnie nie działają. Nie odpala się Compiz oraz gra Chromium – tyle jak na razie sprawdziłem. W obydwóch przypadkach konsola zwraca błąd, że nie można znaleźć modułu GL.
No to zmienię teraz swoje zeznania. 😉 Instalowałem sterowniki w wersji legacy i za pierwszym podejściem były to serii 7xxx. Na nich nie wykrywało GL. Spróbowałem ze sterownikami serii 9xxx i wszystko teraz działa jak należy.