Configureren van de kernelOpmerking: Een deel hiervan is een herhaling/opheldering van een
vergelijkbare sectie in het README bestand van Linux.Het commando `make config' als je je in /usr/src/linux
bevindt, start een configuratiescript, welke je vele vragen stelt.
Het vereist bash, dus verifieer dat bash zich in
/bin/bash, /bin/sh, of $BASH bevindt.Er zijn echter wat plezieriger alternatieven voor `make
config' en het kan heel goed zijn dat je ze makkelijker en comfortabeler
in het gebruik vindt.
`make menuconfig' is waarschijnlijk de meest gebruikte. Wat je ook
kiest, het is het beste als je bekend raakt met de interface, omdat het heel
goed mogelijk is dat je eerder terug zult keren, dan je zult denken.
Voor degene die ``X draaien,'' kun je `make xconfig' proberen,
als je Tk hebt geïnstalleerd
`make menuconfig' is voor degene
die (n)curses hebben en de voorkeur zouden geven aan een op tekst gebaseerd
menu. Deze interfaces hebben een nogal
duidelijk voordeel: Als je het verprutst en tijdens de configuratie
een verkeerde keuze maakt, is het heel eenvoudig om terug te gaan en het
te corrigeren.De configuratie-opties zullen met `make menuconfig' en
make xconfig' in hierarchiën verschijnen.Je bent er klaar voor om de vragen te gaan beantwoorden,
gewoonlijk met `y' (yes) of
`n' (no). Device drivers hebben typisch een `m' optie.
Dit betekent ``module,'' wat inhoudt dat het systeem ze niet direct in de
kernel zal compileren, maar als een laadbare module.
Een komischer manier om het te beschrijven is als ``misschien.'' Een aantal
van de vanzelfsprekende en niet-kritieke opties is hier niet beschreven;
zie de sectie ``Andere configuratie-opties'' voor beknopte beschrijvingen
van een paar andere opties.
Met `make menuconfig', verwissel je met de spatiebalk van selectie.In 2.0.x en later, is er een `?' optie, die voorziet in een korte
beschrijving van de configuratieparameter.
Die informatie is waarschijnlijk het meest up-to-date.
Hier is een opsomming van een aantal van de belangrijke faciliteiten,
in welke hierarchie ze staan, en met een korte beschrijving.
Kernel math emulatie (Processor type and facilities)Als je geen math processor hebt (je hebt een minimale 386 of
486SX), moet je hier met `y' antwoorden.
Als je een coprocessor hebt en je zegt dan toch
`y', maak je er dan niet teveel zorgen om -- de coprocessor wordt
nog steeds gebruikt en de emulatie wordt genegeerd.
Voor iedere moderne computer, zal het antwoord `no' zijn, maar maak je
geen zorgen als je hier per ongeluk `yes' hebt geantwoord;
als het niet nodig is, wordt het niet gebruikt.
Enhanced (MFM/RLL) disk en IDE disk/cdrom support (Block Devices)Je zult de ondersteuning waarschijnlijk nodig hebben; het betekent dat de
kernel standaard PC harddisks, die de meeste mensen hebben, zal ondersteunen.
Bij deze driver zijn SCSI-drivers niet inbegrepen; die komen later
in de configuratie aan de orde.Er zal dan worden gevraagd naar de ``old disk-only'' en ``new IDE'' drivers.
Je zult er hier één van willen kiezen; het belangrijkste
verschil is dat de oude driver alleen twee disks op een enkele interface
ondersteunt, en de nieuwe een tweede interface en IDE/ATAPI cdromdrives
ondersteunt. De nieuwe driver is 4k groter dan de oude en
is, naar men mag aannemen, ook ``verbeterd,'' wat betekent dat het afgezien van
een verschillend aantal bevattende fouten, het je diskperformance kan
verbeteren, vooral als je nieuwere (EIDE-type) hardware hebt.
Netwerkondersteuning (General Setup)In principe, zou je hier slechts `y' antwoorden, als je
computer zich in een netwerk bevindt, zoals het internet, of je gebruik
wilt maken van SLIP, PPP, term, enz. om in te bellen voor toegang tot het
internet. Je zou hier echter `y' moeten antwoorden,
want veel packages (zoals het X-windowsysteem)
vereisen netwerkondersteuning, ook al is je computer niet op een echt
netwerk aangesloten. Later zal je worden gevraagd of je ondersteuning
wilt voor een TCP/IP netwerk; antwoord hier nogmaals
`y', als je er niet helemaal zeker van bent.
System V IPC (General Setup)Één van de beste definities van IPC (Interprocess Communication)
staat in de verklarende woordenlijst van het Perl boek.
Het is niet verwonderlijk dat een aantal Perl programmeurs het gebruikt
om processen met elkaar te laten communiceren, evenals vele andere
packages (in 't bijzonder DOOM), dus het is geen goed idee om hier
n op te antwoorden, tenzij je precies weet wat je aan het doen bent.
Processor family (Processor type and facilities)(in oudere kernels: Gebruik de -m486 flag voor 486-specifieke optimalisaties)Volgens traditie werden hierdoor bepaalde optimalisaties voor een bepaalde
processor meegecompileerd; de kernels draaide prima op andere chips, maar
de kernel was misschien wat groter.
In nieuwere kernels geldt dit echter niet meer, dus je zou op moeten geven
voor welke processor je de kernel aan het compileren bent.
Een ``386'' kernel werkt met alle computers.
SCSI-supportAls je SCSI-devices hebt, antwoord je `y'. Er zal je worden gevraagd
naar meer informatie, zoals ondersteuning voor CD-ROM, disks, en wat voor soort
SCSI-adapter je hebt. Zie de SCSI-HOWTO voor uitgebreidere details.
Network device supportAls je een netwerkkaart hebt, of je zou SLIP, PPP of een parallelle
poortadapter wilen gebruiken om verbinding te maken met het Internet,
antwoord je `y'. Het configuratiescript zal je vragen naar de soort
kaart die je hebt, en welk protocol moet worden gebruikt.
FilesystemsHet configureerscript vraagt je vervolgens of je ondersteuning voor
de volgende bestandssystemen wilt:Standard (minix) - Nieuwere distributies maken geen minix bestandssystemen
aan, en veel mensen gebruiken het niet, maar het kan nog steeds een goed
idee zijn om deze te configureren.
Een aantal ``rescue disk'' programma's maakt er gebruik van, en steeds
meer diskettes kunnen een minix bestandssysteem hebben,
aangezien het minix bestandssysteem minder moeizaam op een diskette
is te gebruiken.Second extended - Dit is het standaard Linux bestandssysteem. Het is bijna
zeker dat je er hier één van hebt, en
`y' moet antwoorden.msdos - Als je je MS-DOS harddisk partities wilt gebruiken, of MS-DOS
geformatteerde diskettes wilt gebruiken, antwoord je `y'.Er zijn diverse andere externe soorten besturingssystemen beschikbaar./proc - (idee van Bell Labs, denk ik). Men maakt geen proc bestandssysteem
op een disk;
dit is een bestandssysteeminterface naar de kernel en de processen.
Veel programma's die processen weergeven (zoals `ps') maken er
gebruik van. Probeer eens een keer
`cat /proc/meminfo' of `cat /proc/devices'.
Een aantal shells (rc, in het bijzonder) gebruikt voor I/O
/proc/self/fd (op andere systemen bekend als /dev/fd).
Je zou hier bijna zeker `y' moeten antwoorden;
veel belangrijke linux tools zijn ervan afhankelijk.NFS - Als je computer op een netwerk is aangesloten, en je wilt
bestandssystemen gebruiken die voorkomen op andere systemen met NFS,
antwoord dan `y'.ISO9660 - Wordt op de meeste CD-ROM's aangetroffen. Als je een CD-ROM
drive hebt en je wilt het onder Linux gebruiken, geef je als
antwoord `y'.
Maar ik weet niet welke bestandssystemen ik nodig heb!Ok, typ `mount'. De uitvoer zal er ongeveer zo uitzien: blah# mount
/dev/hda1 on / type ext2 (defaults)
/dev/hda3 on /usr type ext2 (defaults)
none on /proc type proc (defaults)
/dev/fd0 on /mnt type msdos (defaults)Bekijk iedere regel; het woord naast `type' is het type
bestandssysteem.
In dit voorbeeld zijn mijn / en /usr bestandssystemen
second extended, Ik gebruik /proc, en er is een diskette gemount
door gebruik te maken van het msdos bestandssysteem.Je kunt `cat /proc/filesystems' proberen, als je /proc
thans is geactiveerd; je huidige kernel's bestandssystemen zullen worden
weergegeven.De configuratie van zeldzaam gebruikte, niet kritieke bestandssystemen
kunnen een bloat kernel veroorzaken; zie de sectie over modules voor een
manier om dit te voorkomen en de sectie
``Valkuilen'' over waarom een bloat kernel niet wenselijk is.
Character devicesHier activeer je de drivers voor je printer (dat wil zeggen, parallelle
printer), busmouse, PS/2 mouse (veel notebooks gebruiken het PS/2
mouse protocol voor hun ingebouwde trackballs), een aantal tapedrives,
en andere ``character'' devices. Antwoord `y' als dit van
toepassing is.Opmerking: gpm is een programma waarmee
het gebruik van de muis buiten het X-windowsysteem voor knippen en plakken
tussen virtuele consoles is toegestaan.
Het is echt heel aardig als je een seriële muis hebt, omdat
het goed naast X kan voortbestaan, maar je hebt voor andere muizen
speciale foefjes nodig.
SoundAls je een groot verlangen voelt om geklap en geblaf te horen,
antwoord dan `y',
en je kunt het configuratieprogramma alles over je geluidskaart laten weten.
(Een opmerking over de configuratie van een geluidskaart:
als je wordt gevraagd of je de volledige versie van de driver wilt
installeren, kun je hier
`n' antwoorden en wat kernelgeheugen besparen door alleen
de faciliteiten eruit te pikken die je nodig acht).Als de geluidsondersteuning je menens is, bekijk dan eens de
vrij verkrijgbare drivers bij http://www.linux.org.uk/OSS/ en
het commerciële Open Sound System bij http://www.opensound.com/.
Andere configuratie-optiesNiet alle configuratie-opties worden hier opgesomd, omdat ze te vaak
wijzigen of tamelijk vanzelfsprekend zijn (bijvoorbeeld, 3Com 3C509
ondersteuning voor het compileren van de devicedriver voor deze
speciale ethernetkaart).
Er bestaat een tamelijk uitgebreide lijst met opties (plus een manier om
ze in het Configure script te plaatsen) met inzet gestart en
beheerd door Axel Boldt (boldt@math.ucsb.edu) en het is de online-
help. Het is sinds versie 2.0 ook beschikbaar als één
groot bestand als de
Documentation/Configure.help in je Linux kernel source tree.
Kernel hacking>Vanuit het README bestand van Linus:de ``kernel hacking'' configuratie details resulteren meestal in
een grotere of langzamere kernel (of beiden), en kan de kernel zelfs
minder stabiel maken door een aantal routines te configureren die actief
probeert slechte code aan de oppervlakte te laten komen om kernelproblemen
op te sporen (kmalloc()). Dus je zou waarschijnlijk `n' moeten
antwoorden op de vragen voor een ``production'' kernel.