PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Red Hat 9 Kernel


RaumKraehe
2003-07-17, 10:35:06
Wie schaffe ich es die aktuelle Kernel-Konfiguration auszulesen und darauf aufbauend den Kernel neu zu konfigurieren ...

Ich weiß wie es prinzipell geht .. halt ..

make clean
make xconfig
make dep && make
make modules
make install_modules

so sollte es ja funtzen ...

wo bekomm ich den dann aber meine system.map datei her ... wo werden eigentlich die neuen Module gespeichert ..
und bei RH9 wird im Boot-Loader neben dem eigentlichem Kernel noch eine Datei geladen .. wo bekomme ich die dann für meinen neuen Kernel her ... ??

THX for Help ...

Harleckin
2003-07-17, 11:34:01
// Zum Aufräumen der Objekte, die evt. vom letztem Kompilieren übrig sind
'make clean'

// Abhängigkeiten prüfen, Aufräumen und komprimiertes Kernelimage erstellen
'make dep clean bzImage'

// Module kompilieren und installieren
'make modules && make modules_install'


Das Kernelimage liegt unter '/usr/src/linuc/arch/i386/boot/bzImage' und die Module werden immer unter '/lib/modules/<Kernelversion>' abgelegt.
Die "System.map" enthält sämtliche Namen aller Kernelfunktionen/calls. Diese Datei ist nicht esentiell zum Betrieb des Sytemes.

Üblich legt man das Kernelimage und die "System.map" unter '/boot/' ab, z.B. '/boot/vmlinuz-2.4.21' und dazu passend '/boot/System.map-2.4.21' ab.

Die zusätzliche Datei wird wahrscheinlich die "initrd" sein. Diese beinhaltet in der Regel Kernelmodule...
Sollte beispielweise "ext2" als Filesystem verwendet werden und man nutzt es als Kernelmodul, so ist es nötig das beim Booten dieses vor dem Mounten des Rootfilesystems geladen werden muss. Daher legt der Kernel während des Booten einen kleinen Ramdisk an und extrahiert in diesen die Module.
Es ist nicht nötig über diesen Umweg zu gehen wenn die jeweilige Unterstützung fest in den Kernel kompiliert wird. Andernfalls muss die Datei jedes mal neu angelegt werden.

MfG

Gast
2003-07-17, 11:35:25
Original geschrieben von RaumKraehe
Wie schaffe ich es die aktuelle Kernel-Konfiguration auszulesen und darauf aufbauend den Kernel neu zu konfigurieren ...


Gute Distros haben eine config* datei, normalerweise in /boot. Das ist die config des jeweiligen kernels. Wenn du die ins kernel source directory kopierst als "config" dann geht er davon aus. allerdings ist ein RH kernel kein vanilla kernel von kernel.org und ich weiss deshalb nicht was die alles für zusätzlichen Mist reingepackt haben...


make clean
make xconfig
make dep && make
make modules
make install_modules

so sollte es ja funtzen ...


Tut es für Kernel 2.4.x auch.


wo bekomm ich den dann aber meine system.map datei her


Die ist unwichtig, ausser du bist kernel entwickler


... wo werden eigentlich die neuen Module gespeichert ..


/lib/modules/<kernel version>


und bei RH9 wird im Boot-Loader neben dem eigentlichem Kernel noch eine Datei geladen .. wo bekomme ich die dann für meinen neuen Kernel her ... ??


Die ist unnötig ausser du hast ganz spezielle hard-/software wie deine rootpartition auf nem RAID mit proprietärem chip oder solchen Dchweinereien. Wenns dich interessiert, da gibts ein initrd howtound ne manpage: man mkinitrd, aber in 99% der Fälle wirst du das ding nicht brauchen, wenn du den Treiber für deine Festplatte (IDE oder SCSI) und dein benutztes filesystem (meist ext3) fest in den kernel reinkompilierst.