<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE sections SYSTEM "/dtd/book.dtd">

<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/1.0 -->

<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/nl/handbook/hb-install-x86-kernel.xml,v 1.6 2005/04/07 22:12:06 neysx Exp $ -->

<sections>

<version>2.4</version>
<date>2005-03-29</date>

<section>
<title>Tijdzone</title>
<body>

<p>
Je dient eerst je tijdzone in te stellen zodat je systeem weet waar het zich
bevindt. Zoek naar je tijdzone in <path>/usr/share/zoneinfo</path>, maak er dan
een symlink naar toe vanaf <path>/etc/localtime</path> met behulp van <c>ln</c>:
</p>

<pre caption="De tijdzone instellen">
# <i>ls /usr/share/zoneinfo</i>
<comment>(Stel dat je Amsterdam wil)</comment>
# <i>ln -sf /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime</i>
</pre>

</body>
</section>
<section>
<title>De sources installeren</title>
<subsection>
<title>Een kernel kiezen</title>
<body>

<p>
De basis waarop alle distributies gebouwd zijn, is de Linux kernel. Het is de
laag tussen gebruikers programma's en je systeemapparatuur. Gentoo biedt zijn
gebruikers verschillende kernelsources. Een volledige lijst met beschrijvingen
is beschikbaar in de <uri link="/doc/en/gentoo-kernel.xml">Gentoo Kernel
Guide</uri> (Engelstalig).
</p>

<p>
Voor x86-gebaseerde systemen hebben we, onder andere, <c>vanilla-sources</c>
(de standaard kernelsource die wordt onwikkeld door de linux-kernel
onwikkelaars), <c>gentoo-sources</c> (de kernelsource gepatched met
snelheidsverhogende extras), ...
</p>

<p>
Kies je kernelsource en installeer het door middel van <c>emerge</c>.
</p>

<pre caption="Een kernel source installeren">
# <i>emerge gentoo-sources</i>
</pre>

<p>
Als je een kijkje neemt in <path>/usr/src</path> zou je een symlink genaamd
<path>linux</path> moeten zien. Deze verwijst naar jouw kernelsource. We zullen
aannemen dat de geïnstalleerde kernelsource <c>gentoo-sources-2.6.11-r3</c> is:
</p>

<pre caption="De kernel source symlink bekijken">
# <i>ls -l /usr/src/linux</i>
lrwxrwxrwx    1 root     root           12 Oct 13 11:04 /usr/src/linux -&gt; linux-2.6.11-gentoo-r3
</pre>

<p>
Als jouw symlink niet naar de juiste kernelsource verwijst (let er op dat
<c>linux-2.6.11-gentoo-r3</c> slechts een voorbeeld is), verander deze dan
voordat je verder gaat:
</p>

<pre caption="De kernel source symlink goed zetten">
# <i>rm /usr/src/linux</i>
# <i>cd /usr/src</i>
# <i>ln -s linux-2.6.11-gentoo-r3 linux</i>
</pre>

<p>
Nu is het tijd om je kernel te configureren en te compileren. Je kunt
<c>genkernel</c> hiervoor gebruiken. Deze zal een algemene kernel maken zoals
ook op de LiveCD wordt gebruikt. We zullen eerst de "handmatige" manier
uitleggen omdat dit de beste manier is om je systeem te optimaliseren.
</p>

<p>
Als je je kernel handmatig wilt configureren, ga verder met <uri
link="#manual">Standaard: handmatige configuratie</uri>. Als je <c>genkernel</c>
wilt gebruiken, dan kun je het beste <uri link="#genkernel">Alternatief:
genkernel gebruiken</uri>
</p>

</body>
</subsection>
</section>
<section id="manual">
<title>Standaard: handmatige configuratie</title>
<subsection>
<title>Introductie</title>
<body>

<p>
Handmatig een kernel configureren wordt vaak gezien als het moeilijkste wat
een Linux gebruiker ooit uit moet voeren. Niets is minder waar -- na een paar
kernels configureren herinner je niet eens meer dat het moeilijk was ;)
</p>

