8.6. Uuden ytimen kääntäminen

Miksi pitäisi kääntää uusi ydin? Usein se ei olekaan välttämätöntä, sillä Debianin toimittama oletusydin toimii useimmissa laitekokoonpanoissa. Lisäksi Debianissa on usein tarjolla useita vaihtoehtoisia ytimiä. Niinpä kannattaa ensin tarkistaa onko paremmin laitteistoon sopiva vaihtoehtoinen ytimen paketti saatavilla. Saattaa kuitenkin olla hyödyllistä kääntää uusi ydin jotta:

8.6.1. Useita asennettuja ytimiä

Ei pidä pelätä ytimen kääntämistä. Se on hauskaa ja hyödyllistä.

Ytimen kääntämiseksi Debian-tavalla, on ensin asennettava muutamia paketteja: fakeroot, kernel-package, kernel-source-2.6 ja muutamia muita jotka luultavasti ovat jo asennettuina (katso täydellinen luettelo /usr/share/doc/kernel-package/README.gz).

Tällä tavalla ytimen lähdekoodeista kootaan .deb-paketti, ja myös yhteensopiva riippuvaksi merkitty .deb ei-standardeista moduleista jos niitä käytetään. Tämä on parempi tapa käyttää useita ytimiä; hakemistoon /boot tallennetaan ydin, System.map ja koostamisessa käytetty config-tiedosto.

Huomaa, ettei ole pakollista kääntää ydintä Debian-tavalla; mutta mielestämme paketinhallinnan käyttäminen ytimien järjestyksessä pitämiseen on itse asiassa turvallisempaa ja helpompaa. Itse asiassa ytimen lähdekoodin voi noutaa suoraan Linusilta eikä paketista linux-source-2.6 ja silti kääntää ytimen kernel-package-menetelmällä.

Huomaa paketin kernel-package ohjeiden kokonaisuudessaan löytyvän hakemistosta /usr/share/doc/kernel-package. Tässä luvun ohjeet opastavat lyhyesti kädestä pitäen ohjelman käytössä.

Tästä eteenpäin oletetaan käyttäjän voivan tehdä koneellaan mitä vain ja puretaan ytimen lähdekoodit kotihakemiston alle[27]. Myöskin oletetaan ytimen version olevan 2.6.32. Varmistu työhakemiston olevan hakemisto johon ytimen lähdekoodit puretaan, ja pura ne komennolla tar xjf /usr/src/linux-source-2.6.32.tar.bz2 ja vaihda työhakemistoksi linux-source-2.6.32 jonka komento teki.

Nyt on tehtävä ytimen asetukset. Komenna make xconfig jos X11:n asetukset on tehty, se on asennettu ja käynnissä; muussa tapauksessa komenna make menuconfig (libncurses5-dev on oltava asennettuna). Lue käytönaikaiset ohjeet ajan kanssa ja valitse huolellisesti. Jos et ole varma, yleensä parempi ottaa mukaan laiteajuri (ohjelma joka huolehtii oheislaitteista kuiten verkkokorteista, SCSI-ohjaimista ja niin edelleen). On oltava varovainen: valitsimet jotka eivät liity johonkin tiettyyn laitteeseen on parasta jättää oletusarvoonsa jos et ymmärrä niitä. Älä unohda valita Kernel module loader valikosta Loadable module support (se ei ole valittuna oletusarvona). Jos sitä ei oteta mukaan, Debian-asennus kohtaa pulmia.

Siivoa lähdekoodipuu ja nollaa sovelluksen kernel-package parametrit. Tämä tehdään komennolla make-kpkg clean.

Nyt käännetään ydin komennolla fakeroot make-kpkg --initrd --revision=omaydin.1.0 kernel_image. Versionumeron 1.0 voi muuttaa mieleisekseen; sitä käytetään vain ytimen koosteiden versioiden nimeämiseen. Myöskin omaydin tilalle voi kirjoittaa minkä tahansa sanan (esim. konenimen). Ytimen kääntäminen voi kestää hyvän tovin, riippuen kääntävän tietokoneen nopeudesta.

Kun käännös on valmis, oma ydin voidaan asentaa kuten mikä tahansa paketti. Pääkäyttäjänä komennetaan dpkg -i ../linux-image-2.6.32-subarchitecture_custom.1.0_i386.deb. Kohta subarchitecture on valinnainen arkkitehtuurin muunnos, kuten 686, riippuen käytetyistä ytimen valinnoista. Komento dpkg -i asentaa ytimen ja muutamia kivoja aputiedostoja. Esimerkiksi tiedosto System.map asennetaan kuten pitää (se auttaa ytimen vikojen jäljityksessä), asennetaan myös tiedosto /boot/config-2.6.32 jossa on käytetyt ytimen asetukset. Uusi ytimen asennuspaketti on myöskin niin fiksu, että se automaattisesti päivittää käynnistyslataimen käyttämään uutta ydintä. Jos on tehty moduulien paketti, on sekin muistettava asentaa.

Nyt on aika tehdä uudelleenkäynnistys: yllä tehtyjen toimenpiteiden mahdollisesti näyttämät varoitukset on syytä lukea huolella, sitten tehdään shutdown -r now.

Lisätietoja Debianin ytimistä ja ytimen kääntämisestä kertoo Debian Linux Kernel Handbook. Tarvittaessa lisää tietoa sovelluksesta kernel-package, luetaan hienot ohjeet hakemistosta /usr/share/doc/kernel-package.



[27] Ytimen lähdekoodit voi purkaa muuallekin ja kääntää muokatun ytimen, mutta kotihakemisto on yksinkertaisin koska ei tarvita erikoisoikeuksia.