<?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/2.5 -->

<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/nl/handbook/hb-install-x86-kernel.xml,v 1.10 2006/06/12 10:49:03 neysx Exp $ -->

<!-- Sync: 1.61 -->

<sections>

<version>3.12</version>
<date>2006-05-28</date>

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

<p>
Allereerst moet de tijdzone ingesteld, zodat het systeem weet waar het zich
bevindt. Zoek naar uw tijdzone in <path>/usr/share/zoneinfo</path> en kopieer
deze dan naar <path>/etc/localtime</path>. Gebruik niet de
<path>/usr/share/zoneinfo/Etc/GMT*</path> tijdzones, aangezien de gebruikte
namen niet overeen komen met de zones. <path>GMT-8</path> is bijvoorbeeld
GMT+8.
</p>

<pre caption="De tijdzone instellen">
# <i>ls /usr/share/zoneinfo</i>
<comment>(Stel dat u Amsterdam wilt gebruiken)</comment>
# <i>cp /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 uw hardware. 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 ontwikkeld door de linux-kernel
onwikkelaars), <c>gentoo-sources</c> (de kernelsource gepatched met
snelheidsverhogende extra's), ...
</p>

<p>
Kies uw kernelsource en installeer die met behulp van <c>emerge</c>. De
<c>USE="-doc"</c> optie is nodig om te voorkomen dat xorg-x11 of een ander
afhankelijk pakket wordt geïnstalleerd. <c>USE="symlink"</c> is niet nodig
voor een nieuwe kernel, maar zorgt er wel voor dat <path>/usr/src/linux</path>
op de juiste manier wordt gelinkt.
</p>

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

<p>
Wanneer u een kijkje neemt in <path>/usr/src</path> zou u een symlink genaamd
<path>linux</path> moeten zien. Deze verwijst naar uw kernel source. We zullen
aannemen dat de geïnstalleerde kernelsource <c>gentoo-sources-2.6.12-r10</c> is.
Uw versie kan echter een andere zijn!
</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.12-gentoo-r10
</pre>

<p>
Nu is het tijd om uw kernel te configureren en te compileren. U kunt
<c>genkernel</c> 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.
</p>

<p>
Als u de kernel handmatig wilt configureren, gaat u verder met <uri
link="#manual">Standaard: handmatige configuratie</uri>. Als u <c>genkernel</c>
wilt gebruiken, dan kunt u verder lezen in <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 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 
;)
</p>

<p>
Hoewel, een ding <e>is</e> is waar: u moet uw systeem kennen voordat u de
kernel handmatig gaat configureren. De meeste informatie kunt u vergaren door
pciutils te emergen (<c>emerge pciutils</c>), welke <c>lspci</c> bevat. U kunt
nu <c>lspci</c> binnen de gechroote omgeving gebruiken. U kunt zonder problemen
alle <e>pcilib</e> waarschuwingen negeren (zoals pcilib: cannot open
/sys/bus/pci/devices) die <c>lspci</c> genereert. U kunt ook <c>lspci</c>
vanuit een <e>niet-gechroote</e> omgeving draaien. De resultaten zullen gelijk
zijn. U kunt verder <c>lsmod</c> draaien om te zien welke kernelmodules de LiveCD
gebruikt (het geeft een goede hint wat u aan kunt zetten).
</p>

<p>
Ga nu naar de kernel sourcemap en voer <c>make menuconfig</c> uit. Dit zal een
configuratiemenu openen.
</p>

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

<p>
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).
</p>

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

<p>
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:
</p>

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

<p>
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.
</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 uw 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 u gebruikt. Compileer deze <e>niet</e> als modules, anders zal het Gentoo
systeem zal de rootpartitie niet kunnen mounten. Kies ook <c>Virtual memory</c>
en <c>/proc file system</c>. Als u een 2.4 kernel gebruikt, kies dan het 
<c>/dev file system</c>, omdat 2.4 kernels <c>udev</c> niet ondersteunen.
</p>

<pre caption="Benodigde bestandssystemen 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 /dev 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
    [*] 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 uw BIOS geen grote harde schijven ondersteunt en u hebt uw harde schijf
met jumpertjes ingesteld om een beperkte grootte door te geven, dan dient u
één van de volgende opties mee te geven om toegang tot uw 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 uw 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 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:
</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 
draaien.
</p>

<p>
Als hem nodig heeft, moet u niet vergeten de ondersteuning voor uw netwerkkaart toe
te voegen aan uw kernel.
</p>

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

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

<note>
In multi-core systemen telt iedere kern (core) als één processor.
</note>

<p>
Als u 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 u 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 u klaar bent met het configureren van de kernel, gaat u 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 uw kernel klaar is met compileren, kopieert u de kernel-image naar
<path>/boot</path>. 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 <path>&lt;kernel-version&gt;</path>
te vervangen door de naam en versie van uw kernel.
</p>

<pre caption="Het installeren van de kernel">
# <i>cp arch/i386/boot/bzImage /boot/&lt;kernel-version&gt;</i>
</pre>

<p>
Ga nu verder met <uri link="#kernel_modules">Kernel Modules</uri>
</p>

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

<p>
Als u dit hoofdstuk leest, heeft u ervoor gekozen om het <c>genkernel</c> script
te geruiken voor de configuratie van uw kernel.
</p>

<p>
Nu de kernel source is geïnstalleerd, is het tijd om uw kernel te
compileren met behulp van ons <c>genkernel</c> script. Deze bouwt automatisch
een kernel voor u. <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 u <c>genkernel</c> 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.
</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 u 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 u 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 all</c> te draaien. 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 uw bootpartitie geen ext2 of ext3 als bestandssysteem gebruikt,
moet u 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> en voeg de ondersteuning toe. Gebruikers van EVMS2 of
LVM2 moeten ook <c>--evms2</c> of <c>--lvm2</c> als argument toevoegen.
</p>

<pre caption="Genkernel draaien">
# <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 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.
</p>

<pre caption="De gecreerde kernel image naam en initrd controleren">
# <i>ls /boot/kernel* /boot/initramfs*</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, typt het volgende:
</p>

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

</body>
</section>
<section id="kernel_modules">
<title>Kernel Modules</title>
<subsection>
<title>De modules configureren</title>
<body>

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

<p>
Om alle beschikbare modules te zien, draait u het volgende <c>find</c> commando.
Vergeet niet om "&lt;kernel version&gt;" te vervangen met de versie van de door
u 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, wijzigt u 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>
Ga verder met <uri link="?part=1&amp;chap=8">Configuratie van het Systeem</uri>.
</p>

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