<p>
Hoewel, een ding <e>is</e> is waar: je moet je systeem kennen voordat je je
kernel handmatig gaat configureren. De meeste informatie kun je vergaren via
de inhoud van <path>/proc/pci</path> (of, indien beschikbaar, door het gebruik
van <c>lspci</c>). Je kunt ook <c>lsmod</c> draaien om te zien welke
kernelmodules de LiveCD gebruikt (het geeft een goede hint wat je aan moet
zetten).
</p>

<p>
Ga nu naar je kernelsourcemap en voer <c>make menuconfig</c> uit. Dit zal een
configuratiemenu openen wat op ncurses is gebaseerd.
</p>

<pre caption="menuconfig starten">
# <i>cd /usr/src/linux</i>
# <i>make menuconfig</i>
</pre>

<p>
Je zult worden begroet door een serie configuratiesecties. We zullen eerst
enkele opties geven die je zeker aan moet zetten (anders zal Gentoo niet
functioneren, of niet goed zonder enkele extra trucs).
</p>

</body>
</subsection>
<subsection>
<title>Vereiste opties aan zetten</title>
<body>

<p>
Om te beginnen activeer je het gebruik van ontwikkel- en experimentele
code/drivers. Je hebt dit nodig, anders zullen zeer belangrijke code/drivers
niet te voorschijn komen:
</p>

<pre caption="Experimentele code/drivers activeren">
Code maturity level options ---&gt;
  [*] Prompt for development and/or incomplete code/drivers
</pre>

<p>
Zorg dat je iedere driver die essentieel is voor het opstarten van je systeem
(zoals SCSI controller, ...) in de kernel, en dus niet als module, gecompileerd
is. Anders zal je systeem niet volledig opstarten.
</p>

<p>
Selecteer nu de juiste processorfamilie:
</p>

<pre caption="De correcte processor familie kiezen">
Processor type and features ---&gt;
  <comment>(Wijzig aan de hand van je systeem)</comment>
  (<i>Athlon/Duron/K7</i>) Processor family
</pre>

<p>
Ga nu naar <c>File Systems</c> en kies ondersteuning voor het bestandssysteem
dat je gebruikt. Compileer deze <e>niet</e> als modules, anders zal je Gentoo
systeem zal je rootpartitie niet kunnen mounten. Kies ook <c>Virtual memory</c>
en <c>/proc file system</c>. Als je een 2.6 kernel gebruikt (standaard), kies
het <c>/dev file system</c> <e>niet</e>, Gentoo/x86 gebruikt nu standaard
<c>udev</c>. Als je een 2.4 kernel gebruikt, dien je nog steeds <c>/dev file
system</c> te selecteren omdat 2.4 kernels <c>udev</c> niet ondersteunen.
</p>

<pre caption="benodigde file systems kiezen">
<comment>(Met een 2.4.x kernel)</comment>
File systems ---&gt;
  [*] Virtual memory file system support (former shm fs)
  [*] /proc file system support
  [*] /dev file system support (EXPERIMENTAL)
  [*]   automatically mount at boot
  [ ] /dev/pts file system for Unix98 PTYs

<comment>(Met een 2.6.x kernel)</comment>
File systems ---&gt;
  Pseudo Filesystems ---&gt;
    [*] /proc file system support
    [ ] /dev file system support (OBSOLETE)
    [*] Virtual memory file system support (former shm fs)

<comment>(Kies een of meer van de volgende, voor jouw systeem benodigde, opties )</comment>
  &lt;*&gt; Reiserfs support
  &lt;*&gt; Ext3 journalling file system support
  &lt;*&gt; JFS filesystem support
  &lt;*&gt; Second extended fs support
  &lt;*&gt; XFS filesystem support
</pre>

