Gentoo Logo

Gentoo Linux ytimen päivitys-opas

Sisällysluettelo:

1.  Johdanto

Ydin on yksi niistä harvoista portagen pakettiluokista, joka vaatii hieman käsin puuttumista, jotta päivitys saadaan suoritettua. Portage lataa ja asentaa ytimen lähdekoodit sinulle, mutta sitten on sinun aika astua kuvaan ja kääntää uusi ydin, ennenkuin muutokset astuvat voimaan.

Vaikka tämä opas on kohdistettu käyttäjille, jotka päivittävät ydin-julkaisusta toiseen, se sopii myös niille käyttäjille, jotka siirtyvät ydin-paketista toiseen.

gentoo-sourcesia on käytetty esimerkkinä tässä dokumentissa, kuitenkin ohjeet pätevät myös muita paketteja käytettäessä.

2.  Miksi päivittää ydin uudempaan versioon?

Yleisesti ottaen, päivittäminen pienten ytimen muutosten jälkeen, ei tuo mitään suuria muutoksia. On muutamia syitä päivittää uudempaan ytimeen. Yksi syy on, saada hyötykäyttöön jokin uusi ominaisuus tai ajuri; toinen on, suojautua turvallisuushaavoittuvuudelta, tai vain pitää järjestelmä päivitettynä ja kunnossa.

Vaikka et päättäisikään päivittää jokaiseen uuteen ytimen tarkistukseen, on suositeltavaa päivittää ainakin silloin tällöin. On erittäin suositeltavaa päivittää heti uudenpaan versioon, jos se ratkaisee turvallisuusongelman.

3.  Hankitaan uuden ytimen lähdekoodit portagesta

Voit päivittää ytimen lähdekoodin, niinkuin päivittäisit minkä tahansa toisen paketin - käyttämällä emergeä. Päivittämisen haluat varmaankin suorittaa siinä tapauksessa, jos näet uuden päivityksen ilmestyvän world-päivityslistallesi. Esimerkiksi:

Koodilistaus 3.1: Uuden kernelin lähdekoodit ovat ilmestyneet päivityslistalle

# emerge -Dup world
Calculating dependencies ...done!
[ebuild    NS ] sys-kernel/gentoo-sources-2.6.39-r3 [2.6.38-r6]

Huomaa: NS(New Slot)-merkintä ylläolevassa tulosteessa tarkoittaa sitä, että uusi ydin asennetaan uuteen paikkaa, ja vanhan ytimen lähdekoodit jätetään paikoilleen, kunnes ne käsin poistat.

Nyt voit jatkaa ja asentaa päivityksen, esimerkiksi:

Koodilistaus 3.2: Päivitetään uudempaan kernelin lähdekoodiin

# emerge -u gentoo-sources

Ytimen lähdekoodit asennetaan /usr/src:n alihakemistoon. Yläpuolella olevassa esimerkissä ytimen lähdekoodit asennettiin /usr/src/linux-2.6.39-gentoo-r3-hakemistoon.

4.  Päivitetään /usr/src/linuxin symbolinen linkki

Gentoo vaatii, että /usr/src/linuxin symbolinen linkki osoittaa käytössä olevan ytimen lähdekoodiin.

Portage voi päivittää symbolisen linkin automaattisesti, kun käytät emergeä uuden ytimen lähdekoodin asennukseen. Ainoa asia, mitä sinun pitää tehdä, on lisätä symlink-asetus USE-muuttujana /etc/portage/make.confiin.

Koodilistaus 4.1: Esimerkki USE-muuttujasta /etc/portage/make.conf:issa

(Lisää symlink-avainsana)
USE="symlink x86 3dnow 3dnowex X aac aalib adns alsa apache2"

Myös app-admin/eselectillä voi päivittää symlinkin.

Koodilistaus 4.2: Symlink eselectillä

(Asenna eselect, jos se puuttuu)
# emerge eselect
(Luetteloi käytettävät ytimet)
# eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.39-gentoo-r3
  [2]   linux-2.6.38-gentoo-r6 *
