Al Bogner schrieb:
Ich versuche einen eigenen Kernel von kernel-source-2.4.21-4.i586.rpm für ein Multisystem zu bauen und habe dazu das rpm installiert, das Sourcen-Verzeichnis wurde gesichert und dann auf einen (fast) identen Rechner übertragen. Weiters wurden dieses Verzeichnis in /usr/src/linux-2.4.21-4-own umbenannt, sodass das Original-Verzeichnis linux-2.4.20.SuSE weiter vorhanden ist.
Verstehe ich nicht... Die Original-Quellen, die mit der SuSE 8.2 kommen, werden in das Verzeichnis /usr/src/linux-2.4.20.SuSE installiert. Die Quellen aus kernel-source-2.4.21-4.i586.rpm werden in ein Verzeichnis /usr/src/linux-2.4.21-4 installiert. Wo soll da was kollidieren? Wel- chen Sinn sollte es also haben, das Verzeichnis von linux-2.4.21-4 in linux-2.4.21-4-own umzubennenen. OK, ist nicht weiter tragisch, Du kannst es auch linux-pillepalle nennen, es spielt schlicht keine Rolle, ich verstehe es nur nicht.
Warum ich später von linux-2.4.21-4-own auf linux-2.4.21-4-mantel-own nicht mit make menuconfig umbenennen konnte, ist mir nicht klar, aber meinetwegen soll der Kernel weiter "own" heißen.
Seit wann kann man mit Hilfe von "make menuconfig" Verzeichnisse um- benennen? Du redest in Raetseln. Mit SuSE-Kernel 2.4.21 hat sich die Benennung des Kernel-Release geaendert, das spiegelt sich auch in der Variablen EXTRAVERSION im Makefile wider. Du kannst bei der Konfigu- ration hier die Punkte CONFIG_CFGNAME und CONFIG_RELEASE setzen - aus denen wird dann letztendlich der Name aufgebaut. Wenn Du also z.B. in .config CONFIG_RELEASE=4 und CONFIG_CFGNAME="own" setzt, dann wird Dein Kernel als "uname -r" ein 2.4.21-4-own liefern. Wenn es ein 2.4.21-4-mantel-own sein soll, so muss CONFIG_RELEASE=4 und CONFIG_CFGNAME="mantel-own" sein. Aber das wirkt sich nur auf das Kernel-Release aus, nicht auf irgendwelche Verzeichnisnamen, in denen Du die Kernel-Quellen lagerst.
Bei "mantel-own" lief die Kompilierung einige Zeit und dann wurde im Pfad linux-2.4.21-4-own und nicht in linux-2.4.21-4-mantel-own gesucht.
Wer wurde wie wo gesucht... Immer mehr Raetsel! Vielleicht solltest Du beim naechsten Mal einfach Fehlermeldungen oder genaue Meldungen im xterm posten. So ist das jedenfalls nicht verstaendlich.
Ich wollte im Makefile EXTRAVERSION = -$(CONFIG_RELEASE)-$(CONFIG_CFGNAME) KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) nichts manuell eintragen, da ich nicht weiß, ob das irgendwelchen weiteren Auswirkungen hat.
Du kannst einfach eine EXTRAVERSION setzen von Hand. Oder aber Du setzt wie oben beschrieben die Variablen CONFIG_CFGNAME und CONFIG_RELEASE per "make menuconfig" oder direkt in .config.
Irgendwann kam es dann im "netfilter_ipv4-Bereich" zu u.a. Fehlermeldungen. Diese Option kann ich aber nicht im Kernel streichen und so scheint es, dass ich hier anstehe.
Ausgeführt wurde: time make dep clean bzImage modules modules_install 2>&1 | tee make.out
Wenn Du das so ausgefuehrt hast, bedeutet es, Du hast den Kernel und vermutlich auch die gesamte Konfiguration als Root gemacht. Das solltest Du nicht tun. Nur zum _Installieren_ braucht man Root-Rechte, weder zum Konfigurieren noch zum Compilieren.
/lib/modules # ls . .. 2.4.20-4GB 2.4.20-4GB-original
"Original" ist einfach eine Kopie für Notfälle. Es gab also noch kein Verzeichnis 2.4.21-4-own
Ist logisch, wenn "make modules" nicht durchlaeuft, wurde auch "make modules_install" nicht ausgefuehrt und somit keine Module unter /lib/modules installiert.
gcc -D__KERNEL__ -I/usr/src/linux-2.4.21-4-own/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=pentium3 -DMODULE -nostdinc -iwithprefix include -DKBUILD_BASENAME=ipt_MIRROR -c -o ipt_MIRROR.o ipt_MIRROR.c gcc -D__KERNEL__ -I/usr/src/linux-2.4.21-4-own/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=pentium3 -DMODULE -nostdinc -iwithprefix include -DKBUILD_BASENAME=ipt_TOS -c -o ipt_TOS.o ipt_TOS.c ipt_TOS.c:5:42: linux/netfilter_ipv4/ipt_tos.h: No such file or directory [...]
Die Fehlermeldung kann ich nicht nachvollziehen. Das Include-Verzeichnis ist korrekt als -I/usr/src/linux-2.4.21-4-own/include angegeben. Im be- sagten RPM kernel-source-2.4.21-4.i586.rpm gibt es auch eine ipt_tos.h, wie Dir "rpm -qpl kernel-source-2.4.21-4.i586.rpm | grep ipt_tos.h" leicht zeigen wird: $> rpm -qpl kernel-source-2.4.21-4.i586.rpm | grep ipt_tos.h /usr/src/linux-2.4.21-4/include/linux/netfilter_ipv4/ipt_tos.h $> Hast Du da von Hand etwas geloescht oder so? Schau halt mal von Hand nach, ob diese Datei existiert, also in Deinem Falle nach dem Umbe- nennen /usr/src/linux-2.4.21-4-own/include/linux/netfilter_ipv4/ipt_tos.h. Deine Mails sind inhaltlich etwas verwirrend bzw. unpraezise... CU, Th.