<p>
Als je BIOS geen grote harde schijven ondersteunt en je hebt je harde schijf
met jumpertjes ingesteld om een beperkte grootte door te geven, dan dien je
een van de volgende opties mee te geven om toegang tot je hele harde schijf
te krijgen.
</p>

<pre caption="Autogeometry resizing support aan zetten">
<comment>(alleen 2.4.x kernels)</comment>
ATA/IDE/MFM/RLL support ---&gt;
  IDE, ATA and ATAPI Block devices ---&gt;
    &lt;*&gt;   Include IDE/ATA-2 DISK support
    [ ]     Use multi-mode by default
    [*]     Auto-Geometry Resizing support
</pre>

<p>
Vergeet niet voor je schijven DMA aan te zetten:
</p>

<pre caption="DMA aanzetten">
Device Drivers ---&gt;
  ATA/ATAPI/MFM/RLL support ---&gt;
    [*] Generic PCI bus-master DMA support
    [*]   Use PCI DMA by default when available
</pre>

<p>
Indien je PPPoE gebruikt om verbinding te maken met het internet of als je een
inbelmodem gebruikt, dien je de volgende opties aan te zetten in de kernel:
</p>

<pre caption="Benodigde PPPoE drivers selecteren">
<comment>(Met een 2.4.x kernel)</comment>
Network device support ---&gt;
  &lt;*&gt; PPP (point-to-point protocol) support
  &lt;*&gt;   PPP support for async serial ports
  &lt;*&gt;   PPP support for sync tty ports

<comment>(Met een 2.6.x kernel)</comment>
Device Drivers ---&gt;
  Networking support ---&gt;
    &lt;*&gt; PPP (point-to-point protocol) support
    &lt;*&gt;   PPP support for async serial ports
    &lt;*&gt;   PPP support for sync tty ports
</pre>

<p>
De twee compressie-opties zullen niets kapot maken, maar ze zijn niet nodig,
net zoals de optie <c>PPP over Ethernet</c> die alleen wordt gebruikt door
<c>rp-pppoe</c> als die wordt geconfigureerd om PPPoE in kernelmodus te doen.
</p>

<p>
Als je het nodig hebt, vergeet dan niet ondersteuning voor je netwerkkaart toe
te voegen aan je kernel.
</p>

<p>
Als je een Intel CPU met HyperThreading (tm) ondersteuning hebt, of een
multi-CPU systeem, dien je ook "Symmetric multi-processing support" toe te
voegen:
</p>

<pre caption="SMP ondersteuning inschakelen">
Processor type and features  ---&gt;
  [*] Symmetric multi-processing support
</pre>

<p>
Als je USB-invoerapparaten gebruikt (zoals toetsenbord of muis),
vergeet dan niet die ook aan te zetten:
</p>

<pre caption="USB ondersteuning voor Input Devices">
USB Support ---&gt;
  &lt;*&gt;   USB Human Interface Device (full HID) support
</pre>

<p>
Laptopgebruikers die PCMCIA-ondersteuning willen moeten <e>niet</e> de
PCMCIA-drivers niet gebruiken als zij een 2.4-kernel kiezen. Recentere drivers
zijn beschikbaar via het <c>pcmcia-cs</c> pakket welke we later zullen
installeren. 2.6-kernelgebruikers dienen echter wel de PCMCIA-drivers uit de
kernel te gebruiken.
</p>

<p>
Vergeet niet naast PCMCIA ondersteuning in de 2.6 kernel te compileren ook
ondersteuning voor de in jouw systeem aanwezige PCMCIA card bridge te kiezen.
</p>

<pre caption="PCMCIA ondersteuning in 2.6 kernels aanzetten">
Bus options (PCI, PCMCIA, EISA, MCA, ISA)  ---&gt;
  PCCARD (PCMCIA/CardBus) support  ---&gt;
    &lt;*&gt; PCCard (PCMCIA/CardBus) support
