Kernel compilieren ... PREOBLEME :(
Hi Leute! Ich probiere jetzt schon seit Tagen meinen Kernel neu zu komilieren. aber es funktioniert nie richtig. ich bekomme immer irgendwelche Fehlermeldungen. Ich habe sie diesmal abgeschrieben und hoffe dass mir wer bei meinem Problem helfen kann. Ich habe mir zuerst gedacht dass eventuell die Quelldateien einen Fehler haben. desshalb habe ich auch das ganze System neu aufgesetzt. Aber jetzt kommen die Fehler wieder also war es das auch nicht ;( Würde mich sehr freuen wenn mir wer helfen kann. Vielen Dank im vorhinein Gertrude make[1]: Leaving directory `/usr/src/linux-2.0.36.SuSE/arch/i386/lib' ld -m elf_i386 -Ttext 0x100000 -e stext arch/i386/kernel/head.o init/main.o init /version.o \ arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/f s.o ipc/ipc.o net/network.a \ fs/filesystems.a \ drivers/block/block.a drivers/char/char.a drivers/net/net.a drivers/pci/ pci.a \ /usr/src/linux/arch/i386/lib/lib.a /usr/src/linux/lib/lib.a /usr/src/lin ux/arch/i386/lib/lib.a -o vmlinux arch/i386/kernel/kernel.o(.data+0x74): undefined reference to `sys_read' arch/i386/kernel/kernel.o(.data+0x78): undefined reference to `sys_write' arch/i386/kernel/kernel.o(.data+0x298): undefined reference to `sys_llseek' arch/i386/kernel/kernel.o(.data+0x2ac): undefined reference to `sys_readv' arch/i386/kernel/kernel.o(.data+0x2b0): undefined reference to `sys_writev' kernel/kernel.o(.data+0x6c4): undefined reference to `sys_read' make: *** [vmlinux] Error 1 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Gertrude,
Ich habe sie diesmal abgeschrieben und hoffe dass mir wer bei meinem Problem helfen
Och gottl, *g* du brauchst sie doch nicht abschreiben. Leite die Fehler doch einfach in eine Datei um programmname -programmoptionen 2> datei und wenn du die normale Ausgabe umleiten willst: programmname -programmoptionen > datei
Würde mich sehr freuen wenn mir wer helfen kann.
Also, im allgemeinen hat der LinuxKernel bei der Kompilation in den Quellen wenig Fehler... Nur letztendlich bei dem Make, wo es auch alle Sourcen zusammensetzt, fehlt plötzlich Code auf den es zugreifen will - das heißt aber nicht, das es Fehler am Code sind, sondern dass man es falsch konfiguriert hat... Das ist der _allgemeine Fall_... Aus deiner ganzen, abgeschriebenen Meldung ist dieser Teil DER Fehler (ist nur einer)... --- arch/i386/kernel/kernel.o(.data+0x74): undefined reference to `sys_read' arch/i386/kernel/kernel.o(.data+0x78): undefined reference to `sys_write' arch/i386/kernel/kernel.o(.data+0x298): undefined reference to `sys_llseek' arch/i386/kernel/kernel.o(.data+0x2ac): undefined reference to `sys_readv' arch/i386/kernel/kernel.o(.data+0x2b0): undefined reference to `sys_writev' kernel/kernel.o(.data+0x6c4): undefined reference to `sys_read' make: *** [vmlinux] Error 1 --- Da es *.o Dateien sind, heißt das, dass die Fehler anscheinend beim Zusammensetzen passiert sind... Da ich nun aber auch nicht in C programmiere, und den Fehlermeldungen nicht ganz mächtig bin, kann ich dir nun auch nicht weiter helfen... Es scheint aber wieder das zu sein, was ich oben erwähnt habe: Es versucht auf die Funktion sys_read zuzugreifen, aber die gibt es nicht. Lösung: Schaue, wo du bei der Konfiguzration einen Fehler gemacht haben könntest, bzw wo du Abhängigkeiten zwischen den Treibern nicht beachtet hast. (evntl etwas als Modul, worauf es aber FEST zugreifen muss...) Hoffe, ich konnte dir ein wenig helfen cu Stephan Beyer -- Stephan Beyer mailto:PH-Linex@gmx.net http://lightning.prohosting.com/~sbeyer/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Gertrude, On Tue, 01 Feb 2000, Gertrude Garnickl wrote:
Ich probiere jetzt schon seit Tagen meinen Kernel neu zu komilieren. aber es funktioniert nie richtig. ich bekomme immer irgendwelche Fehlermeldungen. [...] kann. Ich habe mir zuerst gedacht dass eventuell die Quelldateien einen Fehler haben.
Also, dass es an den Quelldateien liegt, das kann man mehr oder weniger ausschliessen (naja, von ein paar Bugs mal abgesehen :-)
[Fehlermeldungen] ld -m [....] -o vmlinux [...] kernel/kernel.o(.data+0x6c4): undefined reference to `Sys_read' [...]
So wie das hier aussieht (man moege mich korrigieren, falls ich falsch liege), wird versucht, vmlinux zusammenzulinken. Dabei tritt der Fehler auf, dass ein paar Referenzen nicht gefunden werden, z.B. ein paar Unterroutinen. Scheint so, als haettest Du bei Deiner Kernel-Konfi- guration etwas rausgenommen, was man eigentlich nicht abwaehlen darf. Was genau das ist, weiss ich leider auch nicht, vielleicht hat ja da jemand ne Ahnung.... Ich denke, Du solltest Deine Konfig nochmal anschauen und ueberarbeiten.... Hoffentlich hilfts, vielleicht hat ja jemand noch detailliertere Infos. Gruesse aus Karlsruhe Thomson -- Thomas Hertweck Geophysikalisches Institut, Universitaet (TH) Karlsruhe Email: ubtj@rz.uni-karlsruhe.de Linux is like a wigwam - no windows, no gates, apache inside! --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Thomas Hertweck wrote on Wed, Feb 02, 2000 at 10:07 +0100:
Hallo Gertrude,
[Fehlermeldungen] ld -m [....] -o vmlinux [...] kernel/kernel.o(.data+0x6c4): undefined reference to `Sys_read' [...]
liege), wird versucht, vmlinux zusammenzulinken.
Genau. Linkerfehler. Undefined ref. bedeutet, der Compiler hat's gefressen (es war also das richtige #include da), aber es gibt kein object (.o), wo das Ding exportiert wird, also merkt der Linker, das dort ins Vakuum gesprungen werden würde, und gibt auf.
Unterroutinen. Scheint so, als haettest Du bei Deiner Kernel-Konfi- guration etwas rausgenommen, was man eigentlich nicht abwaehlen darf.
Was genau das ist, weiss ich leider auch nicht, vielleicht hat ja da jemand ne Ahnung.... Ich denke, Du solltest Deine Konfig nochmal
ich hab mal ein dx:/usr/src/linux # find . -name '*.c*' | xargs grep sys_read gemacht, es ist definiert in: ./fs/read_write.c Davon hat er entweden kein .o, oder das fehlt in der Linkerliste. (Eines der wenigen .c - Files, die "goto" verwenden...) Da steht dann: asmlinkage ssize_t sys_read(...) Weiß jemand, was "asmlinkage" macht? Jedenfalls scheint man das nicht so einfach aus den config zu bekommen, hängt anscheindend nicht von .dep/.config ab (aber ich kenn mich da nicht richtig aus!! alles AFAIK). Das kernel Makefile ist ja sowieso ein ziemlicher Hammer ;) oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (4)
-
PH-Linex@gmx.net
-
readit@lion.cc
-
steffen@dett.de
-
ubtj@rz.uni-karlsruhe.de