Gentoo Linux ytimen päivitys-opas
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 |
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ä |
# emerge eselect
# eselect kernel list
Available kernel symlink targets:
[1] linux-2.6.39-gentoo-r3
[2] linux-2.6.38-gentoo-r6 *
# eselect kernel set 1
# 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.
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/bzImage-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.
Tarjoamme sinulle helppokäyttöisen työkalun
(sys-kernel/module-rebuild), mikä rakentaa uudelleen ytimen
moduulit, jotka ole asentanut käyttäen erillisiä ebuildeja.
Uudelleenrakennettavat moduulit valitaan siitä
mikä on hakemistossa /usr/src/linux. Sen käyttö on yksinkertaista.
Asentamisen jälkeen ajetaan module-rebuild populate, joka
täyttää tietokannan pakettiluettelolla. Kun ydin on päivitetty, komennolla
module-rebuild rebuild asennetaan ajurit uutta ydintä vasten.
Lisätietoja komennosta saa ajamalla sen ilman parametrejä.
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 |
modules_2_6_38_gentoo_r6="ieee1394"
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ää
bzImage-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 bzImage-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.
Tämän sivun sisältö ja suomennos kuuluvat
Creative Commons - Nimi mainittava-Sama lisenssi 2.5 -lisenssin alle.
Sivun sisältöä koskee myös
Gentoo Name and
Logo Usage Guidelines.
|