<comment>(selecteer 16 bit als je ondersteuning voor oudere PCMCIA kaarten wil. De meeste mensen willen dit.)</comment>
    &lt;*&gt;   16-bit PCMCIA support
    [*]   32-bit CardBus support
<comment>(selecteer de relevante bridges)</comment>
    --- PC-card bridges
    &lt;*&gt; CardBus yenta-compatible bridge support (NEW)
    &lt;*&gt; Cirrus PD6729 compatible bridge support (NEW)
    &lt;*&gt; i82092 compatible bridge support (NEW)
    &lt;*&gt; i82365 compatible bridge support (NEW)
    &lt;*&gt; Databook TCIC host bridge support (NEW)
</pre>

<p>
Als je klaar bent met het configureren van de kernel, ga je verder met <uri 
link="#compiling">Compileren en installeren</uri>.
</p>

</body>
</subsection>
<subsection id="compiling">
<title>Compileren en installeren</title>
<body>

<p>
Nu de kernel is geconfigureerd is het tijd om te compileren en installeren.
Sluit de configuratie af en start het compilatie proces:
</p>

<pre caption="De kernel compileren">
<comment>(Voor 2.4 kernels)</comment>
# <i>make dep &amp;&amp; make bzImage modules modules_install</i>

<comment>(Voor 2.6 kernels)</comment>
# <i>make &amp;&amp; make modules_install</i>
</pre>

<p>
Als je kernel klaar is met compileren, kopieer je de kernel-image naar
<path>/boot</path>. Vanaf hier nemen we aan dat je versie 2.6.11-r3 van de
<c>gentoo-sources</c> installeert. Gebruik een naam die jij toepasselijk vindt
voor jouw keuze en onthoud hem want je zult hem bij het configureren van je
bootloader nodig hebben.
</p>

<pre caption="De kernel installeren">
# <i>cp arch/i386/boot/bzImage /boot/kernel-2.6.11-gentoo-r3</i>
# <i>cp System.map /boot/System.map-2.6.11-gentoo-r3</i>
</pre>

<p>
Het is ook slim om je kernelconfiguratiebestand naar <path>/boot</path> te
kopiëren, je weet maar nooit :)
</p>

<pre caption="Je kernel configuratie backuppen">
# <i>cp .config /boot/config-2.6.11-gentoo-r3</i>
</pre>

<p>
Ga nu verder met <uri link="#kernel_modules">Losse kernel modules
installeren</uri>
</p>

</body>
</subsection>
</section>
<section id="genkernel">
<title>Alternatief: genkernel gebruiken</title>
<body>

<p>
Als je dit hoofdstuk leest, heb je ervoor gekozen om ons <c>genkernel</c> script
te geruiken voor de configuratie van jouw kernel.
</p>

<p>
Nu je kernelsource is geïnstalleerd, is het tijd om je kernel te
compileren met behulp van ons <c>genkernel</c> script. Deze bouwt automatisch
een kernel voor jou. <c>genkernel</c> werkt door een kernel bijna identiek te
configureren aan de manier waarop onze Installatie CD kernel is geconfigureerd.
Dit betekent dat wanneer je <c>genkernel</c> gebruikt om je kernel te bouwen,
je 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.
</p>

<p>
Laten we nu eens kijken hoe we genkernel gebruiken. Emerge genkernel eerst:
</p>

<pre caption="Genkernel emergen">
# <i>emerge genkernel</i>
</pre>

<p>
Als je een 2.6 kernel gaat configureren, kopier dan de kernel configuratie van
de Installatie CD naar de locatie waar genkernel zoekt naar de standaard
kernel configuratie:
</p>

<pre caption="De Installatie CD kernel config kopieren">
<comment>(Doe dit alleen als je een 2.6 kernel gaat configureren)</comment>
# <i>zcat /proc/config.gz &gt; /usr/share/genkernel/x86/kernel-config-2.6</i>
</pre>

