64-bit x11/nvidia-driver via Ports installieren

Fusselbär

Makefile Voyeur
Hier mal wieder was für alle, die gerne ein bisschen was zum basteln haben, damit es nicht langweilig wird. :)
Auch der 64-bit x11/nvidia-driver lässt sich nach ein bisschen D.I.Y ziemlich schmerzfrei über die Ports installieren.

Klar, dass mutige Naturen gleich den allerneusten Beta 64-bit nvidia-driver ausprobieren wollen.
Ein kurzer Blick auf den Nvidia FTP Server:
ftp://download.nvidia.com/XFree86/FreeBSD-x86_64/
zeigt, dass das zur Zeit der mit der Versionsnummer 260.19.06 ist.

Die letzten Änderungen des x11/nvidia-driver Ports machen das jetzt besonders einfach:
http://www.freebsd.org/cgi/cvsweb.cgi/ports/x11/nvidia-driver/Makefile.diff?r1=1.99&r2=1.100
und:
http://www.freebsd.org/cgi/cvsweb.cgi/ports/x11/nvidia-driver/Makefile.diff?r1=1.100&r2=1.101

Vorraussetzungen für den 64-bit nvidia-driver sind mindestens eine Nvidia Grafikkarte, die mit den neuen Treibern benutzt werden kann.
Ältere Nvidia Grafikkarten brauchen die Legacy nvida-driver. So weit ich weiß, gibt es die Legacy Treiber nicht als FreeBSD 64-bit nvidia-driver, sollte ich mich da täuschen, könnt ihr es gerne mitteilen.
Und es wird 64-bit (aka. amd64) FreeBSD ab 7.3-RELEASE oder ab 8.0-RELEASE benötigt.

So geht es:
in das Verzeichnis /usr/ports/x11/nvidia-driver/ wechseln.
Hier ist der diff für das Makefile:
http://bsdpaste.bsdgroup.de/26021
Hier ist der diff für die distinfo:
http://bsdpaste.bsdgroup.de/26022

Gepatcht wird mit dem Befehl patch,
das geht so:
Code:
patch < name_vom_patch.diff

Fetchen lassen sich die diff so:
- Für das Makefile:
Code:
fetch -o Makefile-nvidia-driver-x86-64-260.19.06.diff http://bsdpaste.bsdgroup.de/26021/download
- Für die distinfo:
Code:
fetch -o distinfo-nvidia-driver-x86_64-260.19.06.diff http://bsdpaste.bsdgroup.de/26022/download


Wie man sieht, sind nur minimale Änderungen vorzunehmen, dank den letzten Änderungen am x11/nvidia-driver Port.
Zuvor musste noch etwas an den patches im files Verzeichnis geändert werden, das fällt inzwischen weg. :cool:

Wie immer alles auf eigene Gefahr. Rutschig wenn feucht!
.
 
Hallo Fusselbär,
danke für den Hinweis auf die neue beta-Version 260.19.04.

Hier mal wieder was für alle, die gerne ein bisschen was zum basteln haben, damit es nicht langweilig wird. :)
Auch der 64-bit x11/nvidia-driver lässt sich nach ein bisschen D.I.Y ziemlich schmerzfrei über die Ports installieren.

Klar, dass mutige Naturen gleich den allerneusten Beta 64-bit nvidia-driver ausprobieren wollen.
Ein kurzer Blick auf den Nvidia FTP Server:
ftp://download.nvidia.com/XFree86/FreeBSD-x86_64/
zeigt, dass das zur Zeit der mit der Versionsnummer 260.19.06 ist.

Die letzten Änderungen des x11/nvidia-driver Ports machen das jetzt besonders einfach:
http://www.freebsd.org/cgi/cvsweb.cgi/ports/x11/nvidia-driver/Makefile.diff?r1=1.99&r2=1.100
und:
http://www.freebsd.org/cgi/cvsweb.cgi/ports/x11/nvidia-driver/Makefile.diff?r1=1.100&r2=1.101

Ab diesem Treiber wurden einige (zumindest für Entwickler) entscheidende Änderungen inhaltlicher Natur im Treiberpaket durchgeführt, siehe http://www.nvidia.de/object/freebsd-x64-260.19.04-driver-de.html:

"Die Lieferung und Installation der Header-Dateien für OpenGL, VDPAU, CUDA und OpenCL mit dem Treiber wurde eingestellt. Diese Dateien sind jetzt in den Linux Distributionspaketen erhältlich (sofern verfügbar) oder unter folgenden Adressen [...]"

