Gentoo Logo

Disclaimer : Dit document is niet juist en is niet meer onderhouden.


Gentoo Linux Kernel Upgrade Gids

Inhoud:

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

(Toevoegen van de symlink USE optie)
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

(Installeer eselect, indien je die niet hebt)
# emerge eselect
(Bekijk de lijst van beschikbare kernels)
# eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.9-gentoo-r1
  [2]   linux-2.6.9-gentoo-r2
(Selecteer de correcte kernel)
# 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.



Print

Upgedate op 23 juli 2006

De originele versie van dit document wordt niet meer onderhouden

Korte inhoud: Dit document beschrijf het proces om de kernel te upgraden van de ene versie naar de andere.

Daniel Drake
Auteur

Dimitry Bradt
Vertaler

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.