PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : no precompiled kernel! AHHH



KITT
14.03.04, 17:30
Hi leute!
ich komme mit strg alt f4 als root rein, dann init 3. dann wieder als root anmelden.

dann geh ich ins verzeichnis, wo die nvidia-linux...run datei liegt. dann tipp ich sh nvidia-linux.....run,
und nun gehh ich auf accept, dann auf NO (weil ich hab ja kernel durch yast upgedated. und dann kommt die meldung :"no precompiled kernel..".

WIESO???
hab so viele links hier im forum durchgecheckt...
http://www.linuxforen.de/forums/showthread.php?threadid=111187&highlight=nvidia
http://www.linuxforen.de/forums/showthread.php?threadid=125565&highlight=nvidia+treiber
http://www.linuxforen.de/forums/showthread.php?threadid=127444&highlight=nvidia+treiber
http://www.nvidia.de/docs/io/10830/README_Linux_5336_de_unix.txt
u.v.m!

bitte euch um hilfe!

lg,
KITT

Detrius
14.03.04, 18:00
Es geht nicht um den Linux-Kernel sonder den Nvidia-Kernel. ;)
Also einfach weiter machen, dann erstellt er sich das Ding selbst und alles ist fertig. Generell kannst Du bei dem Nvidia-Installer eigentlich immer stur auf OK gehen und bist damit normalerweise auf der sicheren Seite.

KITT
14.03.04, 18:12
es klappt net!
hier die logfile:

nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Sun Mar 14 19:08:52 2004

option status:
license pre-accepted : false
update : false
force update : false
expert : false
uninstall : false
driver info : false
no precompiled interface: false
no ncurses color : false
query latest driver ver : false
OpenGL header files : false
no questions : false
silent : false
XFree86 install prefix : /usr/X11R6
OpenGL install prefix : /usr
Installer install prefix: /usr
kernel source path : (not specified)
kernel install path : (not specified)
proc mount point : /proc
ui : (not specified)
tmpdir : /tmp
ftp site : ftp://download.nvidia.com