VDPAU wird ja inzwischen über das package multimedia/libvdpau angeboten. Das fällt dann nicht weiter auf. Aber z.B. Entwickler von (Linux-)CUDA-Anwendungen stehen vor einer neuen Situation, für Grafikentwickler sollen auch die OpenGL-Header fehlen.

Vorraussetzungen für den 64-bit nvidia-driver sind mindestens eine Nvidia Grafikkarte, die mit den neuen Treibern benutzt werden kann.
Ältere Nvidia Grafikkarten brauchen die Legacy nvida-driver. So weit ich weiß, gibt es die Legacy Treiber nicht als FreeBSD 64-bit nvidia-driver, sollte ich mich da täuschen, könnt ihr es gerne mitteilen.
Und es wird 64-bit (aka. amd64) FreeBSD ab 7.3-RELEASE oder ab 8.0-RELEASE benötigt.

So geht es:
in das Verzeichnis /usr/ports/x11/nvidia-driver/ wechseln.
Hier ist der diff für das Makefile:
http://bsdpaste.bsdgroup.de/26021
Hier ist der diff für die distinfo:
http://bsdpaste.bsdgroup.de/26022

Gepatcht wird mit dem Befehl patch,
das geht so:
Code:
patch < name_vom_patch.diff

Fetchen lassen sich die diff so:
- Für das Makefile:
Code:
fetch -o Makefile-nvidia-driver-x86-64-260.19.06.diff http://bsdpaste.bsdgroup.de/26021/download
- Für die distinfo:
Code:
fetch -o distinfo-nvidia-driver-x86_64-260.19.06.diff http://bsdpaste.bsdgroup.de/26022/download

Wenn keine weiteren Patches notwendig sind, reicht es übrigens auch, per Editor die DISTVERSION von 195.36.15 auf 260.19.06 (und evtl. PORTVERSION) zu ändern und danach ein 'make makesum' auszuführen.
 
Man kann sich auf der nVidia-Seite übrigens zu einer E-Mail Benachrichtigung eintragen. Immer wenn eine neue Nicht-Beta-Version erscheint, bekommt man dann einen sehr praktischen Hinweis per E-Mail ins Postfach :)
 
Es gibt wieder was ganz frisches,
den nvidia-driver-260.19.26:
ftp://download.nvidia.com/XFree86/FreeBSD-x86_64/260.19.26/

Habe ihn gerade gerade installiert, FreeBSD bootet immer noch, X-Server läuft auch noch und die glxgears drehen sich munter wie immer.
Die nvidia-settings-260.19.26 lassen sich aber zur Zeit nicht bauen, da im nvidia-settings-260.19.26.tar.bz2 Tarbollen einige Header Dateien und die dazu gehörigen Bilderchen fehlen. Sieht so aus, als würde da eine Art Batteriekontrolle in die nvidia-settings Einzug halten, möglicherweise für diese Nvidia 3D Vision Pro Geschichte mit diesen 3D Funkbrillen:
http://www.nvidia.com/object/3d-vision-professional-users.html
 
Warum hinken die Ports den offiziellen Treibern eigentlich immer um ca. 4 Wochen hinterher?

Hat jemand ggf auch eine GTX460? Ich bekomme den X-Server nur per Nvidia Treibern zum laufen und der Rechner hängt sich in unregelmäßigen Abständen auf, wenn ich unter KDE die 3D-Effekte einschalte. Wenn ich die 3D-Effekte deaktiviere, killt sich nur der X-Server mit einem segmentation fault.

Hat jemand Tipps wie ich dem Fehler auf die Schliche komme? Das hauseigene NVidia log-tool liefert leider keinen Hinweis, lediglich eine fast leere logfile mit Angaben zur genutzen Architektur.
 
Zuletzt bearbeitet:
Hallo kmh,

ich habe selbst keine Nvidia GTX 460, funktioniert deine den mit Windows und Linux ansonsten einwandfrei?

Meine Nvidia GT 240 und GTX 260, sowie die älteren AGP Nvidia Grafikkarten, die ich besitze, funktionierten für mich bisher prima mit FreeBSD.
Um von der zur Zeit im Port aktuellen nvidia-driver DISTVERSION 256.53 auf eine neuere zu springen, reicht es zur Zeit aus, einfach die DISTVERSION passend zu editieren.
Der nvidia-driver-260.19.26 ist ein Beta Treiber!
Das aktuelle Release lässt sich hier nachschlagen: http://www.nvidia.com/object/unix.html da ist es zur Zeit die Version 260.19.21.

