PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neuer Kernel viel größer als der Distro-default?


Ypsilon
20.01.02, 21:04
Hallo,
ich habe SuSE 7.3, bei dem default der 2.4.10-Kernel mitgeliefert wird.

Jetz habe ich mir den 2.4.17er selbst kompiliert,
mein BzImage hat nun aber eine Größe von 1,4 MB!!!

Die vmlinuz Datei vom 2.4.10 Kernel hat nur 800 KB.

Wieso ist der neue so viel größer?

Ich habe extra vieles nicht mit hineinkompiliert...

Ich dachte, der eigene Kernel müsste ja eigentlich kleiner sein
als der der Distribution, da die ja nicht wissen können was ich für Hardware hab,
und somit alles mit reinkompiliert wird... oder irre ich mich da???

Naja, ich dachte man hätte Geschwindigkeitsvorteile wenn der Kernel kleiner ist,
aber jetzt ist er ja fast doppelt so groß :(

Was hab ich falsch gemacht???

Lohnt es sich denn nun überhaupt das Ding zu benutzen, oder soll ich alles nochmal irgendwie anders machen bzw. einfach beim 2.4.10er bleiben???


Ypsilon

Ulli Ivens
20.01.02, 21:10
Hast du auch das richtige Kernelfile genommen ??

bzImage liegt unter /usr/src/linux/arch/i386/boot/ der sollte eigentlich kleiner sein !!

varg
20.01.02, 21:15
Wie hast du den kernel Compielt?

Das ist viel zuviel, hast du vielleicht alles fest in den Kernel compielt?

holgerw
21.01.02, 08:03
Hi,

wenn Du mit dem Kernelkompilieren gar nicht mehr weiter kommst, nimm doch den Kernel von Mantel, den habe ich auch im Einsatz. Das Teil findest Du unter:
ftp://ftp.suse.com/pub/people/mantel/next/RPM
Nimm auch die dort angebotenen modutils, damit es keine Probleme gibt. Diese Kernels haben zwar Teststatus, sind aber, wenn das Uploaddatum schon drei vier Tage her ist, als stable zu bezeichnen. Sonst würde Herr/Frau Mantel den Kernel nämlich aktualisieren.

SuSE kompiliert so weit wie möglich den Kernel modular, daher weiß ich nicht, ob sich die Mühe lohnt, einen Kernel selbst zu backen, es sei denn, Du willst irgendwelche Spezialitäten einbauen oder einfach gerne basteln ;-).

Zunächst würde ich die modutils installieren, und dann wie in der SuSE SDB beschrieben vorgehen:

Zum Installieren öffnen Sie ein Terminalfenster (konsole) und loggen sich ggf. mit su - als root an und sichern Sie den alten Kernel und ggf. auch die initrd.
cp /boot/vmlinuz /boot/vmlinuz.old
cp /boot/initrd /boot/initrd.old

Installieren Sie das neue Paket, indem Sie folgendes Kommando ausführen:
rpm -Uvh k_deflt-2.4.xxxxxx.rpm

Die Versionnummer kann variieren, bitte setzen Sie die aktuelle ein.

Ab SuSE Linux 7.3 wird reiserfs als Standardfilesystem verwendet, was den Einsatz einer Initialramdisk voraussetzt. Die initrd wird mit dem Befehl
mk_initrd

geschrieben. Danach müssen Sie Lilo aufrufen damit die Veränderungen auf Festplatte (oder das Bootmedium) geschrieben werden
lilo

Bitte rebooten Sie dann den Rechner damit der neue Kernel geladen werden kann.

Hoffe, Du kommst mit Deinem Kernelupdate weiter.

Beste Grüße,
Holger

Ulli Ivens
21.01.02, 15:05
Original geschrieben von holgerw


zipp

Ab SuSE Linux 7.3 wird reiserfs als Standardfilesystem verwendet, was den Einsatz einer Initialramdisk voraussetzt.

zipp

Holger

Das ist nicht richtig, wenn man reiserfs in den Kernel reincompiliert braucht man keine initrd !!

Ich würde den kernel auf jeden Fall selber bauen, weil dann lernt man wenigstens was dabei !

Und soo schwer ist das nicht. Danach mussen nur noch die Alsa Driver upgedatet werden und dann läuft das System eigentlich perfekt. An den SuSEKerneln hat mich immer gestört das da soviel eincompiliert / als modul realisiert ist, was man eh nicht braucht. Also alles rausschmeissen und dann nochmal neu machen, dann klappts auch mit dem kleineren Kernel !!

Steve
21.01.02, 18:34
ICh finde auch dass die Suse Kernel schlecht, sind aber was sollen sie machen ! Man muss sich seinen Kerlen selber mache !

Ypsilon
21.01.02, 20:48
Ich hab ihn mit make xconfig kompiliert..

Ich wollte es einfach mal testen, wie das eben so ist einen Kernel zu kompilieren ;)

Außerdem finde ich lernt man durch die Hilfetexte enorm viel dabei.

Ich werds morgen nochmal machen, und mir mehr Zeit lassen.

Wieso braucht man eigentlich 100 MB Sourcen, wenn der Kernel hinterher nur so klein ist??

Mein betagter Prozzi schuftet da fast 2 Stunden dran :rolleyes:

Ich hoffe dass es morgen besser wird...

Ulli Ivens
21.01.02, 22:30
also die sorcen bekommt man ja als tar.gz und tar.bz2 Archiv (um die 28 MB) auf www.kernel.org Das was da so groß ist sind warscheinlich die entpackten Kernelquellen. Und der Quellcode sind nun mal einige Zeilen, deshalb die Größe ;)

