Nvidia Treiber

Da war doch was! Ältere Nvidia-Grafikkarten vertragen sich nicht mit den aktuellen Treibern. Doch während man für Windows die entsprechende Version, welche noch die Karte unterstützt, runterladen und installieren kann, geht es bei Linux ein wenig anders. Wie es bei Arch gemacht wird, will ich hier beschreiben.

Vorbereitung

So viel gibt es da nicht vorzubereiten. Man muss wissen, welche Karte man hat und dann herausfinden, welchen Treiber man braucht.

Welche Karte man hat findet man eigentlich ganz einfach heraus. Man öffnet einen Terminal und gibt folgendes ein:

sudo lspci -k | grep -A 2 -E "(VGA|3D)"

Bei meiner Frau kommt dann folgendes raus:

01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)
	Subsystem: ASUSTeK Computer Inc. EN210 SILENT
	Kernel driver in use: nvidia

Es handelt sich also um eine GT218 der GeForce 210 Serie. Damit können wir nun auf die Suche nach dem richtigen Treiber gehen. Dafür bietet sich natürlich die hauseigene Seite von Nvidia an, die man hier findet.

Das sind meine Suchparameter und wenn ich die abschicke bekomme ich folgendes:

Wir brauchen also die Version 340.107. Sollte ja kein Problem sein. Man kann sich den Treiber auch direkt von der Seite laden, ich bevorzuge aber den Weg über den Paketmanager.

Installation

Findet man jetzt das entsprechende Paket für den Treiber in pacman unter Arch? Nee, Arch-Geleckt! Das müssen wir über AUR machen. Das ist aber auch irgendwie gar nicht so schlimm und allgemein empfinde ich diese Variante in einigen Punkten sogar besser als die Overlays in Gentoo. Zumindest in mancher Hinsicht.

Also. Wir brauchen zuerst mal eine Quelle. Da ist zum Beispiel Google sehr freundlich, denn wenn man dort eingibt:

arch nvidia 340

Bekommt man dieses Ergebnis so etwa auf dem zweiten Platz.

https://aur.archlinux.org/packages/nvidia-340xx/

Dort findet sich nun der Link, mit dem man sich die Quelle mittels git besorgen kann. Ich habe auf eigentlich allen Rechnern mit Arch im Home-Verzeichnis meines Benutzers das Verzeichnis »aur«, wo ich so zeug drin baue und von dort aus installiere. Wohl gemerkt, Pakete mit aur baut man als Benutzer und installiert sie erst danach als Root! Verwirrt mich zwar ein bisschen, ist aber kein Problem. Ich gehe also in mein aur Verzeichnis und gebe dort folgendes ein:

git clone https://aur.archlinux.org/nvidia-340xx.git

Das Ergebnis ist nicht sonderlich spektakulär:

Wir haben aber nun ein neues Verzeichnis namens »nvidia-340xx« und da wechseln wir rein. Wie das geht weiss hoffentlich jeder.

Das Paket wird so erstellt:

makepkg

Macht man das zum ersten Mal kann man stark davon ausgehen, dass folgendes dabei herauskommt:

Da wäre das, was ich am Overlay in Gentoo besser finde. Da werden Abhängigkeiten dann einfach gleich mit installiert. Aber gut, kümmern wir uns drum.

Eigentlich ist nur »nvidia-340xx-utils=340.107« wirklich interessant. Die beiden anderen Punkte beziehen sich auf den Kernel. Wenn man sein System aktuell hält, bekommt man diese Meldung natürlich nicht. Da ich es hier aber in einer virtuellen Umgebung demonstriere und die noch nicht auf dem neusten Stand ist, kommt es eben zu dieser Meldung.

Schau an, kaum hat man das System auf den neusten Stand gebracht, klappt es auch mit den Abhängigkeiten!

Wie ich ja schon sagte, nur »nvidia-340xx-utils=340.107« ist wirklich von Belangen und da man das nicht einfach in den Paketquellen findet, wer hätte es gedacht, muss man es ebenfalls mittels AUR installieren.

Also raus aus dem Verzeichnis und das entsprechende Paket mittels git clonen.

git clone https://aur.archlinux.org/nvidia-340xx-utils.git

Rein in nvidia-340xx-utils und dort das ganze bauen, also:

makepkg

Da gibt es dann normalerweise keine Probleme mit irgendwelchen Abhängigkeiten und man kann warten, bis alles geladen und gebaut wurde. Dann geht es weiter.

Wenn alles fertig ist, sieht es in etwa so aus, dann können wir weitermachen. Gebaut ist jetzt alles, jetzt muss es nur noch installiert werden und das machen wir mit pacman als Root.

sudo pacman -U nvidia-340xx-utils-340.107-3-x86_64.pkg.tar.xz

Das dauert einen kleinen Moment. Danach ist das Paket aber installiert und nun können wir uns endlich um den Treiber kümmern!

Also wieder raus aus dem Verzeichnis und zurück nach nvidia-340xx. Wenn wir alles richtig gemacht haben, dann sollte das Paket jetzt einwandfrei bauen!

Bingo! Jetzt hat das alles geklappt und wir können endlich den Treiber installieren.

sudo pacman -U nvidia-340xx-dkms-340.107-3-x86_64.pkg.tar.xz

Geschafft! Damit ist der Treiber nun endlich installiert und kann verwendet werden. Normalerweise startet man einfach einmal neu und fertig!

Update

Wieso genau denn Updates? Die Treiber sind doch uralt, dafür gibt es doch keine Updates mehr, oder?

Doch, die gibt es! Allerdings handelt es sich dabei eigentlich nur um Patches, damit der Treiber mit dem aktuellen Kernel funktioniert.

Um ein Update durchzuführen, muss man jetzt nicht wieder das ganze Spielchen von Vorne beginnen. Auch braucht es nvidia-340xx-utils dafür nicht. Es geht einfach und schnell.

Man muss in das Verzeichnis »nvidia-340xx« gehen und dort mittels git die neuste Version herunterladen.

git pull

Gibt es eine neue Version wird das, was sich geändert hat, angezeigt. Danach ist es das gleiche Spiel wie oben. Erst makepkg, dann pacman -U.

Das muss man aber nicht wirklich oft durchführen. Eben dann, wenn ein neuer Kernel installiert wurde, der mit der aktuellen Version des Treibers nicht mitspielt. Das merkt man ja schnell, wenn man den Rechner bootet und anstatt dem Login-Bildschirm blinkt da nur ein Cursor. Da empfiehlt es sich dann, den Treiber zu aktualisieren und in aller Regel funktioniert es dann sofort wieder.

Anmerkung

Auch wenn ich hier jetzt auf einen spezifischen Treiber eingegangen bin, geht es doch auch mit anderen Versionen. Man muss dann eben nur die entsprechende Pakete auswählen, dann klappt das auch. Einfach mal ein bisschen mit rumspielen, so viel kann man da nicht kaputt machen!

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.