home
Sonstiges
Linux
OpenBSD
Links
Kernel compilieren unter OpenBSD 2.9
Manchmal ist es nötig, das man einen eignen Kernel erstellt. Sei es
nur, um unnötige Treiber zu entfernen oder um besondere Features
anzuschalten, die im GENERIC-Kernel nicht aktiviert sind.
Der Quellcode
des Kernels befindet sich auf der ersten CD:
marty44tp# mount -t cd9660 -r /dev/cd0a /mnt
marty44tp# cd /usr
marty44tp# tar xvfz /mnt/srcsys.tar.gz
marty44tp# umount /mnt
marty44tp# cd sys/arch/i386/conf
marty44tp# cp GENERIC MEINKERNEL
Nun muß die Datei MEINKERNEL mit einen Editor bearbeitet werden. Zeile
248 habe ich folgendermaßen geändert:
vorher:
fd* at fdc? drive ?
nachher:
fd* at fdc? drive ? flags 0x20
Dies bewirkt, das man beim Thinkpad das Diskettenlaufwerk an und abklemmen
kann, wie man will. (Vorher mußte man es vor dem Start des Rechners
anschliessen, damit man es benutzen konnte.)
Ansonsten kann man die Konfigurationsdatei durchwandern und alle
Geräte, die man nicht braucht mit einer # auskommentieren.
Danach
muß das config-Programm gestartet werden. Falls Fehler in der
Konfiguration sind, wird dieses angezeigt und man muß die Datei
MEINKERNEL entsprechend bearbeiten:
marty44tp# config MEINKERNEL
Don't forget to run "make depend"
Kernel options have changed -- you must run "make clean"
Wenn dies ok ist, kann der Kernel erstellt werden:
marty44tp# cd ../compile/MEINKERNEL
marty44tp# make depend
marty44tp# make clean
marty44tp# make
Ein erfolgreiches make spuckt am Ende eine Meldung der folgenden Art aus
(die Zahlen müssen nicht übereinstimmen):
rm -f bsd
ld -z -Ttext E0100000 -e start -x -o bsd ${SYSTEM_OBJ} vers.o
text data bss dec hex
2543616 163840 266300 2973756 2d603c
Nun wird der neue Kernel noch ins Root-Verzeichnis kopiert und dann kann er
getestet werden:
marty44tp# cp bsd /bsd.test
marty44tp# reboot
Nach dem Neustart des Rechners auf dem boot-Prompt folgendes eingeben
(Achtung, das boot-Prompt bleibt nur ein paar Sekunden, wenn man das
verschläft, kann man gleich noch mal neu starten ;) ):
>> OpenBSD/i386 BOOT 1.26
boot> bsd.test
Wenn der neue Kernel ok ist, kann man ihn von bsd.test in bsd umbenennen,
damit er automatisch gestartet wird.
Hier noch ein Vergleich zwischen GENERIC und MEINKERNEL
| bsd (GENERIC) | bsd.test (MEINKERNEL) |
Größe | 3947412 bytes | 2929956 bytes |
Bootzeit* | 52,50 s | 49,16 s |
* die Bootzeit habe ich gemessen vom Druck auf die Enter-Taste beim
Boot-Prompt bis zum Erscheinen des Logins.
zurück zur OpenBSD-Übersicht
Letzte Aktualisierung dieser Seite: 2. Juli 2001