Hallo Thomas,
-----Ursprüngliche Nachricht----- Von: Thomas.Hertweck@web.de [mailto:Thomas.Hertweck@web.de] Gesendet: Freitag, 15. September 2006 19:53 An: suse-linux@suse.com Betreff: Re: Unresolved-Symbol.......Was will mir diese Werbensendung sagen?
Daniel Spannbauer wrote:
Mir stellt sich auch die Frage wo ich die herkriege da dies nicht mehr der originale SuSE-KErnel ist. 8.0 hatte nen 2.4.18.
IIRC wurde durch ein YOU-Update auf der SuSE 8.0 mal eine neuere Kernel-Version eingespielt. Der Original-8.0 Kernel hatte IIRC den IDE-Barrier Bug, auf dieser Liste damals schlicht als "der IDE-Bug" bekannt geworden.
Die Konfig kann bei SuSE-Kerneln ueblicherweise direkt aus dem proc-FS ausgelesen werden. Schau nach, ob es das File /proc/config.gz gibt - ggf. kann dann einfach mit
$> cd /pfad/zum/kernelsource/ $> make mrproper $> zcat /proc/config.gz > .config $> make oldconfig $> make dep
eine Konfiguration geklont werden. Bei SuSE-Kerneln funktioniert auch
$> cd /pfad/zum/kernelsource/ $> make mrproper $> make cloneconfig $> make dep
was im Prinzip genau das Gleiche macht. Falls es /proc/config.gz nicht gibt, dann schau nach, ob die Konfiguration des Kernels evtl. in /boot abgelegt wurde (als ASCII-Datei). Ist sie auch dort nicht zu finden, hast Du leider Pech gehabt. Oder Du musst die SuSE-Default-Konfig erneut aus dem SuSE-RPM extrahieren (falls diese fuer den momentan genutzen Kernel noch zutrifft).
Ich kriegt die aus der config.gz, ist also kein Problem. Also wie oben beschrieben, zcat der config.gz, dann make oldconfig und make dep. Alles auf /usr/src/linux. Das lief auch alles durch.
Was mich noch stutzig macht: Ich kann nicht mal die KErnelmodule kompilieren.
bei einem /usr/bin/make modules kriege ich:
hangcheck-timer.c hangcheck-timer.c: In function `monotonic_clock': hangcheck-timer.c:144: parse error before `unsigned' hangcheck-timer.c:145: `ret' undeclared (first use in this function) hangcheck-timer.c:145: (Each undeclared identifier is reported only once hangcheck-timer.c:145: for each function it appears in.) hangcheck-timer.c:149: warning: control reaches end of non-void function hangcheck-timer.c: In function `hangcheck_fire': hangcheck-timer.c:165: warning: `cur_tsc' might be used uninitialized in this function make[2]: *** [hangcheck-timer.o] Error 1 make[2]: Leaving directory `/usr/src/packages/BUILD/linux-2.4.21/drivers/char' make[1]: *** [_modsubdir_char] Error 2 make[1]: Leaving directory `/usr/src/packages/BUILD/linux- 2.4.21/drivers' make: *** [_mod_drivers] Error 2
Warum das?
Dafuer gibt es mehrere Gruende, die reichen von fehlerhaftem Kernel-Code ueber nicht passende Compiler-Version bis hin zu schlichtem fehlerhaften Vorgehen deinerseits. Was mich stutzig macht, ist die Angabe des Verzeichnisses /usr/src/packages/BUILD/linux-2.4.21/drivers in Deiner Ausgabe. Build-Directories gibt es offiziell eigentlich erst ab Kernel 2.6. Ich haette bei Dir eher etwas wie /usr/src/linux-2.4.21/drivers erwartet als Ausgabe. Wo ist Dein Kernel-Source installiert? Wie genau hast Du ihn konfiguriert? Wo genau setzt Du welches Kommando ab? Welche GCC Version ist auf dem System installiert? Usw. Usw. Die momentanen Infos
reichen einfach nicht aus, um wesentlich mehr zu sagen. Lass dich durch den Pfad nicht sören, /usr/src/packages/BUILD/linux-2.4.21 ist wieder nach /usr/src/linux gelinkt. Wer und warum das das gemacht worden ist weis wohl nur unser Oberguru. Aber auf /usr/src/packages/BUILD/linux-2.4.21 liegen jedenfalls die sourcen. Konfiguriert wurde der Kernel eigentlich durch "maqke menuconfig", aber jetzt gerade eben durch zcat config.gz > .config. Kommando zum bauen der Module ist "/usr/bin/make modules". Gcc ist /usr/bin/gcc gcc version 2.95.3 20010315 (SuSE) Wenn du mehr Infos brauchst....einfach Fragen. Ich versuchs zu beantworten. Gruß Daniel
Cheers, Th.
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com