<p>
Compileer nu de kernel sources door <c>genkernel --udev all</c> (voor 2.6
kernels) of <c>genkernel all</c> (voor 2.4 kernels). Pas echter op, omdat
<c>genkernel</c> een kernel compileert die bijna alle apparatuur ondersteunt,
kan deze compilatie aardig wat tijd in beslag nemen!
</p>

<p>
Let op, als je bootpartitie geen ext2 of ext3 als bestandssysteem gebruikt,
moet je mogelijk handmatig deze ondersteuning <e>in</e> de kernel (dus
<e>niet</e> als een module) moet toevoegen. Gebruik hiervoor <c>genkernel
--menuconfig all</c>.
</p>

<pre caption="Genkernel draaien">
<comment>(Voor 2.6 kernels)</comment>
# <i>genkernel --udev all</i>

<comment>(Voor 2.4 kernels)</comment>
# <i>genkernel all</i>
</pre>

<p>
Als <c>genkernel</c> eenmaal klaar is, zal een kernel, een volledige set met
modules en een <e>start-rootschijf</e> (initrd) worden gemaakt. We gebruiken
de kernel en initrd wanneer we de bootloader zullen configureren, verderop
in dit document. Noteer de namen van de kernel en initrd omdat je deze nodig
zult hebben bij de bootloaderconfiguratie. De initrd zal direct worden gestart
na het opstarten om apparatuurdetectie uit te voeren (net zoals op de
Installatie CD) voordat je "echte" systeem opstart.
</p>

<pre caption="De gecreerde kernel image naam en initrd controleren">
# <i>ls /boot/kernel* /boot/initrd*</i>
</pre>

<p>
Laten we nu nog een stap uitvoeren zodat ons systeem nog meer op de Installatie
CD lijkt -- laten we <c>coldplug</c> emergen. De initrd detecteert de apparatuur
die die nodig is om op te starten automatisch, <c>coldplug</c> detecteert de
rest. Om te <c>coldplug</c> te emergen en aan zetten, typ je het volgende:
</p>

<pre caption="Coldplug emergen en aan zetten">
# <i>emerge coldplug</i>
# <i>rc-update add coldplug boot</i>
</pre>

<p>
Als je wil dat je systeem ook op hotplug events reageert, dien je ook
hotplug te installeren en configureren:
</p>

<pre caption="Hotplug emergen en activeren">
# <i>emerge hotplug</i>
# <i>rc-update add hotplug default</i>
</pre>

</body>
</section>
<section id="kernel_modules">
<title>Losse kernel modules installeren</title>
<subsection>
<title>Extra modules installeren</title>
<body>

<p>
Indien van toepassing, zou je enkele ebuilds kunnen emergen voor eventuele
extra appatuur die zich je systeem bevindt. Hier is een lijst van
kernel-gerelateerde ebuilds die je kunt emergen:
</p>

<table>
<tcolumn width="1in"/>
<tcolumn width="4in"/>
<tcolumn width="2in"/>
<tr>
  <th>Ebuild</th>
  <th>Doel</th>
  <th>Commando</th>
</tr>
<tr>
  <ti>nvidia-kernel</ti>
  <ti>NVIDIA drivers voor xorg-x11</ti>
  <ti><c>emerge nvidia-kernel</c></ti>
</tr>
<tr>
  <ti>nforce-audio</ti>
  <ti>On-board audio voor NVIDIA NForce(2) moederborden</ti>
  <ti><c>emerge nforce-audio</c></ti>
</tr>
<tr>
  <ti>e100</ti>
  <ti>Intel e100 Fast Ethernet Adapters</ti>
  <ti><c>emerge e100</c></ti>
</tr>
<tr>
  <ti>e1000</ti>
  <ti>Intel e1000 Gigabit Ethernet Adapters</ti>
  <ti><c>emerge e1000</c></ti>
</tr>
<tr>
  <ti>emu10k1</ti>
  <ti>
    Creative Sound Blaster Live!/Audigy ondersteuning (alleen voor 2.4 kernels)
  </ti>
  <ti><c>emerge emu10k1</c></ti>
