Next Previous Contents

4. Toolbox

Wie wird dieses gebaut und wie jenes; in diesem Kapitel werden einige Arbeits-Vorgänge und -Abläufe vorgestellt, die helfen sollen, die Aufgaben zu meistern.
Die Beschreibungen sind so strukturiert, daß sie nicht nur speziell für dieses HOWTO Anwendung finden, sondern auch allgemein genutzt werden können, um das jeweilige Ziel zu erreichen.

Gliederung:

4.1 Konfiguration eines geeigneten Kernels

Eine Beispiel-Konfigurations-Datei eines Linux-Kernels (linux/.config) ist im Anhang zu finden: sample kernel config file.

Aktuelle kernel Quellen

Die Kernel-Quellen aktueller (2002) Releases sind gepackt zwischen 20 und 30 MegaByte groß.

Konfiguration des Kernels

Der Linux-Kernel kann auf verschiedene Arten konfiguriert werden; entweder Kommandozeilen-basiert:

[radtke@server:~/linux ]$ make config
        

oder ncurses-menu-gesteuert:

[radtke@server:~/linux ]$ make menuconfig
        

oder unter X:

[radtke@server:~/linux ]$ make xconfig
        

Wenn eine die Konfigurations-Datei linux/.config eines älteren Kernels schon existieren sollte, dann kann - wenn erwünscht - diese benutzt werden, um darauf aufbauend eine Konfigurations-Datei für den aktuellen Kernel zu erstellen:

[radtke@server:~/linux ]$ make oldconfig
        

Dieser Befehl konfiguriert den neuen Kernel halb-automagisch: wenn im aktuellen Kernel neue Eigenschaften hinzugekommen sind, wird vom Benutzer erfragt, wie verfahren werden soll, wobei die Standard-Einstellung "N", d.h. "No", ist; die neue Option ist per default deaktiviert.

4.2 Kompilieren eines geeigneten Kernels

Weitere Informationen über die Konfiguration und Herstellung eines eigenen Kernels sind in linux/Documentation/kbuild/ und im Anhang unter Build kernel from source verfügbar.

Kompilation eines individuell angepaßten Kernels

Installation des Kernels

4.3 Arbeiten mit einer Ramdisk

Die Unterstützung für das loopback-device muss im Kernel vorhanden sein, um Dateien mit Filesystemen mounten bzw. unmounten zu können.

Anmerkung:

Vor allen Operationen, die eventuell den Verlust von Informationen nach sich ziehen können, sollte ein Backup der entsprechenden Daten durchgeführt werden.


Derartige Operationen sind z.B.: cp, mv, cat, echo, strip, rm, .... Zusätzlich können viele Befehle mit einer Sicherheits-Abfrage aufgerufen werden, z.B.: cp -vi, mv -vi, rm -i.

4.4 Erstellen einer Ramdisk

Die eigenen Ramdisks koennen entweder aus einer bereits existierenden Ramdisk durch Erweiterung oder von Grund auf neu hergestellt werden. Hier soll nur auf die erste Möglichkeit näher eingegangen werden. Zur Erstellung einer komplett neuen Ramdisk sind hier nur grundlegende Schritte erwähnt und auf weitere Dokumentation zu Ramdisks wird verwiesen.

Erschaffen einer neuen Ramdisk: (Basis-Informationen)

Erweiterung einer fertigen Ramdisk:

4.5 Erstellen eines CD-ISO-Images

[radtke@server:~ ]$ mkisofs -hide-joliet-trans-tbl -J -R \
                        -hide-rr-moved -no-emul-boot \
                        -boot-load-size 4 \
                        -b CD_ROOT/isolinux/isolinux.bin \
                        -c CD_ROOT/boot.cat -boot-info-table CD_ROOT \
                        -o mein_neues_CD_image.iso
        

4.6 Erzeugen eines Etherboot-ROM

Das etherboot-ROM ist ein angepaßtes ROM der NIC. Das nb-Image kann in /etc/lilo.config wie ein "normales" Kernel-Image eingetragen werden (den Aufruf "/sbin/lilo" nicht vergessen!). Wird am "LILO: "-Prompt das etherboot-nb-Image ausgewählt, dann lädt das NIC-ROM das vom DHCP-Server spezifizierte tagged image.

4.7 Taggen eines Network-Bootable-Images

Etherboot-ROMs können eine Kombination von Kernel und Ramdisk nur dann ausführen, wenn sie in einem speziellen ("tagged-image") Format vorliegen. Eine (ausführbare) Datei dieses "speziellen" Formats - ein Net-Boot-Image - enthält den Linux-Kernel und die Ramdisk zusätzlich aber noch einen Binär-Header, der diese Image-Datei in ein für das etherboot-ROM ausführbares Format wandelt.
Der Vorgang, mit dem dieses spezielle Ausführungsformat erzeugt wird, heißt "taggen".
Mknbi wird hier mit drei Parametern aufgerufen:

Mknbi (= "Make a Network-Bootable Image") erstellt die spezielle Image-Datei ("tagged image") aus dem Kernel und der Ramdisk:

[radtke@server:~ ]$ mknbi client_kernel client_ramdisk --ip=rom > \
                        tagged_kernel_with_ramdisk
        

4.8 Brennen eines CD-ISO-Images

Das Brennen des CD-ISO-Images mit cdrecord erfordert zwei Parameter:

[root@server:~ ]# cdrecord speed=4 dev=0,1,0 mein_neues_CD_image.iso
        

4.9 Arbeitserleichterungen

Während der Erarbeitung des in der endgültigen Form vorliegenden Projektes und HOWTO's sind einige Skripte (wie immer aus laziness ;-) entstanden, die sich als sehr hilfreich erwiesen haben:


Next Previous Contents