Hallo! Ich wollte mir gerade den aktuellsten NVIDIA-Treiber installieren. Dabei meckert das Programm, das es kein Kernel -Modul findet und will dieses downloaden. Der Download misslingt, der Treiber meckert weiter und bricht dann die Installation ab. Wie krieg ich den neuen Treiber denoch installiert? Gruß, Jürgen
Jürgen Fahnenschreiber wrote:
Ich wollte mir gerade den aktuellsten NVIDIA-Treiber installieren. Dabei meckert das Programm, das es kein Kernel -Modul findet und will dieses downloaden. Der Download misslingt, der Treiber meckert weiter und bricht dann die Installation ab. Wie krieg ich den neuen Treiber denoch installiert?
Das ging in den letzten Wochen ja nun schon hundertfach ueber diese Liste: Du musst die zu Deinem Kernel passenden Kernel- Quellen installieren und konfigurieren, danach wird das Com- pilieren des NVIDIA-Kernel-Interfaces auch gehen. Wie das mit dem Konfigurieren (bzw. bei Dir reicht das Klonen der exi- stierenden Konfiguration) geht, findest Du z.B. unter http://www.thomashertweck.de/kernel.html#klonen. Ferner bie- tet SuSE extra eine entsprechende Dokumentation an (aller- dings in englisch), siehe dazu ftp://ftp.suse.com/pub/suse/i386/supplementary/X/XFree86/nvidia-installer-HOWTO. An verfuegbarer Info, rechnet man das Archiv dieser Mailing- liste hinzu, mangelt es also wahrlich nicht! CU, Thomson
Am Montag, 18. August 2003 08:35 schrieb Thomas Hertweck:
tet SuSE extra eine entsprechende Dokumentation an (aller- dings in englisch), siehe dazu ftp://ftp.suse.com/pub/suse/i386/supplementary/X/XFree86/nvidia-installer-H OWTO.
Was passiert dann da genau (in Kürze)? Wofür ist version.h und autoconf.h? II. SuSE Linux Desktop (SLD) SuSE Linux 8.2 with update kernel or self-compiled kernel ------------------------------------------------------------- 1) Kernel sources must be installed and configured. Usually this means installing the 'kernel-source' RPM with YaST2 and configure it then with the following commands: cp /boot/vmlinuz.config /usr/src/linux/.config cp /boot/vmlinuz.version.h /usr/src/linux/include/linux cp /boot/vmlinuz.autoconf.h /usr/src/linux/include/linux cd /usr/src/linux make cloneconfig dep 2) Use the nvidia installer. export IGNORE_CC_MISMATCH=yes sh NVIDIA-Linux-x86-1.0-4363.run Ich verstehe nicht was man da bei einem selbst kompilierten Kernel von den SuSE-Sourcen (kernel-source-2.4.21-4.i586.rpm) ändert. Muß man für "export" bzw "sh" in /usr/src/linux sein? Al
Al Bogner wrote:
[...] Was passiert dann da genau (in Kürze)? Wofür ist version.h und autoconf.h?
II. SuSE Linux Desktop (SLD) SuSE Linux 8.2 with update kernel or self-compiled kernel -------------------------------------------------------------
1) Kernel sources must be installed and configured. Usually this means installing the 'kernel-source' RPM with YaST2 and configure it then with the following commands:
cp /boot/vmlinuz.config /usr/src/linux/.config cp /boot/vmlinuz.version.h /usr/src/linux/include/linux cp /boot/vmlinuz.autoconf.h /usr/src/linux/include/linux cd /usr/src/linux make cloneconfig dep
Um ehrlich zu sein, da halte ich die Anleitung einfach fuer ziemlich daneben... Wenn ich ein "make cloneconfig && make dep" ausfuehre, dann brauche ich vorher nicht extra die Da- teien vmlinuz.{config,version.h,autoconf.h} kopieren. Warum? Das "make cloneconfig" holt sich ja quasi genau die Konfigu- ration und schreibt die Dateien .config und autoconf.h. Ein anschliessendes "make dep" erzeugt die Datei version.h und evtl. modversions.h, falls die entsprechende Option "set version information on all module symbols" aktiviert ist. Wozu soll man dann extra noch vorher die Dateien kopieren? Unnoetig! Was hier angegeben ist in dem NVIDIA-Howto von SuSE ist nicht falsch, aber unnoetig. Was Du machen musst ist schlicht: Wechsle in das Verzeichnis mit Deinen zum Kernel passenden Quellen und fuehre dort ein "make cloneconfig && make dep" aus. Falls Du einen eigenen Kernel compiliert und instal- liert hast, kannst Du das auch sparen, denn dann hast Du bereits eine korrekte Konfiguration und insbesondere die Da- teien version.h und autoconf.h muessten korrekt sein. Wenn Du einen Vanilla-Kernel hast, musst Du etwas anders vorge- hen, steht alles in www.thomashertweck.de/kernel.html#klonen beschrieben. Die Datei version.h beinhaltet Infos zum Kernel-Release. Du kannst sie Dir einfach anschauen, sie ist ziemlich kurz: #define UTS_RELEASE "2.4.20-4GB-athlon" #define LINUX_VERSION_CODE 132116 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) Es stehen da also nur drei Define-Makros drin. Die Datei autoconf.h spiegelt Deine aktuelle Konfiguration wider. Um nicht alle Makros als Compiler-Option angeben zu muessen, wird stattdessen diese Datei ausgewertet. Sie be- ginnt z.B. wie folgt: /* * Automatically generated C config: don't edit */ #define AUTOCONF_INCLUDED #define CONFIG_X86 1 #undef CONFIG_SBUS #define CONFIG_UID16 1 /* * Code maturity level options */ #define CONFIG_EXPERIMENTAL 1 /* * Loadable module support */ #define CONFIG_MODULES 1 #define CONFIG_MODVERSIONS 1 #define CONFIG_KMOD 1 /* * Processor type and features */ #undef CONFIG_M386 #undef CONFIG_M486 [...] Du koenntest auch alle Makros per -D Anweisung beim Compiler- bzw. Preprocessor-Aufruf angeben, aber das gibt dann unendlich lange Kommandozeilen, die Du nicht wirklich willst. Beide Dateien werden ueblicherweise in vielen anderen Dateien des Kernels eingebunden, und eben auch im Quellcode von z.B. externen Kernel-Modulen.
2) Use the nvidia installer.
export IGNORE_CC_MISMATCH=yes sh NVIDIA-Linux-x86-1.0-4363.run
Ich verstehe nicht was man da bei einem selbst kompilierten Kernel von den SuSE-Sourcen (kernel-source-2.4.21-4.i586.rpm) ändert.
Wenn Du selbst compiliert hast, sind die Kernel-Quellen eigent- lich korrekt konfiguriert und Du musst hier nichts weiteres ma- chen.
Muß man für "export" bzw "sh" in /usr/src/linux sein?
Nein. Du exportierst ganz normal eine Variable an der Shell wie hier angegeben. Das kannst Du in einem beliebigen Verzeichnis machen. Danach wechselst Du dorthin, wo das NVIDIA-File liegt und fuehrst es aus. Es sollte dann das Kernel-Interface korrekt erstellt werden koennen. Ob das aber mit dem 2.4.21-SuSE-Kernel von H. Mantel ohne Probleme geht, wage ich zu bezweifeln. Aber die Problematik kennst Du ja schon. Das hat nichts mit den NVIDIA- Treibern zu tun, sondern mit Aenderungen am SuSE-Kernel 2.4.21. Mit Vanilla-Kerneln und mit SuSE-Kerneln bis einschliesslich 2.4.20 sollte es jedenfalls funktionieren. CU, Thomson
Thomas Hertweck schrieb:
Al Bogner wrote:
[Anleitung nvidia-installer-HOWTO.html von SuSE]
cp /boot/vmlinuz.config /usr/src/linux/.config cp /boot/vmlinuz.version.h /usr/src/linux/include/linux cp /boot/vmlinuz.autoconf.h /usr/src/linux/include/linux cd /usr/src/linux make cloneconfig dep
Um ehrlich zu sein, da halte ich die Anleitung einfach fuer ziemlich daneben... Wenn ich ein "make cloneconfig && make dep" ausfuehre, dann brauche ich vorher nicht extra die Da- teien vmlinuz.{config,version.h,autoconf.h} kopieren. Warum?
Das "make cloneconfig" holt sich ja quasi genau die Konfigu- ration und schreibt die Dateien .config und autoconf.h. Ein anschliessendes "make dep" erzeugt die Datei version.h und evtl. modversions.h, falls die entsprechende Option "set version information on all module symbols" aktiviert ist. Wozu soll man dann extra noch vorher die Dateien kopieren? Unnoetig!
Wow, um 11:59 Uhr habe ich die Mail geschrieben, um 12:12 Uhr gab es ein neues nvidia-installer-HOWTO.html auf dem FTP- Server, wo obige Zeilen (Kopieren der ganzen Dateien) nicht mehr zu finden sind, sondern nur noch ein "cd /usr/src/linux; make cloneconfig && make dep". Zufall? Honi soit qui mal y pense... :-)) Gruesse, Thomson
participants (3)
-
Al Bogner
-
Jürgen Fahnenschreiber
-
Thomas Hertweck