Using: nvidia-installer ncurses user interface
-> License accepted.
-> No precompiled kernel interface was found to match your kernel; would you li
ke the installer to attempt to download a kernel interface for your kernel f
rom the NVIDIA ftp site (ftp://download.nvidia.com)? (Answer: No)
-> No precompiled kernel interface was found to match your kernel; this means
that the installer will need to compile a new kernel interface.
-> Kernel source path: '/usr/src/linux'
-> Performing cc_version_check with CC="cc".
ERROR: Unable to determine the NVIDIA kernel module filename.
ERROR: Installation has failed. Please see the file
'/var/log/nvidia-installer.log' for details. You may find suggestions
on fixing installation problems in the README available on the Linux
driver download page at www.nvidia.com.

Versin
14.03.04, 20:18
du hast doch hoffentlich die kernel sourcen installiert?

ChieFi
14.03.04, 20:36
Tjo so wies aussieht, hast du die Readme-Hinweise nicht ganz berücksichtigt. Damit der Treiber kompiliert (da kein vorkompilierter nVidia-Treiber passend für genau deinen eingesetzten Linux-Kernel, sowie die Distribution vorliegt), also ein auf dein System optimal angepasster Treiber erstellt werden kann, muss das Programm, welches den Treiber erstellt, genau wissen, wie dein System funktioniert. Dazu wertet es die sogenannten Header-Files deines Kernels aus. Die Header-Files beschreiben quasi deinen Kernel (das Herz deines Betriebssystem, welches die Hardware unter sich verwaltet) auf konkrete Art und Weise so, dass das Programm zur Treiber-Kompilierung genau weiß, wie welche Funktion im Kernel vorhanden ist und wie diese anzusprechen ist. So führt dieses Programm quasi dann die Kernel-Quellen, sowie die Treiber-Quellen zusammen, um aus dem Gesamten eine optimale Schnittstelle, den Treiber, zu erstellen. Weiterhin reicht des dem Programm zur Erstellung des Kernels aber noch nicht ganz, zu wissen wie der installierte Kernel arbeitet. Es fehlt noch die Information, welche Funktionen vom gesamten Funktionsumfang des Kernels aktiviert sind und wie diese Funktionen aktiviert sind. Dazu wird die aktuelle Kernel-Source-Konfiguration ausgelesen, die normalerweise in der Datei ".config" im Verzeichnis der Kernelquellen liegt (diese wiederum liegen unter /usr/src/ und hier in Unterordnern linux-XXX, wobei XXX die Versionsnummer des Kernels darstellt). Du müsstest nun folgende Punkte verfolgen:

- Ist der passende Kernel-Quellkode zum gerade laufenden Kernel installiert ?
Um dies herauszufinden, solltest du auf einer Konsole mal "uname -r" ausführen, wobei du die gerade aktuell-laufende Kernel-Version heraus bekommst. Nun schaust du im Ordner /usr/src nach, ob hier ein Unterordner namens "linux-XXX" vorhanden ist, wobei XXX mit der Ausgabe von uname -r zu ersetzen ist.
- Ist der passende Kernel-Quellkode bereits konfiguriert ?
Wie schon erwähnt, umfasst der Kernel eine Unmenge an Funktionen, die zusätzlich auch noch auf unterschiedliche Art und Weise "aktiviert" werden können (Modul oder fest im Kernel...). Alle Distributionen erhalten einen bereits vorkonfigurierten und übersetzten Kernel - allerdings sind die zugehörigen Sourcen meist "sauber", also unkonfiguriert. Um dem Kernel-Quellkode, der noch sauber ist, die gleiche Konfiguration, wie die des bereits vom Distributor übersetzten Kernels zu verpassen (denn das ist nötig, damit das Programm zur Treiber-Erstellung weiß, wie genau der laufende Kernel vom Distributor übersetzt wurde), musst du im Ordner des zugehörigen Kernel-Quellkodes den Befehl "make oldconfig" ausführen, sowie im Anschluss ein "make dep" (zweiteres nur bis Kernel 2.4.xx).

Um nochmal einen Überblick zu verschaffen über die Kernelsache:
Der Distributor hat den "sauberen" Kernel-Quellkode vorliegen und konfiguriert Diesen. Der Distributor schaut also, welche Hardware vom Kernel unterstützt werden sollte und wie sie unterstützt werden sollte. Er schätzt ab, ob die Hardware oft verwendet wird, wann sie benötigt wird usw. Aus diesem konfigurierten Kernel-Quellkode erstellt der Distributor dann den Kernel und bindet diesen in die Distribution ein. Du musst nun quasi den umgekehrten Weg gehen, um aus dem Kernel einen konfigurierten Kernel-Quellkode zu erhalten, denn nur hieraus kann das Programm zur Treiber-Erstellung ablesen, wie genau der Treiber später arbeiten muss.

Zusammenfassung der Schritte:

1. Überprüfen, ob der Kernel-Quellkode des laufenden Kernels installiert ist (uname -r - Unterordner in /usr/src)
2. installierten Kernel-Quellkode konfigurieren (make oldconfig - make dep im Sourcen-Dir)
3. nVidia-Treiber kompilieren (sollte nun klappen)

KITT
15.03.04, 08:46
@versin
ja, kernel-sources sind downloaded

@chiefi
Danke dir erstmal für deine ausführliche antwort!

mit uname -r erhalte ich: 2.4.21-192-athlon
file:/usr/src/ hab ich leider nur: linux-2.4.21-99
make oldconfig im src ordner:
"make: *** Keine Regel, um »oldconfig« zu erstellen. Schluss."

passt das so???
hat sich ja nichts verändert. im nachhinein ist alles beim alten.

lg,
KITT

Detrius
15.03.04, 15:17
Existiert auch "/usr/src/linux"? Das sollte dann ein Symlink auf "/usr/src/linux-2.4.21-99" sein.

ChieFi
15.03.04, 16:35
Hm KITT. Das schaut dann ganz danach aus, dass du gegebenenfalls einen Kernel-Quellkode installiert hast, dieser aber nicht der Version entspricht, die dein aktuell laufender Kernel trägt. Du musst also mal schaun, ob dein Distributor da ein Paket namens "kernel-source-2.4.21-192-athlon" (oder auch "kernel-source-2.4.21-192" ) anbietet. Denn das ist das Wichtigste überhaupt. Die Version des Kernel-Quellkodes muss mit dem laufenden Kernel übereinstimmen.
Bei dir müsste also unter /usr/src ein Ordner namens "linux-2.4.21-192-athlon" bzw. "linux-2.4.21-192" vorhanden sein. Ist dies nicht der Fall (was du ja schon festgestellt hast), musst du also das Paket "kernel-source" auf den neusten Stand bringen. Ich weiß nicht, welche Distribution du einsetzt - musst also mal schaun, wie du das Paket am besten updaten kannst. Wenn dein Distributor ein Kernel-Update anbietet, bietet er zeitgleich auch immer ein Update des kernel-source-Paketes an, mit derselben Versionsnummer, wie der des Kernels. Damit du also grundsätzlich die Probleme mit Treibern minimieren kannst, solltest du auf jedenfall immer beide Pakete, also kernel und kernel-source, auf der selben Versionsnummer halten.

Noch was - Oben schrieb ich, dass der kernel-source Version "2.4.21-192-athlon" oder "2.4.21-192" sein kann. Die Erweiterung "-athlon" verweist aber nur auf eine spezielle Prozessorarchitektur, die sich im Falle des Linux-Kernelquellkodes nur durch eine andere Kernelkonfiguration ausdrückt, nicht aber durch speziellen Kernel-Quellkode. Von daher solltest du darauf achten, gegebenenfalls einen Symlink "linux-2.4.21-192-athlon" unter /usr/src auf "linux-2.4.21-192" zeigen zu lassen, sollte es kein kernel-source-Paket speziell für den Athlon geben. Das Programm zur Treiber-Erstellung verwendet nämlich "uname -r", um die aktuell-laufende Kernelversion zu erfahren. Dann schaut es unter /usr/src/ nach, ob ein Unterordner mit dem Namen "linux-2.4.21-192-athlon" vorhanden ist und hat, bei Erfolg, den Kernel-Quellkode erfolgreich gefunden. Liegt der Quellkode des Kernels nun aber unter "/usr/src/linux-2.4.21-192", so würde das Programm zur Treibererstellung den Kernel-Quellkode, obwohl er vorhanden ist, nicht finden. Meist benutzen solche Programme auch einfach den Pfad "/usr/src/linux", wo runter sie den passenden Kernel-Quellkode erwarten. Meist ist /usr/src/linux nur ein symbolischer Verweis (SymLink) auf den Ordner des aktuellsten Kernel-Quellkodes (in deinem Falle würde also dann /usr/src/linux optimalerweise ein SymLink auf /usr/src/linux-2.4.21-192 sein). Das aber nur nebenbei...

Zur Beantwortung der restlichen Fragen:
Führst du im Kernel-Quellkode-Verzeichnis ( bei dir dann /usr/src/linux-2.4.21-192-athlon ) den Befehl "make oldconfig" aus, so sollte jede Menge Text vorbei fliegen. Das Ganze dauert an die 10 Sekunden - du hast da also etwas verkehrt gemacht oder der von dir genannte Ordner enthielt keinen vollständigen Kernel-Quellkode (mal davon abgesehen, dass die Versionsnummer eh verkehrt war).
Damit ist auch klar, dass sich an der Lage zuvor nichts geändert hat. Du besitzt nach wie vor nicht den passenden Kernel-Quellkode in konfigurierter Form.

KITT
15.03.04, 16:43
hi!

ja, jetzt hat make oldconfig was getan :)
viiiel text.
hab in den symlind (was auch immer das ist) reinmüssen, und dort ausführen.
edit: meinte symlink
leider ist sonst alles beim alten geblieben.