holgerw
21.01.02, 22:34
Hi Ulli,

wenn die Angabe mit "reiserfs als Standardfilesystem" nicht korrekt ist, dann sollten wir SuSE das mitteilen, dass etwas in ihrer SDB nicht richtig vermerkt ist. Daraus habe ich das nämlich.

Wenn man nun ext2 wählt, stimmt das tatsächlich nicht, ich vermute aber, das es so von SuSE gemeint ist, das reiserfs als Standard seit SuSE 7.3 mit dabei ist und nicht mehr unter die Developement und Experimentel Features fällt.

Aber egal - wer gerne bastelt und was tiefgreifendes über sein System lernen will, sollte sich natürlich seinen Kernel selbst basteln.

Jetzt bekomme ich richtig Lust, mir auch mal wieder sowas zu bauen - wenn ich nur die Zeit dazu hätte.

Beste Grüße,
Holger

Ulli Ivens
22.01.02, 05:29
Ich sagte nur das es nicht richtig ist das man eine initrd haben muss !! ;)

Ich mache das ohne, weil mein /boot (so wie es sein sollte) eine kleine ext2 Partition ist, und so kann man das ganze initrd "geschisse" rausschmeissen !! :D

Ypsilon
22.01.02, 16:37
hab den Kernel jetzt noch mal völlig neu konfiguriert kompiliert, und extra noch einiges mehr weg gelassen.

Jetzt bin ich bei 1,0 MB... :rolleyes: :(

Naja, ich werd trotzdem mal versuchen von ihm zu booten.

Aber ideal ist diese Größe ja ganz und gar nicht.

Welche Sachen, beanspruchen denn eigentlich besonders viel Platz im Kernel?

Ich hab viel Zeit, also würde ichs auch ruhig nochmal machen :D

Ypsilon
22.01.02, 16:55
<0>Kernel panic: Attempted to kill init!

Tz tz tz....

Naja, das Ding is ja eh zu groß.

Es wäre mir echt sehr hilfreich wenn ihr mir meine Frage bezüglich der platzhungrigen Optionen beantworten könntet ;)

Ulli Ivens
22.01.02, 17:28
Mach mal folgendes..... nimm die .config datei von deinem SuSE Originalkernel und kopiere sie in das Verzeichnis des neuen Kernels. Dann mach make menuconfig oder make xconfig uns schmeiss das raus was du nicht brauchst (Amateur Radio Support, WLAN Infrarot, Uralt Treiber...) bzw compiliere es als Modul wenn möglich.

Dann

make dep bzImage modules modules_install

Und dann so wie gehabt, dann muss der Kernel eigentlich kleiner werden, respektive seine größe behaltem da die Quellen ja auch immer wachsen ;)

Mein zbImage (2.4.17) ist 848,6 kB groß und der Original 2.4.8er Mandrake Kernel hat eine größe von 1023,2 kB ;) Das ist doch was, oder !!!

Steve
22.01.02, 18:03
Wo gerade gesagt wird wie groß die Kernel sind, meiner ist 650kb, mit allem was ich brauche, sogar SCSI-Emu !

Ypsilon
23.01.02, 16:56
Ich habs jetzt geschafft nen bootfähigen Kernel zu kompilieren.
Und zwar hab ich in der einen Konsole den frischen Kernel mit xconfig konfiguriert,
und gleichzeitig in ner anderen Konsole xconfig mit der config-Datei von SuSE geladen, sodass ich bei Optionen bei denen ich mir unsicher bin,
die SuSE Einstellungen übernehmen kann.

Das Problem ist nur, dass mit dem neuen Kernel keine Internetverbindung funktioniert.

Fehlermeldung:

/dev/isdnctrl: no such device

Zuerst hab ich ganz rigoros nur die Optionen eingebunden,
bei denen ich wusste dass ich sie brauche.
Das ergab einen problemlos bootfähigen Kernel mit einer Größe von 690 KB. :)

Nachdem mit diesem Kernel das Internet nicht funktionierte,
hab ich das ganze nochmal gemacht und diesmal die Netzwerk- und ISDN-Einstellungen alle GENAUSO übernommen, wie sie im Distributions-Kernel eingestellt waren.

Dieser Kernel ist jetzt 709 KB groß (was ja durchaus akzeptabel ist),
da ich nun IP-Filtering, iptabels Support etc. (was ich alles überhaupt nich brauche) aktiviert hab, eben weil ich alles genauso machen wollte wie im Kernel von SuSE, um sicherzustellen dass es dann auch funzt.

Aber das tut es nicht.

Ich habe alles durchgeschaut, sämtliche Optionen, die Einfluss auf das Netzwerk oder ISDN haben,
mit denen von SuSE verglichen und hab alles genau gleich eingestellt.

Klar, ich hab nicht die Treiber für die ganzen verschiedenen ISDN-Karten eingebunden,
sondern nur die für meine Fritz Card PCI.
Könnte es daran liegen, dass einfach irgendein anderer Treiber verwendet wird, obwohl es ne Fritz Card ist und ersomit keinen Treiber findet???

Ich bin ratlos...

Aber ich freu mich trotzdem dass ich es geschafft habe nen bootfähigen Kernel zu kompilieren :D

Also, ich bin dankbar für Tipps

Ypsilon

Ypsilon
25.01.02, 17:50
?