original in nl Philip de Groot
nl to en Nino R. Pereira
en to de Harald Radke
Philip arbeitet zur Zeit an seiner Doktorarbeit an der Universit�t Nimwegen und schlie�t sie voraussichtlich dieses Jahr ab. Thema seiner Arbeit sind sogenannte Chemometrics. Momentan arbeitet er an der Universit�tsklinik Amsterdam, im Bereich Bio-Informatik. Daneben betreut er seine eigene Linux Einsteigerseiten (in Niederl�ndisch), eines der vielen Projekte von der und f�r die Linux Gemeinde. Philip ist �berzeugter Anwender des Betriebssystems im Zeichen des kleinen Pinguins und teilt regelm��ig seine Erfahrungen mit anderen.
Ziel dieses Artikels ist es, dem normalen Linux Anwender die Konfiguration, �bersetzung und Installation eines eigenen Linux Kernels zu vermitteln.
Der Artikel ist wie folgt aufgebaut: Zu Beginn wird darauf eingegangen, wo die Kernel-Quellen im Internet zu finden sind und wie sie installiert werden. Danach wird die Konfiguration mittels der graphischen Benutzeroberfl�che erl�utert, visualisiert durch Bildschirmfotos. Nach der Konfiguration muss der Kernel �bersetzt werden, doch auch ein kompilierter Kernel allein ist noch nicht verwendbar. Soll er beim Hochfahren gestartet werden, muss er noch mittels des lilo Bootmanagers installiert werden. Dazu wiederum ist es notwendig, die Datei /etc/lilo.conf anzupassen. Der Kernel kann auch auf eine Partition kopiert werden, auf welcher Linux von DOS/Windows aus mittels loadlin gestartet wird. Zudem gibt es eine Vielzahl spezifischer Aspekte, die ber�cksichtigt werden m�ssen, etwa PCMCIA Unterst�tzung, die gerade bei Laptops notwendig ist. PCMCIA Karten sind kleine, wie zu gro� geratene Kreditkarten wirkende Peripherieger�te. Eine h�ufige verwandte Klasse von ihnen sind Netzwerkkarten oder Modems. Diese Hardware wird vom Kernel selbst erst in der 2.4.X Serie unterst�tzt. Bei �lteren Kernelversionen muss man zus�tzliche Hilfsprogramme installieren und �bersetzen. Ein weiteres Problem gibt es etwa unter SuSE Linux, da diese die ALSA Soundtreiber verwendet. Diese sind nicht Teil des regul�ren Kernels und m�ssen separat kompiliert und installiert werden, da die Originaltreiber im Allgemeinen nicht funktionieren. Um die ganze Sache noch kniffliger zu machen, kann es beim �bergang von einer Kernelserie zur anderen, etwa von 2.2.x zu 2.4.x zu Problemen mit bestimmten Kernelwerkzeugen, den sogenannten modutils kommen. Diese sind f�r den Umgang mit den Kernelmodulen zust�ndig. Es kann vorkommen, dass ein Kernel einer neueren Serie nichts mit der alten Version der modutils anfangen kann, dann muss eine neue Version dieser installiert werden. Diese Probleme treten zwar seltener auf, aber sie treten halt auf, und sie m�ssen einfach genannt werden.
Wer sich allerdings vertrauensvoll an diesen Artikel h�lt, der befindet sich prinzipiell auf der sicheren Seite. Der neue Kernel wird in lilo aufgenommen oder auf die entsprechende loadlin Partition kopiert. Dadurch kann im Fall der F�lle noch der jeweilige urspr�ngliche Kernel hochgefahren werden und man kann dann daran gehen, die St�rungen, die durch den Einsatz der neuen Version auftraten, zu beheben. Selbst bei Problemen mit den modutils unter dem neuen Kernel ist es immer noch m�glich, den alten Kernel zu starten und dann etwa die neuen modutils separat zu kompilieren und zu installieren. Da alle Versionen dieser Werkzeuge abw�rts kompatibel zu �lteren Kernelversionen sind, sollten diese dann auch problemlos mit dem alten Kernel laufen.
Die (alten) Quelltexte sind auf dem heimischen Rechner nun unter /usr/src/linux zu finden. Es ist ratsam, diese Quellen zu sichern, etwa durch Umbenennen:
cd /usr/src mv linux linux-2.2.19 (falls die Version der eigenen Kernelquellen 2.2.19 ist).Erst nachdem die Original Kernelquellen umbenannt worden sind, sollte der neueste Kernelcode entpackt werden. Man stellt dabei fest, dass etwa die Datei linux-2.4.6.tar.bz2 ihren Inhalt in das Verzeichnis linux standardm��ig auspackt. Sollte dieses Verzeichnis bereits existieren, wird sein Inhalt �berschrieben, was zu Problemen f�hren kann, da dann der urspr�ngliche Kernel nicht mehr �bersetzt werden kann, die Konfigurationsinformationen des Originalkernels verloren sind, usw. Hier wird nach dem Entpacken des Kernelcodes das Verzeichnis linux in linux-2.4.6 umbenannt und dann ein symbolischer Link linux auf dieses Verzeichnis angelegt. Vorteil an dieser Vorgehensweise ist, dass man auf einen Blick sehen kann, welche Version des Kernels die gerade verwendete ist. Ausserdem ist die Installation neuerer Kernelversionen einfacher. Folgende Befehle m�ssen (nicht vergessen, als root) ausgef�hrt werden:
cd /usr/src cp ~/linux-2.4.6.tar.bz2 ( sollte dies das gew�hlte ) (TAR-Archiv sein und dieses) ( ins Heimatverzeichnis '~' ) (heruntergeladen worden sein) bzip2 -d linux-2.4.6.tar.bz2 (das kann was dauern ) tar -xvf linux-2.4.6.tar mv linux linux-2.4.6 ln -s /usr/src/linux-2.4.6 /usr/src/linux
cd /usr/src/linux make xconfig (siehe Abbildung 1)
Abbildung 1: | Die grafische Oberfl�che zur Konfiguration des eigenen Kernels, nach Eingabe von make xconfig |
Man findet sich im Hauptmen� der Kernelkonfiguration wieder. Die Einstellungen werden mittels Auswahl verschiedener Optionen mit der Maus gew�hlt. Durch Anklicken von Save and Exit werden die Einstellungen auf Platte gesichert, danach kann dann endlich der Kernel kompiliert und installiert werden (siehe Abbildung 40). Doch noch ist es nicht soweit.
Es liegt in der Natur der Sache, dass die Beispiele hier nicht alle m�glichen Ger�te und Hardwarekonstellationen abdecken k�nnen. Jedoch sollten sie aufzeigen, wie bestimmte Komponenten behandelt werden m�ssen, und wie man nach etwaiger Unterst�tzung der eigenen Hardware im Kernel sucht.
Abbildung 2: | Wahl der Einstellung 'code maturity level options'. |
Abbildung 3: Unterst�tzung von Kernelmodulen.
(im folgenden werden die Abbildungen nicht mehr direkt
angezeigt, sondern k�nnen bei Bedarf �ber die
jeweiligen Links angezeigt werden)
Module sind Teile des Kernelcodes, zum Beispiel
Ger�tetreiber, die unabh�ngig vom Kernel selber,
idealerweise aber gleichzeitig mit ihm, �bersetzt werden.
Dadurch sind sie nicht in diesen fest integriert, sondern
k�nnen vielmehr bei Bedarf nachgeladen werden. Allgemein
gilt, dass, wo m�glich, der Kernel modular kompiliert
werden sollte, da man so einen kompakten und stabilen Kernel
bekommt. Achtung: Niemals das Dateisystem als Modul
kompilieren, wie in Abbildung 32 zu sehen ist. Durch diesen
Fehler kann es sp�ter passieren, dass der Kernel nicht in
der Lage ist, das Root-Dateisystem zu lesen, was nat�rlich
grundlegende Voraussetzung f�r das erfolgreiche Hochfahren
des Linuxsystemes ist. Wie der Leser sehen wird, setze ich
weniger auf Module, sondern auf Integration des Codes direkt in
den Kernel, da mein Kernel so direkt und ohne Module laden zu
m�ssen mit der Hardware kommunizieren kann. Die
Entscheidung ist aber reine Geschmackssache.
Abbildung 4: Auswahl des Prozessor-Types und
Einstellungen.
Hier kann der Benutzer die Art seiner CPU festlegen und
verschiedene Optionen einstellen. Im Allgemeinen sind die
/dev/cpu Optionen eher etwas f�r Experten, die
meisten Benutzer sollten sie nicht anw�hlen. Wer mehr als
1 Gigabyte an Hauptspeicher (RAM, nicht Festplatte) sein eigen
nennt, muss die Einstellung High Memory Support
selektieren. Da die meisten Computer aber zwischen 64 und 512
MB Hauptspeicher (und 8 bis 60 GB Festplattenkapazit�t)
haben, ist dies in den meisten F�llen nicht notwendig.
Wessen Linux auf einem 386er oder 486SX System l�uft, der
muss die Option Math Emulation aktivieren, da diese
�lteren Systeme ohne mathematischen Coprozessor
daherkommen, welcher aber von Linux, besser gesagt dessen
Emulation, gebraucht wird. So ziemlich alle heutigen
Prozessoren haben aber einen eingebauten Coprozessor, die
meisten Anwender k�nnen deswegen wohl diese Option
ignorieren. Der Men�punkt MTRR erlaubt eine
schnellere Kommunikation �ber den PCI oder AGP Bus. Da so
ziemlich alle moderneren Systeme zumindest eine PCI, wenn nicht
eine AGP Grafikkarte haben, sollte diese Option ausgew�hlt
werden. Eigentlich kann man diese Option immer ausw�hlen,
auch wenn man keinen dieser Bustypen in seinem Rechner hat, da
dadurch kein Schaden angerichtet werden kann. Symmetric
multi-processing support (SMB) ist nur f�r die
Anwender interessant, die eine Hauptplatine mit mehr als einem
Prozessor besitzen, etwa mit 2 Pentium II CPUs. SMP
sorgt f�r eine optimale Auslastung beider Prozessoren
durch den Kernel. Die letzte Option APICM betrifft
zumeist ebenfalls Mehrprozessorsysteme, kann also im
Allgemeinfall ebenfalls aussen vor gelassen werden.
Abbildung
5: Allgemeine Optionen des Kernels.
Der Anwender kann hier allgemeine Einstellungen des Kernels
bestimmen. Die Netzwerkunterst�tzung sollte immer
aktiviert werden, da sie in jedem Falle, beispielsweise
f�r den Zugang zum Internet, gebraucht wird. Linux ist
stark auf das Internet ausgerichtet und kann nicht ordentlich
ohne Netzwerkunterst�tzung arbeiten. Desweiteren wird die
Netzwerkunterst�tzung auch unter diversen anderen Aspekten
ben�tigt, die auf den ersten Blick eigentlich nicht viel
mit Netzwerken zu tun haben. Es kann sogar passieren, dass die
Kompilation des Kernels ohne Netzwerkunterst�tzung nicht
erfolgreich ist. Kurz, der Benutzer sollte diese Option
unbedingt selektieren. Jedes neuere PC-System verf�gt
�ber den PCI Bus, diese Punkte sollten deswegen ebenfalls
ausgew�hlt werden. Die Unterst�tzung von
PCMCIA/CardBus ist nicht anw�hlbar, da vorher ja
die Verwendung von experimentellem Code ausgeschlossen wurde
(siehe Abbildung 2). Laptop Besitzer werden diese
Option allerdings selektieren m�ssen, um Netzwerk- oder
Modemkarten betreiben zu k�nnen (siehe PCMCIA support
(laptops)). System V IPC erlaubt es Programmen,
untereinander zu kommunizieren und sich zu synchronisieren,
Sysctl support, dass Programme bestimmte
Kerneleinstellungen �ndern k�nnen, ohne dass dieser
neu �bersetzt werden oder das System neu gestartet werden
muss. Diese Punkte sollten normalerweise aktiviert sein.
Aktuelle Linux Distributionen haben als kernel core
(/proc/kcore/) format ELF, welches das Standarddateiformat
diverser Systembibliotheken ist, zum Beispiel f�r
Codefragmente f�r das System und verwendet von Programmen.
ELF ist der Nachfolger des veralteten a.out
Formates und �hnlich den Windows .dll Dateien.
Alle neueren Linuxprogramme verwenden ELF Bibliotheken, leider
aber ben�tigen �ltere Programme die
Unterst�tzung des a.out Formates. Als Beispiel
sei hier Word Perfect 8 f�r das X-Window System genannt.
Dieses Linux Programm ist nur im a.out Format
verf�gbar, weswegen xwp schlicht und ergreifend
ohne a.out Unterst�tzung den Dienst versagt.
Dieses sollte man also als Modul �bersetzen, plant man
Programme wie xwp zu verwenden. Ich pers�nlich
hab dies noch f�r MISC gemacht. Prinzipiell ist
dies nicht notwendig, allerdings ist es ganz praktisch, dieses
Modul zur Verf�gung zu haben, verwendet man des
�fteren Java, Python oder den
DOS Emulator DOSEMU. Hier wurden zus�tzlich noch
Power Management Support und Advanced Power
Management BIOS Support selektiert (nicht gezeigt in
Abbildung 5). Beide Einstellungen werden f�r moderne ATX
Boards gebraucht, soll der Kernel in der Lage sein, den Rechner
beim Herunterfahren automatisch auch auszuschalten. Die anderen
Stromsparfunktionen wurden nicht selektiert, da sie im
Allgemeinen nicht unter X-Windows (welches bei mir
standardm��ig verwendet wird) funktionieren. KDE und
Gnome kommen mit eigenen Funktionen zum Power Management daher,
die dann verwendet werden k�nnen.
Abbildung 6: Unterst�tzung von verschiedenen
Speichertechnologien.
Diese Option muss zum Beispiel von Besitzern von Flashcards
verwendet werden, wollen sie sie unter Linux verwenden.
Flashcards kommen h�ufig im Bereich der Digitalfotographie
zum Einsatz. Wird diese Einstellung aktiviert, so k�nnen
diese Karten unter Linux, mit der entsprechenden Hardware
ausgelesen und etwa Fotos als JPEG Dateien auf
Festplatte kopiert werden. Wer sich nicht sicher ist, ob er sie
braucht, sollte die Option nicht anw�hlen, dies kann bei
Bedarf im Nachhinein noch nachgeholt werden.
Abbildung
7: Einstellungen des Parallelportes.
Vor der grossfl�chigen Verbreitung von USB war der
Parallelport die Standardschnittstelle f�r Drucker und
Scanner. Wer einen Drucker mit Parallelport-Anschluss sein
eigen nennt, der muss diesen unter Linux aktivieren. Es sei
hier angemerkt, dass die Konfiguration von Parallelport und
Drucken zwei verschiedene Paar Schuhe sind, letzteres wird
sp�ter erkl�rt und ist in Abbildung 28 zu sehen.
Abbildung 8: Plug & Play.
Beinahe jeder besitzt heute ein "Plug & Play" System,
weswegen die meisten diesen Punkt aktivieren werden. Der Linux
Kernel ist dann in der Lage, "Plug & Play" Karten zu
konfigurieren und dem System zug�nglich zu machen.
Manchmal kann es noch notwendig werden, die Option "Plug
& Play" im BIOS zu aktivieren, da andernfalls Linux
(aber auch Windows!) die Karten nicht konfigurieren kann.
ISA Plug & Play& Support dient der
Unterst�tzung von PNP Karten, die noch in einem ISA Bus
Steckplatz stecken. Als Beispiel sei hier der Soundblaster
AWE64 angef�hrt. F�r den ISA Bus wurde nie ein PNP
Standard spezifiziert, wodurch die Konfigurierung solcher
Karten recht schwierig wird. Vor der Kernelserie 2.4.x mussten
Linux Anwender das Programm isapnp f�r die
Konfiguration w�hrend des Hochfahrens verwenden (zu finden
im Paket isapnptools, mit rpm -qil
isapnptools werden alle dazugeh�rigen Dateien
angezeigt). isapnp liest die Datei
/etc/isapnp.conf aus, in welcher alle Portadressen und
Interrupts der verschiedenen Karten stehen. Waren diese
Informationen nicht korrekt oder wurde isapnp gar
nicht erst verwendet, waren die entsprechenden PNP Karten nicht
f�r das System verf�gbar, Modem-, Netzwerk- oder
Soundkarte funktionierten nicht. Die Option ISA Plug &
Play& Support ersetzt diese Prozedur. Statt auf die
Konfigurationsdatei /etc/isapnp.conf zuzugreifen,
werden die Einstellungen automatisch ermittelt. Wer SuSE 7.1
verwendet, muss die Datei /etc/isapnp.conf umbenennen,
etwa in /etc/isapnp.conf.old nach der �bersetzung
von Kernel 2.4.x. Sowohl der Kernel, als auch isapnp
beanspruchen dieselben Ressourcen, was katastrophale Folgen
nach sich zieht. Das Problem liegt darin, dass SuSE 7.1 (und
auch �ltere Versionen) automatisch isapnp
w�hrend des Bootvorganges aufrufen, selbst wenn der Kernel
seine eigenen Routinen f�r die Handhabung von PNP Karten
mitbringt. Dies betrifft aber nur �ltere Linuxsysteme,
neuere verwenden standardm��ig nicht mehr
isapnp.
Abbildung
9: Konfiguration von blockorientierten
Ger�ten.
So ziemlich jeder wird ein Diskettenlaufwerk besitzen und
dieses verwenden wollen, also wird der erste Unterpunkt
selektiert, entweder als Teil des Kernels oder auch als Modul.
In diesem Fall wird beim ersten Zugriff auf das Laufwerk
automatisch das Modul eingebunden, sofern die Datei
/etc/conf.modules bzw. /etc/modules.conf
ordnungsgem�� aufgesetzt ist, was bei den meisten
Distributionen der Fall ist. Der Anwender sollte keine Probleme
damit haben, sollten die richtigen Einstellungen, die in
Abbildung 3 zu sehen sind, gew�hlt worden sein.
Nat�rlich muss f�r die Verwendung von Disketten noch
die Unterst�tzung des Kernels f�r das entsprechende
Dateisystem aktiviert werden, was in Abbildung 32 visualisiert
wird.
Die anderen Optionen f�r Blockger�te betreffen IDE
Laufwerke, die �ber den Parallelport angesteuert werden
sollen. Dies wird seltener gebraucht und ist in der Regel nicht
aktiviert. Eine m�gliche Ausnahme stellt der Punkt
loopback device support dar. Wer unter Linux CDs brennt,
erstellt normalerweise vorher ein Image der CD. Die loopback
device wird ben�tigt, um sich beispielsweise den
Inhalt des Images ansehen zu k�nnen.
Abbildung
10: Unterst�tzung von multiple devices.
Im Allgemeinen wird der normale Linux Anwender weder
Unterst�tzung von RAID oder LVM Systemen ben�tigen.
RAID Systeme verwenden zwei oder mehr Festplatten, um
Daten parallel zu speichern. Sollte eines der Ger�te einen
Defekt erleiden, die anderen aber einwandfrei funktionieren, so
kann das System davon unbeeintr�chtigt weiter arbeiten.
LVM hingegen erm�glicht es, durch Hinzuf�gen
eines weiteren Ger�tes eine existierende Partition zu
vergr��ern. Dies hat den Vorteil, dass die
bestehende Partitionierung weder ge�ndert, noch
umst�ndliches Kopieren von Daten notwendig wird. Pfadnamen
bleiben dabei erhalten. Auch wenn diese Option wirklich
n�tzlich ist, wird sie von den meisten Benutzern nicht
ben�tigt.
Abbildung
11: Netzwerkeinstellungen.
Die Option Packet Socket ist notwendig f�r die
Kommunikation von netzwerkorientierten Komponenten, ohne dass
ein Netzwerkprotokoll im Kernel realisiert ist. Kurz gesagt:
Diese Option sollte immer selektiert werden. Die meisten
anderen hingegen bleiben deaktiviert, es sei denn, man
ben�tigt einige von ihnen explizit. Beispielsweise kann
Network packet filtering (replaces ipchains)
gew�hlt werden, verwendet man etwa die SuSE
Standardfirewall. Eine Firewall sichert den Rechner gegen
Angriffe von ausserhalb, etwa �ber das Internet,
zumindest, wenn sie entsprechend aufgesetzt und konfiguriert
worden ist. Solch ein Sicherheitsmechanismus auf Kernelebene
hat also offensichtliche Vorteile. Weitere M�glichkeiten
des network packet filtering werden in Abbildung 12
gezeigt. F�r Netzwerkverbindungen werden Unix domain
sockets ben�tigt. Aber auch andere Anwendungen, etwa
X-Windows erwartet und verwendet die Unterst�tzung
von Unix Sockets. Deswegen sollte dieser Punkt immer
ausgew�hlt werden. TCP/IP networking beinhaltet
alle Protokolle, die f�r die Kommunikation im Internet und
in eigenen internen Netzwerken ben�tigt werden. Es macht
also normalerweise Sinn, die TCP/IP Unterst�tzung zu
aktivieren. Besteht Unsicherheit, welche jeweilige Option
notwendig ist, kann man die Hilfstexte zu Rate ziehen. Sollte
danach noch Zweifel bestehen, so kann man durchaus erstmal die
Punkte ausw�hlen und sie sp�ter, im Verlaufe von Tests,
immer noch, falls sie nicht notwendig sind, wieder entfernen.
Hierbei ist der Einsatz von Modulen recht hilfreich.
Abbildung 12: IP Netzwerkfilter (Firewall).
Die Firewall unter SuSE Linux ben�tigt die
Abw�rtskompatibilit�t zu ipchains, weswegen
dieser Punkt selektiert werden muss. Sollte eine andere Firewall
oder Linux Distribution verwendet werden, so sollte man die
jeweilige Dokumentation konsultieren.
Abbildung
13: Konfiguration der Unterst�tzung f�r
Netzwerk-Telefonie.
Wer eine entsprechende Karte f�r das Telefonieren
�ber das Internet besitzt, braucht diese Option, alle
anderen und wohl die Mehrheit der Anwender hingegen kann sie
dekativieren.
Abbildung 14: Unterst�tzung von ATA, IDE, MFM und RLL
Ger�ten (Festplatte) .
Diese Option ben�tigt eigentlich so ziemlich jeder
Anwender. Ausnahme hier sind diejenigen, die reine SCSI Systeme
ihr eigen nennen. Deswegen werden die meisten hier diesen Punkt
anw�hlen wollen. Selektieren der Zeile darunter bringt ein
Untermen� zutage, welches eine Reihe von weiteren Optionen
anbietet. Da sie recht wichtig sind, werden mehrere Bilder zur
Illustration verwendet. Bei der Anwahl der Punkte sollte man
recht aufmerksam vorgehen, da sie ausgesprochen wichtig
sind.
Abbildung 15: ATA, IDE, MFM und RLL Unterst�tzung -
Bild 1.
Die erste Option wird f�r den Betrieb jeglicher
Ger�te ben�tigt, die �ber eine IDE/ATAPI
Schnittstelle verf�gt. Darunter fallen nicht nur
Festplatten, sondern auch CD-ROMs und Brenner, sowie Band- und
ZIP-Laufwerke. Im Prinzip besitzen alle aktuellen PCs IDE/ATAPI
Controller, weswegen die Option aktiviert werden sollte.
F�r die Verwendung von Festplatten muss die Option
include IDE/ATA-2 DISK support aktiviert werden, es sei
denn, man hat nur SCSI Laufwerke.
Abbildung 16: ATA, IDE, MFM und RLL Unterst�zung - Bild
2.
F�r den Betrieb von ATAPI CD-Roms muss die Option
include IDE/ATAPI CDROM support aktiviert werden. Wer
aber einen ATAPI CD Brenner verwenden will, kann dies nur
�ber die SCSI Emulation bewerkstelligen. Durch diese
k�nnen CD-Roms und Brenner betrieben werden, es kann aber
zu Problemen beim Mounten von CDs kommen, etwa Fehlermeldungen
beim Mounten oder beim Abspielen von Audio CDs. Am besten
verwendet man beide Einstellungen, include IDE/ATAPI CDROM
support und SCSI emulation support, wie in Abbildung
16 gezeigt wird. Das Ger�t, das die SCSI Emulation
ben�tigt, im Allgemeinen der CD Brenner, kann dann in der
Datei /etc/lilo.conf angegeben werden, durch
Hinzuf�gen der Zeile "append=hdd=ide-scsi".
Genaueres dazu ist sp�ter unter der Rubrik
Konfiguration von LILO zu finden. Besitzer von internen
ZIP Laufwerken, die an der IDE/ATAPI Schnittstelle des
Mainboards h�ngen, brauchen f�r den Betrieb des
Ger�tes die Einstellung include IDE/ATAPI FLOPPY
support. Dies gilt ebenso f�r andere Wechselmedien,
wie etwa ein LS120 Laufwerk. F�r einen Gro�teil der
Benutzer gilt, dass sie f�r den Betrieb ihrer Festplatten,
CD-Roms und Floppys die Option PCI IDE aktivieren
m�ssen. Selbiges gilt f�r die beiden Einstellungen
f�r die DMA Unterst�tzung. DMA erlaubt der Hardware,
direkt auf den Hauptspeicher zuzugreifen, ohne �ber den
Prozessor gehen zu m�ssen. Dadurch werden etwa Zugriffe
auf IDE Festplatten schneller, was nur im Sinne eines jeden
Benutzers sein kann. Die Einstellung sharing PCI IDE
interrupts support hingegen sollte man nicht aktivieren.
Zwar k�nnen einige IDE Controller Interrupts mit anderen
Karten teilen, etwa f�r den einwandfreien Betrieb
exotischerer Netzwerkkarten, allerdings sinkt dadurch die
Leistung bei der Verwendung der Festplatten, die an dem
Controller h�ngen, der sich einen Interrupt teilt.
Deswegen sollte dieser Punkt nur angew�hlt werden, wenn
Hardwareprobleme mit Karten auf keine andere Art und Weise
gel�st werden k�nnen.
Abbildung 17: ATA, IDE, MFM und RLL Unterst�tzung -
Bild 3.
Hier wird der jeweilige Mainboard Chipsatz ausgew�hlt,
Besitzer eines Pentium II Prozessors und einem Mainboard mit
Intel Chipsatz w�hlen den entsprechenden Treiber aus, wie
in Abbildung 17 zu sehen ist. Wer ein Board mit anderem
Chipsatz hat, muss dann entsprechend einen der jeweiligen
Treiber verwenden, die in der Abbildung nicht explizit zu sehen
sind.
Abbildung
18: Konfiguration des SCSI Systems.
Wer SCSI Ger�te verwendet, muss nat�rlich die
Unterst�tzung f�r diese und die SCSI Controllerkarte
aktivieren. In der Abbildung ist allerdings nur zu sehen,
welche Einstellungen vorgenommen werden m�ssen, um einen
ATAPI CD Brenner mittels SCSI Emulation zur Kooperation zu
bewegen (Abbildung 16).
Abbildung
19: Betrieb von I2O Ger�ten.
Wer eine I2O Schnittstelle in seinem Rechner hat, muss diese
Option anw�hlen. F�r die meisten Benutzer ist dies
allerdings nicht der Fall, sie k�nnen die Einstellung
deaktiviert lassen.
Abbildung
20: Einstellungen f�r Netzwerkger�te.
Es ist meist unm�glich, den Kernel ohne
Netzwerkunterst�tzung zu �bersetzen. Deswegen sollte
diese Option immer selektiert werden. Ebenso sollte der Treiber
f�r das Dummy-Ger�t ausgew�hlt werden,
entweder fest in den Kernel integriert oder als Modul. Linux
ben�tigt dies zum einwandfreien Betrieb, auch wenn gar
kein wirkliches Netzwerk vorhanden ist, was wohl auf die
meisten Anwender zutrifft. Selbst wenn der Rechner an ein
Netzwerk angeschlossen, ist greift Linux regelm�� auf
das Dummy Device zu. In diesem Men� kann nun auch die Art
der Netzwerkverbindung und der Treiber f�r etwaige
Netzwerkkarten selektiert werden, wie in dem Beispiel der
Abbildung 21. Modembesitzer m�ssen allerdings noch mehr an
Einstellungen vornehmen. PPP Unterst�tzung, entweder
mittels PPP support for async serial ports f�r
Modems am seriellen Port oder PPP support for sync tty
ports, falls man �ber eine schnelle Verbindung etwa
�ber eine SyncLink Karte verf�gt. Wer dies vergisst,
wird vom Kernel die Fehlermeldung erhalten, dass das PPP Modul
nicht existiere, auch wenn es erstellt worden ist, eine nicht
wirklich hilfreiche Fehlermeldung, wenn man das Problem an sich
sucht. Beide Kompressionsmethoden k�nnen problemlos
gleichzeitig angew�hlt werden, der Kernel verwendet die
richtige bei entsprechendem Bedarf.
Abbildung 21: Treiber f�r Ethernetkarten.
Als Beispiel wird hier eine 3COM 100 MBit Ethernetkarte mit
3c509/3c529 Chipsatz benutzt. In diesem Fall wird der Treiber als Modul
�bersetzt, dadurch wird er erst eingebunden, wenn er auch
wirklich gebraucht wird. Nat�rlich muss jeder Anwender den
entsprechenden Chipsatz f�r seine Karte aussuchen.
Zus�tzlich muss die Netzwerkverbindung mittels eines
Konfigurationsprogrammes, wie beispielsweise yast2 der
SuSE Distribution konfiguriert werden.
Abbildung
22: Amateurfunk Unterst�tzung.
Diese Option w�hlen Anwender, die Unterst�tzung
f�r Amateurfunk Hardware ben�tigen. Die meisten
Benutzer werden diese Option allerdings nicht brauchen.
Abbildung
23: Konfiguration von Infrarot (Wireless)
Kommunikation.
Notwendig f�r Besitzer von drahtlosen Ger�ten, die
mittels Infrarotverbindung kommunizieren, etwa bestimmte
M�use oder Tastaturen. Auch diese Option ist f�r die
meisten Besitzern von Desktoprechnern uninteressant.
Abbildung
24: Konfiguration des ISDN Systemes.
Hier wird der Treiber f�r eine ISDN Karte im Rechner
ausgesucht. Wichtig hierbei ist, den genauen Typ der Karte und
ihres Chipsatzes zu kennen, da nur so der richtige Treiber
selektiert werden kann.
Abbildung
25: Treiber f�r �ltere CD-ROM Ger�te.
�ltere PCs, wie 486er oder gar 386er besa�en CD-Rom
Laufwerke, die nicht �ber die IDE Schnittstelle
angeschlossen waren, sondern entweder �ber die Soundkarte
oder mit einer eigenen Controllerkarte daher kamen. Wer solch
ein CD-Rom zum Laufen bringen will, muss hier den
entsprechenden Treiber ausw�hlen. F�r modernere
Rechner spielen die Treiber hier jedoch keine Rolle mehr.
Abbildung
26: Konfiguration des sogenannten "Input Cores".
Hier ist eine der wichtigsten Neuerungen der 2.4.x Kernelserie
zu finden, die Unterst�tzung f�r USB. Generell stellt
der Input Core eine Schicht zwischen dem Kernel und einigen USB
Ger�ten dar. Abbildung 38 zeigt die unterst�tzten USB
Komponenten, der jeweils dazugeh�rige Hilfstext
beschreibt, welche von ihnen diese Option hier ben�tigen.
Alle neuen Mainboards besitzen einen USB Controller, deswegen
sollte diese Option hier angew�hlt werden. In diesem
Beispiel allerdings wurde auf USB Unterst�tzung
verzichtet.
Abbildung
27: Zeichenorientierte Ger�te - Bild 1.
Die Option virtual terminal gibt dem Benutzer die
M�glichkeit, unter X-Windows ein xterm Fenster zu
�ffnen und die Textkonsolen zu verwenden. Im Allgemeinen
wird sie immer aktiviert. Der zweite Eintrag, support for
console on virtual terminal, legt fest, wohin der Kernel
Nachrichten, wie etwa Warnungen bez�glich fehlender oder
fehlerhafter Module, Kernelprobleme und Startmeldungen sendet.
Unter X-Windows wird oft ein separates Fenster f�r diese
Art von Nachrichten verwendet, im Konsolenmodus werden sie
normalerweise auf dem ersten virtuellen Terminal angezeigt
(CTRL+ALT+F1). Diese Option sollte aktiviert sein. Desweiteren
k�nnen Meldungen etwa an die serielle Schnittstelle,
beispielsweise an einen Drucker oder ein anderes Terminal (4.
Option) gesendet werden. F�r das Ausdrucken der Meldungen
muss noch die Schnittestelle mittels der 3. Option aktiviert
werden. Selbiges gilt, sollte man eine serielle Maus verwenden.
Deswegen kann man im Allgemeinen davon ausgehen, dass die
Option standard/generic (8250/16550 and compatible
UARTs) selektiert werden sollte. In diesem Beispiel wird
ein Modul hierf�r erstellt, da SuSE w�hrend des
Hochfahrens das Fehlen des Modules serial support
anmerkt, und auf diese Weise, dadurch dass das Modul existiert,
diese Fehlermeldung vermieden wird. Die Einstellungen
bez�glich der zeichenorientierten Ger�te sind extrem
wichtig, Fehler, die hier gemacht werden, k�nnen dazu
f�hren, dass das System den Dienst verweigert. Deswegen
wird in den Abbildungen 28-30 detaillierter auf die Optionen
eingegangen.
Abbildung
28: Zeichenorientierte Ger�te - Bild 2.
Soll von einem anderen Rechner aus auf dem eigenen System etwa
xterm gestartet werden, zum Beispiel mittels
telnet oder ssh, so muss die Option unix98
PTY support angew�hlt werden. Auch wenn es so aussehen
mag, dass ein Einzelsystem diese Option nicht ben�tigt, so
ist es doch so, dass eine Reihe von Hintergrundprozessen sich
auf diese verl�sst. Es ist deswegen ratsam, auf jeden Fall
diese Einstellung zu selektieren, sei es nur, um
Fehlermeldungen w�hrend des Systemstartes (zumindest bei
SuSE) zu entgehen. Wer einen Drucker an seinem Rechner
�ber den Parallelport bertreibt, der muss die Option
parallel printer support aktivieren. Wer hingegen einen
USB Drucker sein eigen nennt, braucht dies nicht zu tun.
F�r den Versand von Kernelnachrichten an einen Drucker am
Parallelport wird die Option Support for console on line
printer ben�tigt. Im Allgemeinen braucht der normale
Anwender dies jedoch nicht. Die Einstellung support for
user-space parallel port device drivers dient der
Ansteuerung weiterer Arten von Ger�ten, die am Parallelport
h�ngen k�nnen. Auch dies ist f�r den normalen
Desktop Anwender nicht notwendig. Selbiges gilt f�r die
Unterst�tzung von I2C. Manche Karten brauchen
diesen Punkt f�r die Videoverarbeitung, sollte man
allerdings feststellen, dass dies der Fall ist, so kann man die
Option nachtr�glich immer noch hinzuf�gen, sobald
gew�hrleistet ist, dass der Rest des Kernels einwandfrei
funktioniert. Unterst�tzung von Maus und
Joystick wird bei Bedarf aktiviert, allerdings verwenden
nicht alle M�use diesen Treiber (siehe Abbildung 29).
Heutzutage haben CD Brenner meist Bandlaufwerke f�r die
Datensicherung (zumindest im Heimbereich) weitestgehend
verdr�ngt, die wenigsten m�ssen deshalbe die Option
QIC-02 Tape support aktivieren.
Abbildung
29: Zeichenorientierte Ger�te - M�use.
Besitzer einer seriellen Maus k�nnen die Punkte hier
auslassen. Alle anderen hingegen m�ssen sich die
entsprechenden Treiber aussuchen. Wer �ber eine
original Bus Maus verf�gt, selektiert den obersten
Punkt und w�hlt aus der im Anschluss erscheinenden Liste
den jeweiligen Typen heraus. Die meisten heutigen Rechner
verwenden einen anderen Maustypen, der im Allgemeinen
(f�lschlich) "Bus Maus" bzw. PS/2 Maus genannt wird. Diese
Ger�te sind meist unter /dev/aux zu finden und
werden am Rechner an einen Anschluss gest�pselt, der dem
f�r die Tastatur �hnelt. Oft werden sie auch
�ber die Tastatur an den Rechner angeschlossen. F�r
den Betrieb dieser M�se m�ssen die Optionen wie in
Abbildung 29 angew�hlt werden: mouse support (not
serial and bus mice) und PS/2 mouse (aka "auxiliary
device" support).
Abbildung
30: Zeichenorientierte Ger�te - Bild 3.
Die Optionen f�r die Kernelkonfiguration zwischen
Abbildung 28 und 30 werden hier nicht weiter beschrieben, sie
sind normalerweise alle deaktiviert. Ftape, the floppy tape
device driver dient dem Betrieb von Bandlaufwerken, die
�ber den Diskettenlaufwerkscontroller angeschlossen
werden. Selbst wenn man solch ein Ger�t besitzt, ist es
zumindest nicht beim ersten Versuch der Kernel�bersetzung
zwingend notwendig, die Unterst�tzung einzubinden. Die
anderen Optionen betreffen neuere 3D Grafikkarten. Wer solch
eine Karte im AGP Slot hat, schaltet die Unterst�tzung
f�r AGP an, sowie den jeweiligen Treiber (unter
/dev/agpart (AGP support)), passend zur Karte. Es sei
hier angemerkt, dass man durchaus einen funktionsf�higen
Kernel erhalten kann, auch ohne diese Punkte hier zu
spezifizieren, allerdings nicht notwendigerweise! Wer �ber
ein Mainboard mit integriertem Grafikchipsatz (z.B. Intels
i815) verf�gt, muss diese Kerneltreiber verwenden!
Andernfalls wird XFree86 version 4.x, welches heute mit so ziemlich
allen Distributionen mitkommt, nicht funktionieren. Besitzer
von NVidia Karten, etwa mit TNT2 oder GeForce Chipsatz, werden
keinen integrierten Kerneltreiber vorfinden, weswegen es
f�r sie wenig Sinn macht, diese Optionen hier zu
verwenden. Die Firma NVidia weigert sich,
Hardwarespezifikationen frei verf�gbar zu machen, was
allerdings Voraussetzung f�r die Entwicklung von Open
Source Kerneltreibern ist. (Anmerkung: NVidia bietet kostenlos
den Download von Linux Treibern an). Auf jeden Fall k�nnen
NVidia Besitzer auch ohne die Einstellungen hier XFree86 version 4.x
verwenden. Die Option Direct rendering support dient
einem Feature von XFree86, welches seit 4.0 dort zu finden ist
und die Grafikleistung �ber Verwendung des Kernels
erh�hen soll. Wer sich dies zunutze machen will, muss
Besitzer einer unterst�tzten Grafikkarte sein und
entsprechend XFree 4.x verwenden. Zus�tzlich muss AGP
support aktiviert sein. Jedoch ist es durchaus akzeptabel,
diese Optionen f�rs erste auszulassen und sp�ter,
wenn man weiss, dass der eigene Kernel funktioniert, sie sich
genauer anzusehen.
Abbildung
31: Konfiguration von Multimediager�ten.
Diese Option wird f�r den Betrieb von Radio- und
Video-Karten ben�tigt. Auch sie ist nicht unmittelbar
f�r einen funktionierenden Kernel notwendig.
Abbildung
32: Einstellungen zum Dateisystem - Bild 1.
Hier kann man aussuchen, welche Dateisysteme durch den
Linuxkernel unterst�tzt werden sollen. Wer will, kann
dadurch auf Windows Festplatten und Disketten zugreifen,
allerdings muss sichergestellt werden, dass ebenfalls
Unterst�tzung f�r das linuxeigene ext2
Dateisystem oder das neuere ReiserFS eingebunden wird.
Ohne diese kann Linux nicht einmal von der eigenen Bootpartition
(wie in Abbildung 3 diskutiert) starten. F�r den Zugriff
auf Dos/Windows Systeme muss die Option DOS/FAT support
gew�hlt werden. Allerdings muss f�r Windows NT/2000
Festplatten ein eigenst�ndiger Treiber, welcher nur
lesenden Zugriff gestattet, verwendet werden. Dieser ist weiter
unten zu finden. Desweiteren muss f�r das Lesen und
Schreiben von Dos/Windows Ger�ten die Einstellung MSDOS
fs support aktiviert werden. Die meisten Anwender werden
dies wollen und sollten deswegen die Option anw�hlen.
VFat wird f�r lange Dateinamen unter Windows 95 und
98 verwendet. Wer sowohl Windows 95/98 als auch Linux auf
seinem Rechner parallel betreiben will, eine sogenannte
"Dualboot" Konfiguration, wobei das jeweilig zu startende
Betriebssystem mittels eines Bootlaoders, etwa LILO, beim
Hochfahren gew�hlt wird, muss die Option VFAT
w�hlen. ISO9660 werden alle ben�tigen, die auf
CDs in deren Standardformat zugreifen wollen. Darunter ist die
Einstellung f�r die Joliet extensions zu finden,
welche die Dateinamenl�nge erweitert, da diese in ISO9660
auf die 8+3 Zeichen des MS-DOS Formates beschr�nkt ist.
Beide Optionen werden heute sicherlich von so ziemlich jedem
Benutzer verwendet werden. Abbildung 33 zeigt weitere Optionen,
darunter auch die f�r das Linux Ext2 Dateisystem.
Abbildung
33: Einstellungen zum Dateisystem - Bild 2.
Die Dateien im Verzeichnis /proc beinhalten
Informationen �ber den aktuellen Systemstatus, zum
Beispiel die gerade belegten Interrupts. Die entsprechende
Option sollte im Allgemeinen ausgew�hlt werden. Second
extended fs support aktiviert Unterst�tzung f�r
das unter Linux (noch) Standarddateisystem. Es ist absolut
NOTWENDIG, die Unterst�tzung einzubinden und zwar nicht
als Modul! Abbildung 32 und 33 zeigen nicht die Option f�r
ReiserFS, welches hier ebenfalls gew�hlt werden kann und
wohl der Nachfolger des Ext2 Dateisystemes sein wird. ReiserFS
ist besser in der Lage, mit Sch�den am Dateisystem
umzugehen, etwa durch Stromausfall oder �hnliche Probleme.
Zur Zeit ist ReiserFS immer noch in der Entwicklung und
f�llt deswegen unter die Kategorie "experimenteller
Code". Dennoch verwenden bereits viele Distributionen
dieses Dateisystem. Auch wenn ReiserFS wohl Ext2 abl�sen
wird, so ist es nicht wirklich f�r alle Partitionen,
zumindest zu diesem Zeitpunkt zu empfehlen. UDF file system
support erlaubt, auch unter Linux CDs zu lesen, die mit
packetCD unter Windows erstellt worden sind. Diese
werden mit dem UDF Dateisystem gemountet, etwa mit mount -t
udf /dev/scd0/cdrom. In diesem Abschnitt sind auch die
Netzwerkdateisysteme , sowie verschiedene Typen von Partitionen
und der Native Language Support zu finden. Wessen
Rechner nicht Teil eines gr��eren Netzverbundes ist,
der braucht sich im Allgemeinen keine Gedanken um Netzwerk
Dateisysteme machen. Alle anderen k�nnen hier die
Unterst�tzung f�r das NFS File System
oder SMB aktivieren. Die Option Partition Types
ist etwas anspruchsvoller und nicht wirklich f�r den
korrekten Betrieb des Kernels von N�ten. Deswegen sollte
sie deaktiviert werden. Abbildung 34 und 35 gehen genauer auf
den Native Language Support ein.
Abbildung 34: Native Language Support - Bild 1.
Hier wird die Zeichentabelle ausgesucht, welche unter Linux
f�r Dateinamen von DOS und Windows Medien verwendet werden
soll. Die Tabellen in Abbildung 34 sind dabei f�r die
normalen DOS Dateinamen zust�ndig. Die NLS Tabellen, die
in Abbildung 35 zu sehen sind, werden f�r die erweiterten
Dateinamen verwendet. Die erste Option in Abbildung 34
Default NLS option bestimmt, welche Zeichen
standardm��ig unter Linux verwendet werden sollen.
Abbildung 35 erkl�rt die Option iso7759-15.
Abbildung 35: Native Language Support - Bild 2.
Die Option NKS ISO 8859-15 wird ben�tigt, um die
Namen des Windows FAT Dateisystemes, sowie denen der Joliet
Erweiterungen zum normalen CD Dateisystem korrekt darzustellen,
was im allgemeinen erw�nscht ist. NLS ISO 8859-15
wird f�r die westlichen Sprachen verwandt und beinhaltet
unter anderem das Euro Symbol. Deswegen wird fast immer diese
Tabelle eingebunden. NLS ISO 8859-1 ist der
Vorg�nger, beinhaltet aber nicht das Eurozeichen.
Abbildung
36: Konfiguration der Konsolentreiber.
Mit VGA text console wird der Textmodus in VGA
Aufl�sung betrieben. Dies ist eine der Einstellungen, die
beinahe jeder haben m�chte und deswegen selektiert werden
sollte. Die meisten neueren Rechner haben nicht die geringsten
Probleme mit dieser Einstellung, nur bei 386ern, die ohne VGA
Karte daherkommen, sieht dies anders aus. Der zweite Punkt
video mode selection support erm�glicht es dem
Benutzer, w�hrend des Hochfahrens des Systemes die
Aufl�sung des Textmodus auszuw�hlen. Dies mag
manchmal ganz n�tzlich sein, wenn man mal mehr Zeichen pro
Zeile haben mag, meistens aber wird diese Option nicht
verwendet. Die letzten beiden Einstellungen sind experimentell
und sollten deaktiviert bleiben.
Abbildung 37:
Konfiguration des Soundsystemes.
Hier werden die Einstellungen f�r die
Soundunterst�tzung vorgenommen. Wer ALSA verwendet (etwa
SuSE 6.3 und h�her), f�r den reicht es hier aus,
sound card support als Modul zu �bersetzen.
Die ALSA Treiber werden sp�ter getrennt �bersetzt
(mehr dazu unter SuSE und die ALSA Soundtreiber). Wer
dagegen die Soundtreiber des Kernels verwendet, muss den
passenden Treiber zur Soundkarte w�hlen. So ziemlich alle
Soundkartennamen sind hier aufgef�hrt, es sollte also
keine Probleme machen, den richtigen Treiber zu finden.
Funktioniert die eigene Karte bereits zufriedenstellend mit dem
Standardkernel der eigenen Distribution, so kann man auch die
Konfigurationsprogramme der Distribution (etwa yast2)
verwenden, um herauszufinden, welchen Treiber man w�hlen
muss. Gut zu wissen ist, dass die Konfiguration des Sounds
nicht wirklich kritisch f�r die Funktionsf�higkeit
des Kernels ist. Sollte man hier einen Fehler machen, so bleibt
die Soundkarte zwar still, der Kernel funktioniert ansonsten
aber einwandfrei.
Abbildung
38: USB Einstellungen.
Auch wenn das eigene Mainboard einen USB Anschluss hat, so mag
man diesen nicht notwendigerweise verwenden. Allerdings kann es
passieren, etwa mit SuSE, dass beim Deaktivieren aller USB
Optionen, eine entsprechende Fehlermeldung w�hrend des
Bootens erscheint. SuSE unterst�tzt nat�rlich die
Verwendung von USB und versucht deswegen, das entsprechende
Modul zu laden. Deswegen wird in diesem Beispiel hier Support
for USB als Modul eingebunden. Auch wenn die Fehlermeldung
nicht wirklich wichtig ist, so kann sie auf diese Art und Weise
vermieden werden. Als Minimaleinstellungen muss man Preliminary
USB device filesystem mit y beantworten und den
jeweiligen USB Treiber ausw�hlen. F�r �ltere
Pentium II Mainboards ist dies UHCI (Intel PIIX4, VIA, ...),
bei Boards mit neueren Intel Chips�tzen w�hlt man
UHCI Alternate Driver (JE) support. Besitzer von Compaq Rechnern
wiederum sollten OHCI support selektieren. Prinzipiell braucht
man nur einen dieser drei Treiber, wer allerdings unsicher ist,
w�hlt alle drei aus, es wird automatisch der jeweils
passende geladen.
Es reicht allerdings nicht aus, den Treiber f�r die USB Anschl�sse des Mainboards zu aktivieren. Desweiteren m�ssen noch die entsprechenden Treiber(module) der Ger�te, die an den Rechner angeschlossen sind, spezifiziert werden. Diese Liste ist unter USB Device Class drivers zu finden und bietet eine gro�e Auswahl. Die Wahl sollte recht einfach sein, im Zweifelsfall zieht man die Hilfstexte zu Rate.
Abbildung
39: Option kernel hacking.
Kurz gesagt: nicht ausw�hlen. Diese Einstellung
ist sehr hilfreich f�r Programmierer, die auf der Suche
nach Gr�nden f�r Kernelabst�rze sind oder etwa
den Cache der Festplatte auslesen wollen. F�r den normalen
Anwender ist sie absolut sinnlos.
Abbildung 40: | Save and Exit. |
make dep make clean (for older kernels) make bzImage make modules make modules_installIn Abbildung 40 kann man schon sehen, dass der n�chste Schritt 'make dep' ist. Nat�rlich f�hrt man diese Befehle im Linux Quellverzeichnis aus, normalerweise '/usr/src/linux'. Kernel der 2.0.x Serie oder �lter brauchen auch noch den Befehl 'make clean', der alte Dateien von einer m�glicherweise vorangegangenen Kompilation l�scht, bevor der neue Kernel kompiliert wird. Der 'make clean' Befehl verhindert merkw�rdige Fehler, die durch alte Objektdateien (.o) verursacht werden k�nnen, die nicht ordentlich �berschrieben wurden. Der Befehl 'make bzImage' kompiliert den Kernel, aber installiert ihn noch nicht. Man kann den Kernel auch mit anderen Befehlen, wie z.B 'make bzlilo' oder 'make zImage' kompilieren, aber diese k�nnen zu Problemen f�hren. Die meisten Kernel sind zu gro� f�r 'make zImage': Man bekommet eine Fehlermeldung und es wird kein Kernel gebaut. Bei 'make bzlilo' mu� alles in '/etc/lilo.conf' schon korrekt konfiguriert sein, da der Kernel gleich installiert wird. Das ist aber nicht immer der Fall. Es ist daher sicherer, diese Befehle zu meiden. Der Befehl 'make modules' kompiliert die Kernel Module und 'make modules_install' installiert sie. Dieser Befehl speichert die Module unter dem Verzeichnis '/lib/modules/2.4.6/', wenn die kompilierte Kernel-Version 2.4.6 ist. Das Verzeichnis entspricht also immer der Version, die man gerade kompiliert. Auf diese Art werden alte und neue Versionen getrennt. Beim Booten wei� der Kernel welche Version er hat und nimmt die richtigen Module. Das funktioniert jedoch nicht, wenn man mehrmals denselben Kernel in unterschiedlicher Konfiguration kompiliert. Dann liegen die alten Module der gleichen Version einfach herum. Das sollte kein Problem sein, aber es ist �bersichtlicher und sauberer das Verzeichis erst zu l�schen oder umzubenennen, bevor man neue Module der gleichen Version installiert.
Um Probleme beim Installieren des Kernels zu vermeiden, mu� man auch sicherstellen, dass die Lilokonfiguration in '/etc/lilo.conf' korrekt ist. Der Kernel und die Datei 'System.map' mu� an der richtigen Stelle liegen (wie in '/etc/lilo.conf' spezifiziert). Danach mu� man den Befehl 'lilo' ausf�hren. Eine Alternative ist 'loadlin'. Damit kann man den Linux Kernel von Dos/Windows aus booten. Beide Optionen werden im folgenden besprochen.
boot = /dev/hda vga = normal read-only menu-scheme = Wg:kw:Wg:Wg lba32 prompt timeout = 300 message = /boot/message other = /dev/hda1 label = win98 image = /boot/bzImage label = linux-2.4.6 root = /dev/hda3 append = "parport=0x378,7 hdd=ide-scsi" image = /boot/vmlinuz.suse label = suse root = /dev/hda3 append = "hdd=ide-scsi" initrd = /boot/initrd.suse
Der genaue Inhalt der Datei kann bei den verschiedenen Distributionen abweichen von dem obigen Beispiel. Ich werde daher nicht jede Zeile besprechen. Der Befehl 'boot' in der ersten Zeile gibt an, von welcher physikalischen Festplatte der Bootprozess startet. 'boot' zeigt auf das sogenannte 'master boot record'. In diesem Fall boote ich von /dev/hda (erste Platte am IDE-Bus). Die Option 'vga' gibt an, dass der normale VGA Textmode mit 80x25 Zeichen benutzt wird. Die Option 'read-only' gibt an, dass die Linuxpartition erst nur-lesend gemounted wird. W�hrend des Bootens werden die Platten auf Fehler gepr�ft, danach werden sie erst zum Beschreiben freigegeben. Die Zeile 'menu-scheme' gibt die Farben an, die f�r das Bootmen� benutzt werden. Mit der Option 'lda32' ist es m�glich, ein Betriebssystem nach Zylinder 1024 zu booten, wenn das vom Bios unterst�tzt wird. Alle modernen Systeme unterst�tzen 'lba32'. Probleme mit dieser Option kann man durch einen BIOS Upgrade l�sen. Der Befehl 'prompt' veranlasst Lilo zu warten und den Benutzer zu fragen, welches Betriebssystem gebootet werden soll. 'timeout' gibt die Anzahl der Millisekunden an, die Lilo auf Benutzereingaben wartet, bevor das erste Betriebssystem automatisch gebootet wird (oder das, was als 'default' angegeben ist, hier gibt es aber kein 'default' deshalb wird das erste genommen). Die 'message' Option gibt an, welches Bild beim Booten angezeigt wird. Bei Suse ist das Tux, der knuddelige Linux Pinguin. Man kann die Datei mit dem Befehl 'xv /boot/message' oder 'gimp /boot/message' ansehen. Beachte, dass die Datei /boot/message nicht auf �lteren Systemen ohne grafischen Boot-Bildschirm existiert. Alle Optionen f�r 'lilo' sind in den Man-Seiten 'man lilo' und 'man lilo.conf' beschrieben.
Die anderen Optionen geben an, was je nach gew�hltem Betriebssystem gemacht werden soll. Maximal kann man 16 verschiedene Systeme oder Kernel booten. Der Name des Systems wird mit 'label=' angegeben. Bei Windows mu� man 'other' angeben, da angenommen wird, dass es immer auf der ersten Partition der Platte liegt. Der n�chste Eintrag in der obigen Datei ist 'image=/boot/bzImage'. Das ist der Pfad zu dem Kernel der gebootet werden soll. Mein Linux root-Verzeichnis ist '/dev/hda3'. Die Zeile 'append = "parport=0x378,7 hdd=ide-scsi"' gibt dem Kernel an, was die Adresse und den Interrupt f�r den Parallel Port ist ((port 0x378, interrup t 7) und sagt, dass der CD Brenner 'hdd' �ber SCSI-emulation angesprochen werden soll. Der Name des CD Brenners ('hdd') h�ngst von der Position auf dem IDE Interface, an dem er angeschlossen ist, ab. Das Benutzen eines Interrupts f�r den Drucker beschleunigt das Drucken, ist aber nicht n�tig, da Linux ohne diese Einstellung im etwas langsameren 'polling'-Mode arbeitet. Die Datei '/boot/vmlinuz.suse' ist bei mir der Standard Kernel, der bei Suse mitgeliefert wird. Man sollte ihn nie l�schen, da man dann in Notf�llen immer wieder auf diesen Kernel zugreifen kann. Die Zeile 'initrd = /boot/initrd.suse' geh�rt zu dem Suse Kernel und l�dt eine sogenannte Ram-disk. Hier befinden sich Kernelmodule, die schon beim Booten gebraucht werden. Bei einem sebst gebauten Kernel ist das nicht n�tig, aber eine Distribution mu� eine viel gr��ere Anzahl von Hardwarekonfigurationen unterst�tzen und das kann man nur mit einer Ram-disk erreichen.
Hoffentlich ist es jetzt klar, wo man den neuen Kernel speichern mu�. In diesem Beispiel ist das:
cp /usr/src/linux/arch/i386/boot/bzImage /boot cp /usr/src/linux/System.map /boot/System.map-2.4.6 liloWenn du schon einen Kernel mit dem Namen 'bzImage' hast und du m�chtest ihn behalten, dann kannst du ihn auch als '/boot/bzImage-2.4.6' kopieren und in /etc/lilo.conf /boot/bzImage in /boot/bzImage-2.4.6 �ndern. Der Kompilevorgang erzeugt immer eine neue System.map die alle Symbole und die Konfiguration wichtiger Kernel Variablen enth�lt.
rpm -bb /usr/src/packages/SPECS/alsa.spec cd /usr/src/packages/BUILD/alsa/alsa-driver-<version number>/ ./configure make installDie erste Zeile installiert die Sourcen und den Alsa Treiber in '/usr/src/packages/BUILD/'. Die ALSA Treiber werden leider standardm��ig nicht einkompiliert. Man mu� sie separat kompilieren und von Hand installieren. Das geht mit './configure' und 'make install'. Der Befehl 'make install' kompiliert und installiert sie nach '/lib/modules/2.4.6/misc/'. Wenn man nun SuSE bootet, wird automatisch der richtige Soundtreiber geladen.
Falls Du kein SuSE hast oder eine neuere Version der ALSA Treiber m�chtest, kannst du sie unter http://www.alsa-project.org finden. Das ist die Startseite des ALSA Projektes mit den neusten Nachrichten (z.B Feb 2002, Integration der ALSA Treiber in den offiziellen 2.5 Kernel). Die ALSA FAQ enth�lt Hinweise, wie man ALSA in zum Laufen bringt, falls es bei deiner Distribution Probleme gibt.
cp /etc/rc.d/pcmcia /etc/rc.d/pcmcia.SuSE cp ~/pcmcia-cs-3.1.?.tar.gz /usr/src cd /usr/src tar -zxf ./pcmcia-cs-3.1.?.tar.gz make config make all make install cp /etc/rc.d/pcmcia.SuSE /etc/rc.d/pcmciaDie erste Zeile l�st ein SuSE spezifisches Problem. Das pcmcia-Initialisierungsscript von SuSE wird von 'make install' �berschrieben, was dann unter Suse nicht funktioniert. Wenn man versehentlich schon das SuSE pcmcia Script �berschrieben hat, dann mu� man das pcmcia Paket von Suse nochmal installieren.
Das Quellcode RPM f�r pcmcia installiert man unter Suse wie folgt:
rpm -i /cdrom/suse/zq1/pcmcia-3.1.?.spm cd /usr/src/packages rpm -bb ./SPECS/pcmcia-3.1.?.spec cd /RPMS/i386/ rpm -i --force ./pcmcia-3.1.?.rpm SuSEconfigDie Befehle nehmen an, dass die CD unter /cdrom gemounted ist. 'rpm -i' installiert den Quellcode und 'rpm -bb' kompiliert. Danach kann man das RPM wie alle anderen RPMs installieren. Beachte, dass man die Option '--force' braucht, da sonst das Program berechtigterweise sagen wird, dass 'pcmcia' schon installiert ist. Wie immer mu� man das Programm SuSEconfig aufrufen, wenn man unter Suse RPMs von Hand installiert hat, um die Konfigurations�nderungen zu aktivieren. Wenn man YaST oder YaST2 benutzt, geschieht das automatisch.
Um pcmcia zu benutzen, mu� man 'network support' und 'TCP/IP support' w�hrend der Kernelkonfiguration eingeschaltet haben.
insmod (installiert ein Modul), rmmod (de-installiert ein Modul) lsmod (zeigt alle installierten Module),Mit 'man lsmod' kann man mehr �ber lsmod erfahren. Ich werde hier jetzt nicht in Details gehen.
Kompilieren und Installieren von 'modutils' ist einfach:
cd /usr/src cp ~/modutils-2.4.6.tar.bz2 . ( angenommen, dass die modutils in deinem ) ( home directory, '~', sind ) bzip2 -d modutils-2.4.6.tar.bz2 tar -xvf modutils-2.4.6.tar cd modutils-2.4.6 ( gehe in das Verzeichnis, in das sich die ) (modutils entpackt haben ) ./configure make ( kompilieren ) make install (installieren nach '/sbin/' )Beachte, dass hier die 'modutils' zuf�llig die gleiche Versionsnummer wie der Kernel haben. Das mu� nicht immer sein.