Disclaimer :
Dit document is niet juist en is niet meer onderhouden.
|
Gentoo Linux Kernel Upgrade Gids
1.
Inleiding
De kernel is een vand e weinige pakketten in de portage die manuele interventie
vereisen om de upgrade te vervolledigen. De portage zal de kernel bronnen voor
jouw downlaoden en installeren, maar het is jouw taak om die te compileren
vooraleer de veranderingen effect zullen hebben.
Hoewel deze gids gericht is tot gebruikers die van de ene kernel uitgave naar
de andere willen overschakelen, het kan ook gebruikt worden om van de ene
kernel pakket over schakelen naar een andere.
gentoo-sources wordt in dit document gebruikt, hoewel, de instructies
hier zijn ook van toepassing van andere pakketten die beschikbaar zijn in onze
huidige portage.
2.
Waarom een kernel upgraden?
Meestal, zal een kernel upgrade niet veel verschil met zich meebrengen. Er zijn
verschillende redenen waarom je best je kernel upgrade. Een is om het voordeel
te hebben de nieuwe drivers te kunnen gebruiken, die enkele nieuwe
eigenschappen hebben; een andere is om veilig te zijn tegen veiligheid
kwetsbaarheid, of gewoon om een up-to-date en gezond systeem te hebben.
Zelfs als je verkiest om de kernel niet up te daten bij elke revisie, is het
aangeraden dat je op zen minst van tijd tot tijd update. Het is erg aangeraden
dat je meteen upgrade naar een nieuwe kernel als deze versie een veiligheid
probleem oplost.
3.
Het verkrijgen van nieuwe bronnen via de Portage
Je kunt je kernel bronnen update net zoals je een andere pakket zou updaten -
namelijk met het emerge commando. Je zal waarschijnlijk dit pakket
willen updaten als die in je world-update verschijnt. Bijvoorbeeld:
Codevoorbeeld 3.1: Nieuwe kernel bronnen verschijnen in de update lijst |
# emerge -Dup world
Calculating dependencies ...done!
[ebuild NS ] sys-kernel/gentoo-sources-2.6.9-r2 [2.6.8-r5]
|
Nota:
De "NS" hier betekent dat de kernel zal geinstalleerd worden in een Nieuw
Slot, m.a.w de bronnen van je oude kernel zullen gehouden worden, todat je
die manueel verwijderd.
|
Je kunt verdergaan en de update installeren, bvb.:
Codevoorbeeld 3.2: Upgraden van je kernel bronnen |
# emerge -u gentoo-sources
|
De sources zullen geinstalleerd worden in een onderliggende map van
/usr/src. In het bovenstaande voorbeeld, zal de nieuwe kernel
geïnstalleerd worden in /usr/src/linux-2.6.9-gentoo-r2.
4.
Updaten van de /usr/src/linux snelkoppeling
Gentoo verondersteld dat de /usr/src/linux snelkoppeling gelinkt
is met de bron die je nu gebruikt.
De portage kan de snelkoppeling automatisch updaten wanneer je een nieuwe
kernel installeerd. Het enige dat je moet doen is de symlink optie
instellen in de USE variabelen in /etc/make.conf.
Codevoorbeeld 4.1: Voorbeeld van USE variabelen in /etc/make.conf |
USE="symlink x86 3dnow 3dnowex X aac aalib adns alsa apache2"
|
Als alternatief, kun je ook app-admin/eselect gebruiken om de
snelkoppeling aan te passen.
Codevoorbeeld 4.2: Gebruiken van eselect om de snelkoppeling aan te passen |
# emerge eselect
# eselect kernel list
Available kernel symlink targets:
[1] linux-2.6.9-gentoo-r1
[2] linux-2.6.9-gentoo-r2
# eselect kernel set 1
|
Als je dit echt zelf wilt doen, toont het volgende voorbeeld hoe je een
snelkoppeling kunt maken die linkt naar linux-2.6.9-gentoo-r2:
Codevoorbeeld 4.3: Manueel updaten van de /usr/src/linux snelkoppeling |
# cd /usr/src
# ln -sfn linux-2.6.9-gentoo-r2 linux
|
5.
Configureren, compileren en installeren van de nieuwe kernel
Voor elk van deze opties, raadpleeg je best de instructies die gegeven worden
in het Gentoo Handboek die gerelateerd zijn
met het Configureren van de kernel en configureren van de
Bootloader. Hieronder ise ne korte samenvatting van de vereiste acties:µ
Optie 1: Automatiche kernel installetie met Genkernel
Als je een genkernel gebruiker bent, moet je gewoon de stappen doorlopen die je
gedaan hebt bij het installeren van je eerste kernel.
Voer gewoonweg genkernel op de normale manier:
Codevoorbeeld 5.1: Aanhalen van genkernel |
# genkernel all
|
Je kunt ook extra parameters meegeven voor andere genkernel functionaliteiten.
Bijvoorbeeld, moest je willend at de kernel extra opties gebruikt bij
menuconfig en je wilt dat de genkernel automatisch je grub bootloader
configuratie update, voer dan genkernel als volgt uit:
Codevoorbeeld 5.2: Aanhalen van genkernel met wat extra argumenten |
# genkernel --menuconfig --bootloader=grub all
|
Voor meer info, volg de Gentoo Linux
Genkernel Gids, of raadpleeg naar het Gentoo
Handboek. Veel van de opties kunne ingesteld worden in het configuratie
bestand van genkernel, /etc/genkernel.conf.
Optie 2: Manuale configuratie
Om te beginnen, open het menuconfig programma in de kernel bron map:
Codevoorbeeld 5.3: Aanhalen van menuconfig |
# cd /usr/src/linux
# make menuconfig
|
Selecteer de opties die benodigd zijn voor je hardware en besturingsomgeving.
VOor extra informatie over de kernel configuratie, raadpleeg het hoofdstuk
configuratie van de kernel van het Gentoo Handboek.
Vervolgens, compileer je kernel en copieer het in je boot partitie. Nogmaals,
volg de uitgestippelde instructies in het hoofdstuk configuratie van de
bootloader van hetGentoo
Handboek Als /boot een gescheiden partitie is, controleer
dan dat het gemount is vooraleer je de gecompileerde kernel in deze map
kopieert! Moest je dit niet juist zal je systeem niet opstarten met je nieuwe
kernel.
Codevoorbeeld 5.4: Compileren en installeren van de nieuwe kernel |
# make && make modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.9-gentoo-r2
|
Uiteindelijk zou je moeten de bootloader configuratie aanpassen, en een stuk
bijtypen voor je nieuwe kernel (Wis de oude nog niet!) en unmount de
/boot partitie. Raadpleeg daarna het Gentoo Handboek voor gedetailleerde details voor
instructies van deze procedure.
6.
Herinstalleren van bestaande modules
Als je enige kernel modules gebruikt die niet in de kernel bronnen zitten, maar
die ergens anders beschikbaar zijn gesteld in de portage (zoals ALSA drivers en
NVIDIA of ATI grafische drivers), dan moet je die herinstalleren na een
upgrade van je kernel. Dit doe je door de pakketten te herinstalleren met
emerge. Voor meer informatie, raadpleeg het hoofdstuk Configuratie
van de Kernel in het Gentoo Handboek.
We leveren een handige tool voor je (sys-kernel/module-rebuild) die alle
geïnstalleerde mdouels installeerd die een aparte ebuild gebruikt. Zijn gebruik
is ongecompliceerd. Na het emergen, voer gewoon weg module-rebuild
populate uit om in de database een lijst te stoppen met pakketten die
moeten hercompileerd moeten worden na het upgraden van een kernel. Eenmaal je
klaar nent met upgraden en hercompileren van je kernel, voer module-rebuild
rebuild uit om de drivers van je nieuwe kernel te herinstalleren.
Voor meer informatie, voer module-rebuild uit zonder opties, en je zult
een lijst zien van alle commando's die kunnen meegeven worden bij dit programma
7.
Herstarten van je systeem in je nieuwe kernel
Sluit vervolgens alle aplicaties en herstart je systeem, Als je bovenstaande
instructies correct hebt gevolgt, zou het bootloader menu tevoorschijn moeten
komen met een extra lijn voor de nieuwe kernel. Selecteer de nieuwe kernel en
laat het systeem erin starten.
Hopelijk start je systeem met succes je nieuwe kernel, en kun je terug
inloggen en verder doen met wat je bezig was, Als dit het geval is, is je
upgrade voltooid.
Als je een foutje hebt gemaakt, en je systeem weigert te starten in je nieuwe
kernel, herstart dan je systeem en selecteer de laatst-werkende kernel uit de
lijst van je bootloader. Daarna kun je herstarten vanaf het Configureren, compileren en installeren van de nieuwe
kernel hoofdstuk -- Breng de correcte veranderingen aan. Soms, moet je
niet herstarten om problemen op te lossen (bijvoorbeeld, je hebt een driver
vergeten te herinstalleren voor je audio aparaat, ethernet adapter, enz.)
8.
Meerdere kernels gebruiken
Je hebt waarschijnlijk gemerkt, terwijl je de bronnenv an je nieuwe kernel
instalelerde, je huidige kernel niet werd verwijderd. Dit is zo ontworpen --
Het laat je toe om meerdere kernels te gebruiken en laat je toe gemakkelijk te
wisselen tussen de twee verschillende kernels.
Het wisselen tussen meedere kernels, is gewoongweg de oude kernel bronnen laten
staan in /usr/src/ en het bzImage bestand laten staan
in je /boot partitie (en je referentie in je boot loader
configuratie). Elke keer je herstart, zul je een lijst krijgen met beschikbare,
geïnstalleerde kernels, die je kunt opstarten.
9.
Verwijderen van oudere kernels
Verdergaand met het onderwerp van het vorige hoofdstuk, kun je ook je oude
kernel bronnen verwijderen, moest je teverden van de werking van je nieuwe
kernel. Om gemakkelijk alle bronnen van een bepaalde kernel te verwijderen
behalve de nieuweste, kun je gberuik maken van de prune optie die
beschikbaar is gemaakt in het emerge commando. Verdergaand met het
voorbeeld van het gebruik van gentoo-sources:
Codevoorbeeld 9.1: Pruning van een oudere kernel versies |
# emerge -P gentoo-sources
|
In de meeste gevallen, zullen voorlopige installie-bestanden blijven staan
onder de aangewezen bronmap in /usr/src. Het is veilig om deze te
verwijderen met het rm commando.
Je kunt ook op een veilige manier elke module verwidjeren die gebruikt wordt
door deze kernel. Dit kan worden bereikt door de aangewezen mappen in
/lib/modules/ te verwijderen. Opgepast: verwijder niet de modules
die behoren tot de kernels die je nog gebruikt!
Uiteindelijk, kun je je /boot partitie terug mounten en (het)
bzImage bestand(en) voor de kernel(s) die je aan het verwijderen
bent. Best past je ook je bootloader configuratie bestand aan zodat hij niet
langer verwijst naar zulke kernel(s).
10.
Geavanceerd: Je oude kernel configuratiebestand gebruiken om je nieuwe
te configureren.
Het is soms mogelijk om tijd te besparen door je configuratie bestand van je
oude kernel te gebruiken om je nieuwe te configureren. Merk op dat dit meestal
nei veilig is -- te veel veranderingen tussen elke kernel uitgave voor een
betrouwbare upgrade patch.
De enige situatie waar dit, aangeraden is, is wanneer je upgrade van een gentoo
kernel revisie naar een andere. Bijvoorbeeld, bij het veranderen tussen
gentoo-sources-2.6.9-r1 en gentoo-sources-2.6.9-r2. Dit zal erg
miniem zijn, dus is het meestal OK om deze methode te volgen. Hoewel, het niet
aangraden is waneer met upgrade van 2.6.8 naar 2.6.9. Te veel veranderingen
worden gemaakt tussen officiële uitgaves, en de methode die dit beschrijft,
geeft geen genoeg context naar de gebruiker weer, die meestal resulteerd in een
gebruiker die in problemen komt doordat ze opties uitschakelen die ze echt niet
willen uitschakelen.
Om je oude .config opnieuw te gebruiken, kopieer je die simpelweg
naar de nieuwe map, voer dan make oldconfig uit. In het volgende
voorbeeld, nemen we het configuratie bestand van gentoo-sources-2.6.9-r1
en voegen we die in gentoo-sources-2.6.9-r2.
Codevoorbeeld 10.1: Hergebruiken van je oude configuratiebestand |
# cd /usr/src/linux-2.6.9-gentoo-r2
# cp ../linux-2.6.9-gentoo-r1/.config .
# make oldconfig
|
Codevoorbeeld 10.2: Hergebruiken van je oude configuratie met genkernel |
# cd /etc/kernels
# cp kernel-config-x86-2.6.9-gentoo-r1 kernel-config-x86-2.6.9-gentoo-r2
# genkernel all
|
Op dit moment, kun je gevraagd worden vragen te antwoorden over configuratie
opties, die veranderd zijn tussen twee versies. Eenmaal je dit hebt gedaan, kun
je compileren en installeren zoals je normaal zou doen, zonder door het
menuconfig configuratie proces te moeten gaan.
11.
Problemen na een kernel upgrade?
Met de snelle ontwikkeling van de Linux kernel, is het mogelijk dat
veranderingen van de ene kernel uitgave naar de andere problemen opleveren. Als
problemen ondervindt met de laatste versie of een Gentoo-ondersteunde kernels
gelieve de problemen ons te rapporteren.
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|