(Aseta sopiva ydin)
# eselect kernel set 1
(Varmista että muutos toimi)
# eselect kernel list
  [1]   linux-2.6.39-gentoo-r3 *
  [2]   linux-2.6.38-gentoo-r6

Symlinkin päivitys on myös mahdollista tehdä käsin:

Koodilistaus 4.3: Päivitetään /usr/src/linux:in symbolinen linkki käsin

# cd /usr/src
# ln -sfn linux-2.6.39-gentoo-r3 linux

5.  Tehdään asetukset, käännetään ja asennetaan uusi ydin

Molemmissa tapauksissa, saat ohjeita Gentoo-käsikirjasta kappaleista Ytimen asetusten tekeminen ja Käynnistyslataimen asetusten tekeminen. Alla on pääpiirteet vaadituista toimenpiteistä:

Vaihtoehto 1: Automaattinen ytimen asettaminen Genkernelillä

Jos olet genkernel-käyttäjä, sinun täytyy vain toistaa ne vaiheet, jotka kävit läpi asentaessasi ytimen ensimmäisellä kerralla.

Ajat vain genkernelin normaalilla tavalla:

Koodilistaus 5.1: Genkernelin käynnistys

# genkernel all

Voit myös käyttää ylimääräisiä parametrejä käyttääksesi muitakin genkernel toimintoja. Esimerkiksi, jos haluat asettaa joitakin ytimen lisävalintoja, käyttämällä menuconfigia ja haluat genkernelin automaattisesti päivittävän grub-käynnistyslataimen asetukset, silloin käytä genkerneliä seuraavasti:

Koodilistaus 5.2: Käynnistetään genkernel muutamalla yleisellä argumentilla

# genkernel --menuconfig --bootloader=grub all

Lisätietojen saamiseksi noudata ohjetta Gentoo Linux Genkernel Guide tai käytä Gentoo-käsikirjaa. Monet valinnat voit asettaa genkernelin asettelutiedostossa, /etc/genkernel.conf. Lisää ohjeita Gentoo-wikisivulla Initramfs HOWTO.

Vaihtoehto 2: Asetusten tekeminen käsin

Aloittaaksesi, avaa menuconfig ytimen lähdekoodi-hakemistossa:

Koodilistaus 5.3: Menuconfigin käynnistys

# cd /usr/src/linux
# make menuconfig

Tee vaadittavat valinnat laitteistoasi ja järjestelmääsi varten. Lisätietojen saamiseksi ytimen asettamisesta, käytä kappaletta Ytimen asetusten tekeminen, joka löytyy Gentoo-käsikirjasta.

Käännä seuraavaksi ydin ja kopioi se boot-osioon. Jälleen kerran käytä Gentoo-käsikirjaa ja sieltä löytyy ohjeita tähän aiheeseen kappaleesta Käynnistyslataimen asetusten tekeminen. Jos /boot on erillisellä osiolla, varmistu että se on liitetty ennenkuin kopioit käännetyn ytimen tähän hakemistoon! Jos tässä menee jotain pieleen, et saa järjestelmääsi käynnistymään uudella ytimellä.

Koodilistaus 5.4: Käännetään ja asennetaan uusi kerneli

# make && make modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot/kernel-2.6.39-gentoo-r3

Lopuksi sinun pitäisi päivittää käynnistyslataimen tiedot, lisää merkintä uudesta kernelistä (älä poista vielä vanhaa!) ja irrota /boot-osio. Jälleen kerran käytä Gentoo-käsikirjaa saadaksesi yksityiskohtaisempia ohjeita tähän menettelyyn.

6.  Asennetaan uudestaan ulkoiset moduulit

Jos käytät moduuleja, joita ei ole sisällytetty ytimen lähdekoodiin, mutta löytyvät kyllä muualta portagesta (esim. NVIDIA- tai ATI-näytönohjaimen ajurit tai ALSA), silloin sinun täytyy asentaa ne uudelleen ytimen päivittämisen jälkeen. Tämän voit tehdä helposti käyttämällä emergeä. Lisätietoa saat kappaleesta Ytimen asetusten tekeminen, joka löytyy Gentoo-käsikirjasta.

