Alte NVidia

Tronar

aus Überzeugung altmodisch
Mit alter Hardware ist man nicht immer glücklich, und gerade bei NVidia-Grafikkarten hat man ja zum proprietären Treiber praktisch keine Alternative unter FreeBSD. In der Version, die ich brauche, ist der Treiber nicht mehr in den Ports vorhanden, aber es gibt ihn noch bei NVidia. Nur bekomme ich ihn nicht kompiliert. Er ist auf GCC ausgelegt, aber in FreeBSD 10 muß man Kernelmodule ja mit Clang kompilieren, und das beschwert sich über unerlaubte Typkonversionen, es ist da anscheinend empfindlicher als GCC. Hat einer von Euch eine 32-bit-Maschine und das nötige Fachwissen, um das evtl. hinzufrickeln?
Mit dem oben verlinkten Archiv sollte folgendes gemacht werden:
Code:
tar -xf NVIDIA-FreeBSD-x86-96.43.23.tar.gz

cd NVIDIA-FreeBSD-x86-96.43.23
setenv NVIDIA_ROOT `pwd`
setenv X11BASE /usr/local
vi src/nv-freebsd.h
# Alle Abfragen der FreeBSD-Version raus;
# Zeile raus mit #define NV_SUPPORT_LINUX_COMPAT
vi Makefile
# Aufruf aller beiden Shellskripte raus!
make
Ich will wirklich nur das Kernelmodul, nicht irgendeinen Murks mit Linuxulator und Config-Tool usw.
Kann mir jemand weiterhelfen?
 
Das Bauen ist zumindest auf einem FreeBSD 9.3 (ich hatte gerade kein anderes 32-Bit Jail da) recht einfach:
  1. Ports mit 'svn co https://svn.freebsd.org/ports/head ports' in ein leeres Verzeichnis auschecken.
  2. Mit 'svn up -r 374697' den gerade ausgescheckten Portstree auf die letzte Version mit x11/nvidia-driver-96 downgraden.
  3. Die FORBIDDEN Zeile aus dem Makefile des Ports entfernen.
  4. Mit 'make' bauen.
Als pkg-Paket liegt das Ergebnis hier: http://deponie.yamagi.org/temp/nvidia-driver-96-96.43.23_2.txz
Und die Checksum ist: SHA256 (nvidia-driver-96-96.43.23_2.txz) = 0bd8cf179b4a932c4147e2f0b56749aad70f1893c068cb5d33f2e4d6457ba7da
 
Sorry, daß ich erst nach einer Woche antworte. Um es kurz zu machen: Nix geht!
Die Langversion:
Der Tip mit dem Port-Downgrade war cool, und ich kann so tatsächlich das Kernelmodul mit Clang kompilieren und dann auch im aktuellen FreeBSD 10.3 laden. Ich habe zwar nicht kapiert, worin der Unterschied liegt zu meinem manuellen Versuch mit Clang, aber es geht, basta! Nur ist das leider nicht alles, denn der Closed-source-Teil des Treibers funktioniert dann doch nicht, genauer gesagt, das Xorg-Modul "glx". Entweder gibt er beim Hochfahren eine Fehlermeldung aus in der Art, "Ihr Xorg hat eine ABI der Version 19.0, die von diesem Treiber nicht unterstützt wird", oder, wenn ich das Laden erzwingen will (diese Option wird angeboten), kommt eine bei Shared libraries wohlbekannte Fehlermeldung "unreferenced symbol". Die Binaries sind also schlichtweg inkompatibel, weil Xorg halt alle naslang die ABI ändert.
Mit dem freien Treiber "nv" kann ich zwar die grafische Oberfläche starten, aber weil vor geraumer Zeit das Beschleunigungsmodul "xaa" aus Xorg entfernt wurde, habe ich damit nicht mehr als einen Framebuffer-Treiber. Mist! Funktionierende Grafikbeschleunigung ist absolut notwendig, um mit so einer alten Maschine noch was Sinnvolles zu machen. Und es ärgert mich, wenn ich Hardware nur wegen fehlender Software wegwerfen muß. Und der Nouveau-Treiber wird zu Lebzeiten dieses Computers sicher nicht mehr portiert werden.
Mist!
Trotzdem danke!
 
Zurück
Oben