Kernel

Uit Linuxdocs.nl

Ga naar: navigatie, zoeken

Inhoud

Een nieuwe kernel installeren

Wanneer u op het internet een nieuwere versie van uw kernel ziet (kernels zijn te downloaden op http://www.kernel.org) Dan kunt u van deze locatie de nodige pakketten ophalen. Deze pakketten zijn echter niet altijd in RPM formaat maar veelal in tar.gz formaat. De installatie wijze die ik ga vertellen heeft betrekking op het tar.gz formaat.

Ik neem hier aan dat u het bestand heeft gedownload en heeft opgeslagen in de dir /usr/src.
Ga naar de directory /usr/src en pak uw kernel bronnen met tar uit

[root@michaell.net root]# cd /usr/src
[root@michaell.net src]# tar xzf /root/linux-2.6.xx.tar.gz
[root@michaell.net src]# _

Ontwikkelingen opgeven

Omdat een kernel feitelijk een programma is moet u uit de geïnstalleerde kernel bronnen nog een programma worden gegenereerd. Voor dit doel moet de ontwikkelomgeving van de C-compiler geïnstalleerd zijn. Voor het tot stand brengen van een kernel heeft u geen programmeer kennis nodig. Het enige wat u hoeft te doen is het opgeven van de gewenste stuurprogramma's en onderdelen in een menu. Wilt u de configuratie met behulp van een grafische interface uitvoeren dan hebt u aanvullend nog de scripttaal tcl nodig en de TK toolkit.
Hebt u tijdens de Linux installatie niet voor de ontwikkelingsomgeving tcl of tk opgegeven dan moet u dat alsnog doen. Dat gaat bijvoorbeeld met het pakketbeheer programma gnorpm. De noodzakelijke pakketten vind u in de groep Development, tcl en tk vind u onder Development/languages.

Kernel configuratie

Nu zijn we aanbeland in de configuratie van de kernel, wat enige tijd in beslag zal nemen.
Ga naar de directory waarin de bronnen van de kernel versie opgeslagen zijn, in het vorige stuk was dat /usr/src/linux-2.6.xx

[root@michaell.net root]# cd /usr/src/linux-2.6.xx
[root@michaell.net linux]# _

De configuratie kan zowel in de tekst modus als ik de x-windows omgeving via een console worden uitgevoerd.
Wanneer u over een werkend x-window systeem beschikt raad ik u aan dat te gebruiken omdat dit aanzienlijk gemakkelijker is. Even afgezien van het gemak zijn er verder geen verschillen tussen deze 2 configuratie varianten.

Start het x-window systeem als u dat nog niet gedaan heeft met het commando startx
Ga naar de directory /usr/src/linux-2.6.xx en geef de opdracht make xconfig, op een tekst console doet u dat met het commando make menuconf
Eerst verschijnen er enkele tekst regels: de configuratie word voorbereid. Na enkele seconden verschijnt er het menu met de naam Linux kernel configuration
Geef nooit een prossesor op die sneller is dan de prossesor die u daadwerkelijk heeft want dan zal de kernel niet werken.
Stel alle opties juist in. Het maken van een kernel is niet eenvoudig en vereist dat u weet wat voor hardware uw pc bezit. U kunt het beste even van te voren de opdracht: lspci -vv geven, om te zien welke hardware en drivers uw pc heeft en in gebruik heeft.
Nu bent u klaar: alle bereiken van de configuratie zijn aan bod gekomen, en aansluitend kunt u de nieuwe instellingen opslaan.
Keer onder X-window met de knop Main Page terug naar de startpagina van het configuratie programma en varlaat dit programma met de knop Save and exit
In de tekst modus keert u terug met de knop Exit naar het hoofdmenu

De Linux kernel compileren

De gemaakte instellingen hebben na compilatie nog geen effect op de werking van het Linux systeem. Pas nadat de computer opnieuw is opgestart, worden deze instellingen actief.

Opruimen met make dep clean

Als eerste moeten de eventuele restjes van eerdere kernel compilatie worden verwijderd. Dat gaat met de volgende opdracht:<p />

[root@michaell.net linux]# make dep clean

Er verschijnen nu een flink aantal regels waarna de bash-prompt weer verschijnt

De kernel compileren met make zImage

Start nu de feitelijke compilatie met de opdracht

[root@michaell.net linux]# make zImage

Let op!! u schrijft zImage en dus niet zimage [denk om de hoofdletter I]
Het compileren is afhankelijk van de snelheid van uw systeem en kan enkele minuten tot meer dan een uur in beslag nemen. Deze tijd is ook afhankelijk van het aantal stuurprogramma's dat u heeft geactiveerd. Aan het einde van het proces is er een gecomprimeerd kernel bestand met de naam zImage aanwezig dat zig in de directory /usr/src/linux-2.2.xx/arch/i386/boot bevind

Kernel te groot?

Wanneer u tijdens de compilatie de kernel te groot blijkt te zijn vanwege het aantal stuurprogramma's, krijgt u hierover een foutmelding. In dat geval moet u een zogenaamde big kernel image maken - een iets anders opgebouwde kernelbestand dat wel met grote kernels overweg kan. Geef daartoe deze compilatie opdracht.<p />

[root@michaell.net linux]# make bzImage

[let op de hoofdletter I]

De modules compileren en installeren

Nu moet u nog de kernelmodulles maken en installeren. Dat gaat met het commando:

[root@michaell.net linux]# make modules modules_install

Ook deze stap neemt enige tijd in beslag. Er wordt een nieuwe directory met de naam /lib/modules/2.2.xx gemaakt, en in deze directory worden de kernelmodules geplaatst

De kernel installeren

Onder RedHat Linux dienen kernels in de directory /boot te staan anders zal de kernel nog niet werken.
U kunt zich beter aan de conventie houden en uw nieuwe kernel opslaan onder de naam vmlinuz-2.2.xx, omdat u zo makkelijk een bootdisk kan maken voor deze versie anders raakt u misschien later in de war bij het maken van een bootdisk voor DEZE kernel versie
<p>Geef nu het volgende commando aan uw Linux systeem:

[root@michaell.net linux]# cp arch/i386/boot/zImage /boot/vmlinuz-2.2.xx

Gebruik bzImage inplaats van zImage wanneer u een 'grote' kernel wilt maken wat tegenwoordig vaak het geval is

Een tweede kernel in de LILO configuratie opnemen.

Voer de volgende stappen alleen uit wanneer u de bootmanager LILO gebruikt om Linux en/of een ander OS op te starten. Dit is altijd het geval als Linux het enige besturingsysteem op de computer is.

Ik ga er hier vanuit dat u de kernel heeft opgeslagen onder /boot/vmlinuz-2.6.xx, in het LILO opstartmenu wilt opnemen. Open met een editor het bestand /etc/lilo.conf [de makkelijkste is emacs geef dan dit commando emacs /etc/lilo.conf]
U vindt daar uitgaande van de standaard installatie, een sectie met de volgende inhoud

image=/boot/vmlinuz-2.2.14-50
label=linux
root=/dev/hda1
read-only

De inhoud van de regel root= is afhankelijk van uw configuratie. Voeg direct voor of achter deze sectie een kopie van deze 4 regels toe. Verander dan het laatste van deze secties de regel label=linux in b.v. label=linux2. Deze nieuwe sectie is dan verantwoordelijk voor de start van de aanvullende kernel [dus bij een LILO bootprompt moet u in dit geval linux2 intypen voor het starten van de nieuwe kernel]
Vervang daar ook de volgende regel

image=/boot/vmlinuz-2.2.14-50

door deze regel

image=/boot/vmlinuz-2.2.xx

Uw bestand ziet er nu zo uit als u het goed hebt gedaan

image=/boot/vmlinuz-2.2.14-50
label=linux
root=/dev/hda1
read-only
image=/boot/vmlinuz-2.6.xx
label=linux2
root=/dev/hda1
read-only

Sla dit bestand op met de toetsen [ctrl]+X of [ctrl]+c of sluit het venster en geef een ja op
Schrijf nu het bestand in uw MBR met de opdracht

[root@michaell.net root]# lilo
Added linux  *
Added Linux2
(Added dos)

De laatste regel Added dos ziet u alleen als u ook een windows of dos besturingssysteem heeft opgenomen in LILO

Om uw nieuwe glanzende kernel op te starten herstart u het systeem en geeft bij de LILO prompt de opdracht linux2

Een tweede kernel in de grub configuratie opnemen

De meeste Linux gebruiken tegenwoordig de boot manager grub inplaats van lilo.
Indien u gebruikt maakt van grub gaat u als volgt te werk.

Zoek het grub.conf bestand op (vaak te vinden in /etc of /etc/grub). Dit is namelijk het configuratiebestand van grub.
Op sommigen Linuxen heet dit bestand menu.lst en is te vinden en /boot/grub. Een voorbeeld hiervan is Debian

[root@localhost ~]# vim /boot/grub/menu.lst

Voeg in dit bestand de volgende regels toe:

title           Debian GNU/Linux, kernel 2.6.29.3
root            (hd0,3)
kernel          /boot/vmlinuz-2.6.xx root=/dev/hda4 ro quiet

Deze regels doen het volgende:

  • title: De naam van het besturingssysteem zoals die in de lijst komt met te booten besturingssystemen.
  • root: De lokatie van de bootpartitie. hd0,3 betekend hier: eerste schijf, 4e partitie.
  • kernel: Het volledig pad naar de Linux kernel. De optie root geeft het pad aan naar het apparaatbestand van de schijf en partitie waar de / aangekoppeld moet worden. ro staat voor Read-only en de optie quiet zal alle kernel regels die normaal voorbij flitsen tijdens het booten verbergen.

Sla dit bestand op en herstart naar uw nieuwe kernel.

opmerking:

Een kernel installeren kan zeer lastig zijn om te doen en vooral als u een beginnende gebruiker bent dus hebt u vragen AARZEL dan niet om een bezoekje te brengen aan ons forum.

Veel plezier met uw nieuwe kernel!



How-TO's | Programma How-TO's | Hoofdpagina | Forum | Linux Nieuws | Externe links


Persoonlijke instellingen