Portagessa on tuki pakettijoukolle @module-rebuild, jolla voi kääntää kernelin mdouulit jotka ovat erillisissä ebuildeissa (kuten app-laptop/tp_smapi). Tämä kääntää ne sitä kerneliä varten joka on hakemistossa /usr/src/linux. Kernelin kääntämisen jälkeen komento emerge @module-rebuild kääntää ajurimoduulit.

7.  Moduuliasetusten päivitykset

Jos moduuliasetuksissa tiedostossa /etc/conf.d/modules on versioituja asetuksia, ne pitää päivittää vastaavasti.

Koodilistaus 7.1: Moduulien asetusten teko tiedostoon /etc/conf.d/modules

# Seuraava asetus lataa ieee1394-moduulin vain 2.6.38-gentoo-r6-versiossa
modules_2_6_38_gentoo_r6="ieee1394"

# Automaattinen lataus toimii ilman versiotunnuksia kaikille versioille:
modules="ohci1394"

8.  Käynnistetään uuteen kerneliin

Sulje seuraavaksi kaikki sovellukset ja käynnistä järjestelmäsi uudelleen. Jos seurasit yläpuolella olleita ohjeita oikein, käynnistyslataimen valikon pitäisi nyt sisältää merkinnät uudesta ytimestä. Valitse uusi ydin ja anna järjestelmän käynnistyä.

Toivottavasti järjestelmäsi käynnistyy onnistuneesti uudella ytimellä ja voit kirjautua sisään jatkaaksesi sitä mitä olit tekemässä. Tässä tapauksessa päivitys on suoritettu loppuun.

Jos olet tehnyt virheitä ja järjestelmä ei käynnisty uudella ytimellä, käynnistä järjestelmä uudelleen valitsemalla käynnistimenlataimesta merkintä, joka vastaa viimeksi toiminutta ydintä. Sen jälkeen voit käydä läpi uudestaan Tehdään asetukset, käännetään ja asennetaan uusi ydin kohdan — tehdäksesi sopivat muutokset korjaamaan aiemmat virheesi. Jossain tapauksissa sinun ei tarvitse edes uudelleenkäynnistää tehdäksesi tämän(esim. jos sinulta jäi huomaamatta ajurit äänikortille, verkkokortille, jne.)

9.  Käytetään useampia ytimiä

Olet ehkä huomannut, että kun asensit lähdekoodit uutta ydintä varten, vanhan ytimen lähdekoodeja ei poistettu. Näin on suunniteltu — se sallii sinun helposti vaihtaa kahden eri kernelin välillä.

Vaihtaminen monen ytimen välillä on niinkin helppoa, kuin jättää ytimen lähdekoodit /usr/src/-hakemistoon ja jättää kernel-binäärit /boot-osiollesi (joihin käynnistyslataimeen asetetut merkkinnät viittaavat). Joka kerta kun käynnistät järjestelmän, sinulle näytetään valintaruutu, josta valitset millä ytimellä haluat käynnistää järjestelmän.

10.  Poistetaan vanhat kernelit

Jatketaan edellisestä kappaleesta eteenpäin. Sinä saatat olla tyytyväinen uuteen ytimeesi, eikä sinulla liene tarvetta säilyttää kernelin vanhempaa versiota. Lähdekoodit saa poistettua helposti, koskematta uusimman ytimen lähdekoodeihin, käyttämällä hyväksi emergen prune-valitsinta. Jatketaan esimerkissä eteenpäin käyttämällä gentoo-sourcesia:

Koodilistaus 10.1: Karsitaan vanhat versiot pois

# emerge -P gentoo-sources

Useimmissa tapauksissa, väliaikaistiedostot joita käytettiin suoritettaessa kääntämistä, ovat vieläkin lähdekoodi-hakemistossaan /usr/src:ssa. On aivan turvallista poistaa nämä, käyttämällä komentoa rm.

Voit myös turvallisesti poistaa moduulit, joita tämä ydin käytti. Tämä voidaan tehdä poistamalla hävitettävään kerneliin liittyvät hakemistot /lib/modules/-hakemistosta. Ole varovainen, ettet vain poista käytettävään ytimeen kuuluvia moduuleita!

