Je kunt de source via anonieme ftp verkrijgen vanaf ftp.kernel.org
in
/pub/linux/kernel/vx.y
, waar x.y
voor de versie staat
(bv 2.2), en zoals eerder genoemd, die met een oneven nummer eindigen,
zijn development releases en kunnen onstabiel zijn.
Ze zijn vaak gelabeld als linux-x.y.z.tar.gz
, waarbij x.y.z
voor het versienummer staat. Op de sites staan vaak ook bestanden met het
toevoegsel .bz2
, deze zijn met bzip2 gecomprimeerd
(ze zullen kleiner zijn en nemen bij het transporteren minder tijd in beslag).
Je kunt het beste ftp.xx.kernel.org
gebruiken, waar xx
je landcode voorstelt;
voorbeelden zijn ftp.at.kernel.org
voor Australië,
en ftp.us.kernel.org
voor de United States.
Log in als, of su
naar, `root
', en cd
naar
/usr/src
.
Als je de kernelsource installeerde toen je linux voor het eerst installeerde
(zoals de meeste doen), zal er reeds een directory met de naam
`linux
' voorkomen, die de gehele oude sourcetree bevat.
Als je de diskruimte hebt en het veilig wilt spelen, bewaar die directory
dan. Het is een goed idee om er achter te komen welke versie nu
op je systeem draait en de directory overeenkomstig te hernoemen.
Het commando `uname -r
' drukt de huidige kernelversie af.
Daarom zou je (met `mv
') `linux
' in `linux-1.0.9
'
kunnen hernoemen, als `uname -r
`1.0.9
' aangeeft.
Als je je daar niet zo om bekommert, verwijder dan gewoon de volledige
directory. Zorg er in ieder geval voor dat er geen `linux
' directory
in /usr/src
voorkomt, voordat je de volledige sourcecode uitpakt.
Pak nu in /usr/src
de source uit met
`tar zxpvf linux-x.y.z.tar.gz
'
(als je slechts een .tar
bestand zonder .gz
aan het einde
hebt, werkt `tar xpvf linux-x.y.z.tar
').
De inhoud van de source zal voorbij vliegen. Als 't klaar is, dan zal er
een nieuwe `linux
' directory in /usr/src
voorkomen.
cd
naar
linux
en lees het bestand README
door.
Er zal een sectie in staan met het label `INSTALLING the kernel
'.
Voer de van toepassing zijnde instructies uit, symbolische links die op
hun plaats zouden moeten staan, verwijdering van oude .o
bestanden,
enz.
Als je een .bz2
bestand en het bzip2 programma hebt (lees erover op
http://www.muraroa.demon.co.uk/
), doe dan het volgende:
bz2cat linux-x.y.z.tar.bz2 | tar xvf -
Opmerking: 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.
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 te veel 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.
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.
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.
Éé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.
(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.
Als 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.
Als 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.
Het 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
'.
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.
Hier 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.
Als 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/
.
Niet 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.
>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.
Nadat je de configuratie hebt beëindigd, krijg je een bericht dat je
kernel is geconfigureerd en de melding
``check the top-level Makefile
for additional configuration,''
enz.
Dus bekijk Makefile
. Je zult het waarschijnlijk niet hoeven
wijzigen, maar het kan nooit kwaad het te bekijken.
Je kunt de opties ervan ook wijzigen met het
commando `rdev
' zodra de nieuwe kernel op z'n plaats staat.
Als het je ontgaat als je het bestand bekijkt, maak je er dan geen zorgen om.