Ich mache das im Prinzip so:
in das nvidia-driver Verzeichnis vom Port wechseln:
Code:
cd /usr/ports/x11/nvidia-driver/
Original Makefile kopieren:
Code:
cp -v Makefile Makefile.orig
Makefile editieren mit ee:ugly::
Code:
ee Makefile
(ich mag den ee)
Code:
DISTVERSION  = 256.53
ändern in die gewünschte Version, 260.19.26 ist Beta!
diff erstellen, um später bequem patchen zu können:
Code:
diff -uN Makefile.orig Makefile > Makefile-nvidia-driver-x86_64-260.19.26.diff
(das ist als Beispiel mein diff für den 260.19.26 Beta)
Nun noch die distinfo aus dem Weg räumen:
Code:
mv -v distinfo distinfo.orig
Eine frische distinfo für die gewünschte nvidia-driver Version wird so erstellt:
Code:
make makesum
Mit passenden erstellten diffs kann man dann zumindest mit portupgrade,
das ja solche kleinen eigenen diff Basteleien, dort wo das Makefile liegt, nicht anpackt,
sehr bequem mit einem kleinen Script nach dem csup sich immer wieder die Ports nach eignen Wünschen umbasteln,
so mache ich das jedenfalls und für mich funktioniert das so.

Einige Einträge auf meinem System,
zum Beispiel habe ich für die Interprozesskommunikation sysctls erhöht,
in der /boot/loader.conf:
Code:
#--------------------------------------------------------------------------------
# nvidia-driver
#--------------------------------------------------------------------------------
nvidia_load="YES"

kern.ipc.shmseg=4096
kern.ipc.shmmni=4096
Urspünglich ging es da mal um einen GLXBadDrawable Wine Bug,
da es aber mit dem Eintrag bei mir gut lief, habe das seit Jahren schon aus reiner Gewohnheit so.
In /etc/sysctl.conf:
Code:
kern.maxfiles=49312
habe ich die kern.maxfiles erhöht.
 
Zuletzt bearbeitet:
Hi Fusselbär,

danke für deine Ausführungen, ich habe immer die aktuelle Version der Treiber von der Nvidia-Seite herunter geladen. Aber auch die aktuellen Treiber führen zu genanntem fehler.

Das einzige was ich noch nicht angepasst habe sind deine spezielen Kernel-Einstellungen (ausgenommen des NVidia-Moduls). Aber ich nutze auch gar kein Wine. Es reicht schon wenn nur der Desktop offen ist ....

EDIT:

Ja unter WIndows rennt der Rechner wie eine 1.
@Yamagi: Ich werde es mal testen.
 
Zuletzt bearbeitet:
Du hast den alten Treiber einfach über den neuen gebügelt? Das sollte man bei Hauptversionsupdates nicht machen, da eventuell alte Dateien vorhanden bleiben, was dann zu seltsamen Verhalten führt. Das ist gerade aktuell, da nVidia eine Reihe Dateien umbenannt oder ganz entfernt hat. Mache mal folgendes:
1. Hole dir die README der vor dem Update installierten Version von http://de.download.nvidia.com/XFree86/FreeBSD-x86_64
2. In "Chapter 4. Installed Components" findest du eine Liste aller Dateien, die das Paket installiert. Diese löscht du manuell. Dabei beachtest du, dass beim Installieren bereits vorhandene Versionen zum Teil umbenannt werden, sozusagen als Sicherung. Dateien mit passenden Namen, aber einem Anfang hinter diesen eliminierst du auch.
3. Nun installierst du die aktuelle Version erneut.

Danach geht es dann hoffentlich.
 
Ich habe es überprüft, die Installierten Dateien sind alle vom Datum der letzten Treiber-Installation. Es sind auch keine weiteren Dateien mit anderer Version zu finden. Die FreeBSD Installation ist auch noch relativ frisch.

NVIDIA-FreeBSD-x86_64-260.19.12
NVIDIA-FreeBSD-x86_64-260.19.21

Sind die beiden einzigen Versionen die installiert wurden. Wobei bei beiden Versionen der Fehler auftritt. Eben hing der Rechner wieder und die Desktop-Effekte waren abgestellt. Der X-Server killt sich wenn ich zwischen den Eingängen meines Monitors hin und her schalte (da ist noch eine Docking-Station dran)
 
Zurück
Oben