</tr>
<tr>
  <ti>ati-drivers</ti>
  <ti>ATI Radeon 8500+/FireGL drivers voor xorg-x11</ti>
  <ti><c>emerge ati-drivers</c></ti>
</tr>
</table>

<p>
Pas echter op, sommige van deze ebuilds kunnen veel afhankelijkheden hebben. Om
te controleren welke pakketten zullen worden geïnstalleerd, gebruik je
<c>emerge --pretend</c>. Bijvoorbeeld voor het <c>emu10k1</c> pakket:
</p>

<pre caption="Volledige lijst van te installeren pakketten">
# <i>emerge --pretend emu10k1</i>
</pre>

<p>
Als je al deze pakketten die geïnstalleerd zouden worden niet wilt, kun je
met <c>emerge --pretend --verbose</c> kijken wel USE-vlaggen worden gebruikt
bij het uitzoeken van de afhankelijkheden:
</p>

<pre caption="gebruik van USE-vlaggen bekijken">
# <i>emerge --pretend --verbose emu10k1</i>
<comment>...</comment>
[ebuild  N    ] media-sound/aumix-2.8  +gpm +nls +gtk +gnome +alsa -gtk2
</pre>

<p>
In het vorige voorbeeld kun je zien dat een van <c>emu10k1</c>'s
afhankelijkheden (<c>aumix</c>) gebruikt maakt van de <c>gtk</c> en <c>gnome</c>
USE-vlaggen. Dit zorgt ervoor dat gtk-ondersteuning (wat steunt op xorg-x11)
er bij in gecompileerd wordt.
</p>

<p>
Als je niet wilt dat dit alles er in zit, deselecteer alle USE-vlaggen:
</p>

<pre caption="Emu10k1 emergen met alle USE-vlaggen gedeselecteerd">
# <i>USE="-gpm -nls -gtk -gnome -alsa" emerge --pretend emu10k1</i>
</pre>

<p>
Als je tevreden bent met de resultaten, haal je de <c>--pretend</c> weg om
<c>emu10k1</c> te installeren.
</p>

</body>
</subsection>
<subsection>
<title>De modules configureren</title>
<body>

<p>
Je moet een lijstje maken van alle modules die je automatisch wilt laden, doe
dit in <path>/etc/modules.autoload.d/kernel-2.4</path> (of
<path>kernel-2.6</path>). Je kunt indien je dit wilt ook extra opties aan de
modules meegeven.
</p>

<p>
Om alle beschikbare modules te zien, draai je het volgende <c>find</c> commando.
Vergeet niet om "&lt;kernel version&gt;" te vervangen met de versie van de door
jou zojuist gecompileerde kernel.
</p>

<pre caption="Alle beschikbare modules vinden">
# <i>find /lib/modules/&lt;kernel version&gt;/ -type f -iname '*.o' -or -iname '*.ko'</i>
</pre>

<p>
Om bijvoorbeeld automatisch de <c>3x59x.o</c> module te laden, wijzig je het
<path>kernel-2.4</path>- of <path>kernel-2.6</path>-bestand en zet er de
modulenaam in.
</p>

<pre caption="/etc/modules.autoload.d/kernel-2.4 bewerken">
<comment>(Voorbeeld voor 2.4 kernels)</comment>
# <i>nano -w /etc/modules.autoload.d/kernel-2.4</i>
</pre>

<pre caption="/etc/modules.autoload.d/kernel-2.4 of kernel-2.6">
3c59x
</pre>

<p>
Draai nu <c>modules-update</c> om je veranderingen door te voeren in het
<path>/etc/modules.conf</path> bestand:
</p>

<pre caption="Modules-update draaien">
# <i>modules-update</i>
</pre>

<p>
Ga verder met <uri link="?part=1&amp;chap=8">Configuratie van het Systeem</uri>.
</p>

</body>
</subsection>
</section>
</sections>
