.

NVidia-Treiber unter Lenny |

In Ermangelung anderer sinnvoller Tätigkeiten, habe ich gestern abend meinen Heimat-Desktop von Debian Etch auf Lenny migiert. Ok, vielleicht hätte es auch etwas Sinnvolles zu tun gegeben, aber mir war nach spielen …

Das Update lief reibungslos, aptitude lief fehlerfrei durch, ein Reboot brachte Lenny dann mit Kernel 2.6.21 an den Start.

Die einzige manuelle Anpassung, die nun noch übrig blieb, war, da der freie Nvidia-Treiber “nv” auf meinem Bildschirm die native Auflösung von 1440×900 nicht unterstützt (Bug#438850), die Installation des proprietären Treibers vom Hersteller.

Doch der Versuch, den heruntergeladenen Treiber nun über:

# sh NVIDIA-Linux-x86-100.14.11-pkg1.run

zu installieren schlug bei mir fehl:

The CC version check failed:
The Compiler used to compile the kernel (gcc 4.1) does not exactly match the current compiler (gcc 4.2)

Das war schnell behoben:

# apt-get install gcc-4.1
# ln -sf /usr/bin/gcc-4.1 /usr/bin/gcc

Nächster Versuch. Doch auch hier brach der NVidia-Installer wieder ab. In der /var/log/nvidia-installer.log tauchte die nächste Fehlermeldung auf:

FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol ‘paravirt_ops’

Blöde Nachricht…

Sie besagt im Endeffekt, dass der Kernel uns den NVidia-Treiber nicht installieren lassen möchte, da dieser nicht der GPL unterliegt.Edit: Das war etwas missverständlich, genauer sollte es heißen: NVidia darf die zum Übersetzen benötigte Paravirt-Schnittstelle im proprietären Treibermodul nicht nutzen, da diese komplett der GPL unterliegt.

Einzig mögliche Lösung: selbst einen Kernel basteln, der die paravirt_ops nicht enthält.

Das ist eigentlich nicht kompliziert, je nach System nur ein wenig zeitaufwändig. Hier die Arbeitsschritte zur Installation:

# aptitude install linux-source-2.6.21 build-essential kernel-package fakeroot gcc-4.1
# cd /usr/src
# tar xjvf linux-source-2.6.21.tar.bz2
# ln -s linux-source-2.6.21 linux
# cd linux
# cp /boot/config-2.6.21-2-486 .config

Jetzt sind die Source und die zur Kernel-Erstellung nötigen Pakete heruntergeladen, außerdem ist die Konfiguration des aktuell laufenden Kernels jetzt auch die Vorgabe zur Erstellung unseres eigenen.

Doch bevor wir nun mit der Übersetzung der Quellen beginnen können, muss natürlich noch die Option “PARAVIRT” deaktiviert werden. Am einfachsten geht das, indem man die Datei “.config” in einem Texteditor öffnet, und in der Zeile

CONFIG_PARAVIRT=y

das “y” durch ein “n” austauscht.

Jetzt geht’s an’s Kernel backen:

# fakeroot make-kpkg - -append-to-version=.meiner kernel_image

Fertig. Auch wenn’s etwas dauert ;)

Jetzt haben wir unseren eigenen Kernel als Debian-Paket unter /usr/src/ liegen. Dieses Paket installieren wir nun:

# dpkg -i linux-image-2.6.21.meiner-10.00.Custom_i386.deb

Der Kernel selbst ist nun schon startklar, jetzt stellen wir ihm noch eine Ramdisk an die Seite:

# mkinitramfs -o /boot/initrd.img-2.6.21.meiner /lib/modules/2.6.21.meiner

erstellt die Datei. Damit die Initial-Ramdisk auch beim Bootvorgang eingebunden wird, teilen wir dem Bootloader Grub dies mit, indem wir die /boot/grub/menu.lst wie folgt anpassen:

title           Debian GNU/Linux, kernel 2.6.21.meiner
root            (hd0,0)
kernel          /vmlinuz-2.6.21.meiner root=/dev/sda3 ro
initrd          /initrd.img-2.6.21.meiner
savedefault

Das Root-Device muss natürlich noch an die eigene Umgebung angepasst werden, hier hilft ein Blick auf die Boot-Optionen des original Debian-Kernels einen Eintrag weiter unten.

Das war’s im Groben auch schon. Nach einem Neustart sollte sich der proprietäre NVIDIA-Treiber nun ohne Schwierigkeiten kompilieren und installieren lassen:

Da der NVIDIA-Treiber nicht bei laufendem XServer erstellt werden kann (warum auch immer), wechseln wir mit [STRG][ALT][F1] auf die erste Konsole, und melden uns hier als root an. Ein:

/etc/init.d/gdm stop

beendet den XServer dann.

Jetzt sollte der Installationsversuch des Grafikkartentreibers über

# sh NVIDIA-Linux-x86-100.14.11-pkg1.run

endlich erfolgreich abzuschließen sein.

3 Antworten zu 'NVidia-Treiber unter Lenny'
  1. BvTaa:

    fakeroot make-kpkg –append-to-version=.meiner kernel_image
    muss
    fakeroot make-kpkg - -append-to-version=.meiner kernel_image

    sein, zumindest bei mir. :)

    Dankeschön, hab jetzt zum ersten Mal einen “eigenen” Kernel!

  2. Stefan:

    @BvTaa: Das ist das Stylesheet. Der macht aus zwei “-” einfach einen Gedankenstrich. Muss ich wohl mal anpassen. Danke für die Info.

    Gruß
    Stefan

  3. Schaedelmeister:

    Danke für die Anleitung, nun hat das erstellen eines eigenen Kernels das erste mal auf Anhieb geklappt, NVIDIA und KDE läuft :-)

Eine Antwort eintragen

*benötigt

*benötigt / nicht sichtbar

Kalender
Oktober 2007
M D M D F S S
1234567
891011121314
15161718192021
22232425262728
293031EC
Ereignisse
    • Keine Termine.
Kategorien
Archiv
Wichtiges!?

.