Lopuksi voit liittää /boot-osiosi ja poistaa hävitettävän ytimen kernel-tiedostot. Sinun pitäisi myös muokata käynnistyslataimen asetuksia, niin että se ei enään viittaa poistettuun ytimeen(tai ytimiin).

11.  Edistyneemmille: Käytetään vanhan ytimen .config-tiedostoa asetettaessa uutta

Joskus on mahdollista säästää aikaa, käyttämällä vanhan ytimen asetus-tiedostoa, kun teet asetuksia uuteen kerneliin. Huomaa, että tämä ei ole turvallista — liikaa muutoksia ydinten julkaisujen välillä, jotta tämä olisi luotettava tapa päivittää.

Näin toimiminen on sopivaa vain, kun päivitetään yhdestä Gentoo-tarkistuksesta toiseen. Esimerkiksi, muutokset gentoo-sources-2.6.9-r1:n ja gentoo-sources-2.6.9-r2:n välillä, ovat erittäin pieniä, eli on yleensä hyväksyttävää käyttää tätä tapaa. Ei ole kuitenkaan sopivaa käyttää sitä esimerkissä, jota olemme käyttäneet läpi tämän dokumentin: päivittäminen 2.6.8:sta 2.6.9:ään. Liiaksi muutoksia näiden virallisten versioiden välillä, ja alla kuvattu tapa ei näytä tarpeeksi tietoa käyttäjälle, mikä johtaa usein ongelmiin, koska käyttäjältä jää pois valintoja, joita hän ei todellakaan haluaisi jättää pois.

Käyttääksesi vanhaa .configia uudelleen, sinun täytyy vain ottaa siitä kopio ja sen jälkeen suorita make oldconfig. Seuraavassa esimerkissä me otamme asetukset gentoo-sources-2.6.9-r1:stä ja tuomme ne gentoo-sources-2.6.9-r2:een.

Koodilistaus 11.1: Vanha config uudelleenkäyttöön

# cd /usr/src/linux-2.6.9-gentoo-r2
# cp ../linux-2.6.9-gentoo-r1/.config .
# make oldconfig

Koodilistaus 11.2: Vanha config genkernelin kanssa

# cd /etc/kernels
# cp kernel-config-x86-2.6.9-gentoo-r1 kernel-config-x86-2.6.9-gentoo-r2
# genkernel all

Tässä vaiheessa sinulta saatetaan tiedustella vastauksia asetusvalintoihin, jotka ovat muuttuneet kahden version välillä. Kun olet suorittanut tämän vaiheen, voit kääntää ja asentaa ytimesi aivan normaalisti, eikä sinun tarvitse käydä läpi menuconfigia.

Turvallisempaa on vain kopioida config edellä mainitulla tavalla ja suorittaa make menuconfig. Tällä välttää make oldconfigin ongelmat, koska make menuconfig kuitenkin lataa vanhat asetukset siinä missä pystyy. Sitten tarvitsee vain käydä läpi uudet ja muuttuneet asetukset. Menuconfigin avulla niistä näkee helpommin kontekstia ja asetusten merkitysten tarkastelu helpottuu. Näin voi hoitaa myös päivitykset kuten versiosta 2.6.8 versioon 2.6.9, tarkistaa vain uudet asetukset.

12.  Ongelmia ytimen päivittämisen jälkeen?

Johtuen jatkuvasta Linux-ydinten kehittelystä, on väistämätöntä, että jotkut tehdyt muutokset ydin-julkaisujen välillä, voivat aiheuttaa ongelmia. Jos sinulla on ilmennyt jotain ongelmia viimeisten julkaisujen kanssa, jotka löydät osoitteesta Tuettuja ytimen paketointeja, ilmoitathan siitä meille.



Tulostettava muoto

Tämä sivu on viimeksi päivitetty 17. syyskuuta 2013

Tämän tekstin alkukielistä versiota ei enää ylläpidetä

Tiivistelmä: Tämä dokumentti kuvailee prosessin ytimen päivittämisestä julkaisusta toiseen.

Daniel Drake
Tekijä

rogk
Kääntäjä

Flammie Pirinen
Vastuullinen kääntäjä

Donate to support our development efforts.

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