ich verwende suse 9.0 prof.
hab von der dvd, die dabei war die kernel-sources.
werde nun mit yast ein update probieren.

lg,
KITT

KITT
15.03.04, 17:00
geil, hab da was gefunden!

http://www.securityfocus.com/bid/9691/solution/

nur welchen link?
da gibts so viele, die passen können :(

hab athlonxp

lg,
KITT

KITT
16.03.04, 08:05
Hi!

geschafft!!!!

u.z.
ich habe einfach yast gestartet, und kernel update gemacht, und nvidia treiber runtergeladen.
und ohne irgendwas zu installieren erscheint schon das NVIDIA logo beim hochfahren :)

muss ich die 3d beschleunigung auch aktivieren?
irgendwer hat gemeint, wenn man auf aktivieren drückt, tut sich nix; aber im hintergrund ists dann doch aktiviert!?

lg,
KITT

City][Sepp
16.03.04, 08:13
Führ in einer Konsole mal "glxgears" aus und vergleiche die Werte mit denen auf holarse.net. Damit solltest Du dann schon mitbekommen, ob 3D-Beschleunigung aktiviert ist oder nicht... Zumindest der Nvidia Splash Screen spricht dafür...

ml
16.03.04, 08:21
Ja, wenn das Logo kommt hast du 3D-Beschleunigung.

Jetzt, nachdem du 3D-Beschleunigung laufen hast nix mehr mit YaST machen, der kommt mit dem neuen nvidia-Treiber nicht zurecht und meint du hättest 3D-Beschleunigung nicht aktiviert.

Also nix mehr an der X-Konfiguration mit YaST machen!

KITT
16.03.04, 09:43
hi!!!

danke!!!
und danke euch für die geduld ;)

lg,
KITT