|
1.
Tijdzone
Allereerst moet de tijdzone ingesteld, zodat het systeem weet waar het zich
bevindt. Zoek naar uw tijdzone in /usr/share/zoneinfo en kopieer
deze dan naar /etc/localtime. Gebruik niet de
/usr/share/zoneinfo/Etc/GMT* tijdzones, aangezien de gebruikte
namen niet overeen komen met de zones. GMT-8 is bijvoorbeeld
GMT+8.
Codevoorbeeld 1.1: De tijdzone instellen |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime
|
1.
De sources installeren
Een kernel kiezen
De basis waarop alle distributies gebouwd zijn, is de Linux kernel. Het is de
laag tussen gebruikers programma's en uw hardware. Gentoo biedt zijn
gebruikers verschillende kernelsources. Een volledige lijst met beschrijvingen
is beschikbaar in de Gentoo Kernel
Guide.
Kies een kernel naar keuze en installeer deze met emerge.
Codevoorbeeld 1.1: Een kernel source installeren |
# emerge gentoo-sources
|
Wanneer u een kijkje neemt in /usr/src zou u een symlink genaamd
linux moeten zien. Deze verwijst naar uw kernel source. We zullen
aannemen dat de geïnstalleerde kernelsource gentoo-sources-${kernel-version} is. Uw versie kan echter een andere zijn!
Codevoorbeeld 1.1: De kernel source symlink bekijken |
# ls -l /usr/src/linux
+lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-${kernel-version}
|
Nu is het tijd om uw kernel te configureren en te compileren. U kunt
genkernel hiervoor gebruiken. Deze zal een algemene kernel aanmaken
zoals ook LiveCD gebruikt. We zullen eerst de handmatige manier
uitleggen omdat dit de beste manier is om uw systeem te optimaliseren.
Als u de kernel handmatig wilt configureren, gaat u verder met Standaard: handmatige configuratie. Als u genkernel
wilt gebruiken, dan kunt u verder lezen in Alternatief:
genkernel gebruiken.
1.
Standaard: handmatige configuratie
Introductie
Handmatig een kernel configureren wordt vaak gezien als het moeilijkste dat
een Linux gebruiker ooit uit moet voeren. Niets is minder waar -- na een paar
kernels configureren herinnert u zich niet eens meer dat het ooit moeilijk was
;)
Hoewel, een ding is is waar: u moet uw systeem kennen voordat u de
kernel handmatig gaat configureren. De meeste informatie kunt u vergaren door
pciutils te emergen (emerge pciutils), welke lspci bevat. U kunt
nu lspci binnen de gechroote omgeving gebruiken. U kunt zonder problemen
alle pcilib waarschuwingen negeren (zoals pcilib: cannot open
/sys/bus/pci/devices) die lspci genereert. U kunt ook lspci
vanuit een niet-gechroote omgeving draaien. De resultaten zullen gelijk
zijn. U kunt verder lsmod draaien om te zien welke kernelmodules de LiveCD
gebruikt (het geeft een goede hint wat u aan kunt zetten).
Ga nu naar de kernel sourcemap en voer make menuconfig uit. Dit zal een
configuratiemenu openen.
Codevoorbeeld 1.1: menuconfig starten |
# cd /usr/src/linux
# make menuconfig
|
U zult worden begroet door een serie configuratiesecties. We zullen eerst
enkele opties geven die u zeker aan moet zetten (anders zal Gentoo niet
functioneren, of niet goed zonder enkele extra trucs).
Vereiste opties aan zetten
Om te beginnen activeert u het gebruik van ontwikkelings- en experimentele
code/drivers. Je hebt dit nodig, anders zullen enkele belangrijke codes/drivers
niet te voorschijn komen:
Codevoorbeeld 1.1: Experimentele code/drivers activeren |
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
General setup --->
[*] Support for hot-pluggable devices
|
Zorg dat u iedere driver die essentieel is voor het opstarten van uw systeem
(zoals SCSI controller, ...) in de kernel, en dus niet als module, compileert.
Anders zal uw systeem niet volledig opstarten.
Ga nu naar File Systems en kies ondersteuning voor het bestandssysteem
dat u gebruikt. Compileer deze niet als modules, anders zal het Gentoo
systeem zal de rootpartitie niet kunnen mounten. Kies ook Virtual memory
en /proc file system.
Vergeet niet voor uw schijven DMA aan te zetten:
Codevoorbeeld 1.1: DMA aanzetten |
Device Drivers --->
ATA/ATAPI/MFM/RLL support --->
[*] Generic PCI bus-master DMA support
|
Indien u PPPoE gebruikt om verbinding te maken met het internet of als u een
inbelmodem gebruikt, dan dient u de volgende opties aan te zetten in de kernel:
De twee compressie-opties zullen niets kapot maken, maar ze zijn niet nodig,
net zoals de optie PPP over Ethernet die alleen wordt gebruikt door
ppp als die wordt geconfigureerd om PPPoE in kernelmodus te
draaien.
Als hem nodig heeft, moet u niet vergeten de ondersteuning voor uw netwerkkaart toe
te voegen aan uw kernel.
Codevoorbeeld 1.1: SMP ondersteuning inschakelen |
Processor type and features --->
[*] Symmetric multi-processing support
|
Nota:
In multi-core systemen telt iedere kern (core) als één processor.
|
Als u USB-invoerapparaten gebruikt (zoals toetsenbord of muis),
vergeet dan niet die ook aan te zetten:
Codevoorbeeld 1.1: USB ondersteuning voor Input Devices |
USB Support --->
<*> USB Human Interface Device (full HID) support
|
Compileren en installeren
Nu de kernel is geconfigureerd is het tijd om te compileren en installeren.
Sluit de configuratie af en start het compilatie proces:
Als uw kernel klaar is met compileren, kopieert u de kernel-image naar
/boot. Gebruik een naam die u toepasselijk vindt voor uw
kernel keuze en onthoudt die, want u zult deze bij het configureren van uw
bootlader nodig hebben. Vergeet niet ${kernel-name}
te vervangen door de naam en versie van uw kernel.
Codevoorbeeld 1.1: Het installeren van de kernel |
# cp arch/${arch-sub}/boot/bzImage /boot/${kernel-name}
|
Nu kunt u verder gaan met Kernel Modules.
1.
Alternatief: genkernel gebruiken
Als u dit hoofdstuk leest, heeft u ervoor gekozen om het genkernel script
te geruiken voor de configuratie van uw kernel.
Nu de kernel source is geïnstalleerd, is het tijd om uw kernel te
compileren met behulp van ons genkernel script. Deze bouwt automatisch
een kernel voor u. genkernel werkt door een kernel bijna identiek te
configureren aan de manier waarop onze Installatie CD kernel is geconfigureerd.
Dit betekent dat wanneer u genkernel gebruikt om uw kernel te bouwen,
uw systeem over het algemeen alle apparatuur tijdens het opstarten zal
detecteren, net zoals onze Installatie CD dat doet. Omdat genkernel geen
handmatige configuratie vereist, is het de ideale oplossing voor die gebruikers
die zich niet prettig voelen bij het compileren van hun eigen kernels.
Laten we nu eens kijken hoe we genkernel gebruiken. Emerge genkernel eerst:
Codevoorbeeld 1.1: Genkernel emergen |
# emerge genkernel
|
Compileer nu de kernel sources door genkernel all te draaien. Pas echter
op, omdat genkernel een kernel compileert die bijna alle apparatuur
ondersteunt, kan deze compilatie aardig wat tijd in beslag nemen!
Let op, als uw bootpartitie geen ext2 of ext3 als bestandssysteem gebruikt,
moet u mogelijk handmatig deze ondersteuning in de kernel (dus
niet als een module) moet toevoegen. Gebruik hiervoor genkernel
--menuconfig all en voeg de ondersteuning toe. Gebruikers van EVMS2 of
LVM2 moeten ook --evms2 of --lvm2 als argument toevoegen.
Codevoorbeeld 1.1: Genkernel draaien |
# genkernel all
|
Als genkernel eenmaal klaar is, zal een kernel, een volledige set met
modules en een start-rootschijf (initrd) worden gemaakt. We gebruiken
de kernel en initrd wanneer we de bootlader zullen configureren, verderop
in dit document. Noteer de namen van de kernel en initrd omdat u deze nodig
zult hebben bij de bootlader configuratie. De initrd zal direct worden gestart
na het opstarten om apparatuur autodetectie uit te voeren (net zoals op de
Installatie CD) voordat uw "echte" systeem opstart.
Codevoorbeeld 1.1: De gecreerde kernel image naam en initrd controleren |
# ls /boot/kernel* /boot/initramfs*
|
1.
Kernel Modules
De modules configureren
U moet nu een lijst maken van alle modules die u automatisch wilt laden, doe
dit in /etc/modules.autoload.d/kernel-2.6. Je kunt indien u dit
wilt ook extra opties aan de
modules meegeven.
Om alle beschikbare modules te zien, draait u het volgende find commando.
Vergeet niet om "<kernel-version">> te vervangen met de versie van de door
u zojuist gecompileerde kernel.
Codevoorbeeld 1.1: Alle beschikbare modules vinden |
# find /lib/modules/<kernel-version>/ -type f -iname '*.o' -or -iname '*.ko'
|
Om bijvoorbeeld automatisch de 3x59x.o module te laden, wijzigt u het
kernel-2.6-bestand en zet er de modulenaam in.
Codevoorbeeld 1.1: /etc/modules.autoload.d/kernel-2.6 bewerken |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Codevoorbeeld 1.1: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
Ga verder met (Configuratie van het Systeem).
|