Linux 15.070 Themen, 107.540 Beiträge

Kernel kompilieren

Michael-2712 / 6 Antworten / Baumansicht Nickles

Hi Leute!


Habe gerade probiert den 2.4.18er Kernel gegen den 2.4.20er zu ersetzen, aber leider keinen Erfolg dabei gehabt. Nach dem kompilieren befindet sich keine neue Datei in /boot. Im Verzeichnis /lib/modules befindet sich zwar ein neuer Ordner, dieser ist aber mit ca. 3MB sehr klein. Der Ordner vom 2.4.18er Kernel hat 26MB. Auf Grund dessen gehe ich davon aus, dass die Installation vorzeitig abgebrochen wurde. Eine Fehlermeldung oder Ähnliches ist mir nicht aufgefallen. Was ist schief gelaufen?


Ach, da ich einmal dabei bin... Kann ein Linuxkernel belibig groß werden? Also ist es möglich, jeden Mist in den Kernel mit rein zu packen, oder gibt es eine Maximalgröße?

bei Antwort benachrichtigen
Klaus_T Michael-2712 „Kernel kompilieren“
Optionen

Du kannst den Kernel aufpumpen, wie du willst, nur wird er dadurch natuerlich langsam und ab ca. 1MB passt er nicht mehr auf eine Diskette.
Der Kernel wir auch nicht automatisch in /boot befoerdert, dass musst du schon selber tun. Der liegt nach dem kompilieren normalerweise unter /usr/arch/i386/boot/, und der Name ist bzImage. Den kopierst du so nach /boot:
cp arch/i386/boot/bzImage /boot/vmlinux
Wenn du in dem Kernelverzeichnis bist. Ausserdem noch:
cp System.map /boot
Bei mir sind die Modules noch kleiner:
[nathan:klaus]~$ du -hs /lib/modules
1.3M /lib/modules
[nathan:klaus]~$
Der ist nur normalerweise so gross, weil die Distributionen dort alles als Modul reinpacken. Dafuer backst du dir ja einen neuen, um nur das drin zu haben, was du brauchst.
Bye, Klaus

bei Antwort benachrichtigen
Michael-2712 Klaus_T „Du kannst den Kernel aufpumpen, wie du willst, nur wird er dadurch natuerlich...“
Optionen

Erstmal danke für deine Antwort!
Ich habe jetzt alles gemacht, was du geschrieben hast und außerdem den neuen Kernel in /etc/grub.conf eingetragen. Leider wird der Systemstart mit dem neuen Kernel mit der Fehlermeldung

Kernel panic! Can't mount root fs on (0;0)

oder so ähnlich abgebrochen. In /etc/grub.conf steht noch ein Eintrag mit initrd und der alten Kernel-Nummer. Eine neuere Version von initrd habe ich auf meinem System nicht gefunden, deshalb habe ich den Eintrag so stehen gelassen. Könnte es damit etwas zu tun haben?

bei Antwort benachrichtigen
Klaus_T Michael-2712 „Erstmal danke für deine Antwort! Ich habe jetzt alles gemacht, was du...“
Optionen

Hast du das Dateisystem auch fest im Kernel eingebaut, also nicht nur als Modul?
Die initrd ist eine Ramdisk, die man braucht, wenn man das Dateisystem nicht fest einbaut. Ist aber Quatsch, wenn du einen Kernel machst, kreuze 'y' an bei ext2, reiserfs oder was immer du nimmst und gut ist.
Bye, Klaus

bei Antwort benachrichtigen
Michael-2712 Nachtrag zu: „Kernel kompilieren“
Optionen

Und noch 'ne Frage: :-)
Wenn beispielsweise der Treiber für eine Soundkarte fest in den Kernel eingebunden wird, erwartet der Computer dann auch, dass die Karte vorhanden ist? In meinem Kernel habe ich nähmlich so ziemlich alles reingepackt, wobei ich mir nicht sicher war, ob ich es brauche oder nicht und jetzt hagelt es Fehlermeldungen...

bei Antwort benachrichtigen
Klaus_T Michael-2712 „Und noch ne Frage: :- Wenn beispielsweise der Treiber für eine Soundkarte fest...“
Optionen

Noe, du kannst dort reinpacken, was du willst. Wenn die Hardware nicht da ist, macht das nichts, aber der Kernel ist dann eben nicht so schlank und schnell. Lese dir mal das Kernel-HOWTO durch, damit dein Kernel nicht zu gross wird.
Bye, Klaus

bei Antwort benachrichtigen
Michael-2712 Nachtrag zu: „Kernel kompilieren“
Optionen

Ja, werde ich machen. Danke!

bei Antwort benachrichtigen