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.

7 komentarzy

  1. 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 (:

  2. 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 🙂

  3. 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 😉

  4. @up: oczywiście po instalacji nowego kernela również musisz przeinstalować sterowniki od nvidii, tylko robi się to szybciej i bez bałaganienia (:

  5. 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.

  6. 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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Post comment

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.