Miten käännän ytimen?

Huomaa: Ytimen kääntämistä ei suositella aloittelijoille! Toisin kuin Linuxin alkuaikoina, ytimen kääntäminen on nykyisin harvemmin tarpeellista. On suositeltavaa tutustua Linuxiin jonkun aikaa, ennen kuin yrität kääntää ydintä itse. Jollet ole aiemmin kääntänyt mitään ohjelmia, on suositeltavaa myös tutustua pintapuolisesti käännöksessä käytettyjen työkalujen, kuten make, toimintaperiaatteeseen.

Varmista että ytimen lähdekoodi on asennettu. Levityksen mukana toimitettava löytyy /usr/src/linux/-hakemistosta, mutta itse asennetun lähdekoodin voi kääntää myös kotihakemistonsa alla normaalina käyttäjänä, mikä on 2.4-ytimillä ja uudemmilla suositeltavin tapa.

Kun ensimmäistä kertaa valitset ytimeen mukaan otettavia ominaisuuksia, lue ohjeet jokaisen valinnan kohdalta. Siellä kerrotaan lisää kyseisestä ominaisuudesta ja annetaan suosituksia, joita kannattaa noudattaa, jos ei todella tiedä itse paremmin. Ytimestä on mahdollista poistaa paljon ominaisuuksia, jotka ovat normaalikäytössä hyvin oleellisia, mutta usein tarpeettomia johonkin erityiskäyttöön tarkoitetussa järjestelmässä.

Ytimen kääntö on ytimekkäästi tässä (tähdellä [*] merkityt kohdat ovat vapaaehtoisia):

  1. Tarkista, että sinulla on toimiva hätäkäynnistyslevyke tai vastaava siltä varalta, että itse kääntämäsi ydin ei pysty käynnistymään laitteistossasi.

  2. Asenna ytimen lähdekoodi, jos sitä ei ole vielä asennettu.

  3. Jos asensit levityksesi mukana tulevan lähdekoodin, tarkista, että hakemisto /usr/src/linux on olemassa ja lähdekoodi on todella asennettu hakemiston alle.

  4. Vanhemmissa levityksissä (erityisesti Redhat Linuxin versiot 6.2 ja vanhemmat), /usr/include/asm ja /usr/include/linux ovat symbolisia linkkejä, jotka osoittavat yleensä hakemistoihin /usr/src/linux/include/asm ja /usr/src/linux/include/linux. Tässä tapauksessa täytyy tarkistaa, että linkit osoittavat olemassaoleviin hakemistoihin. Ajanmukaisissa järjestelmissä nämä ovat normaaleja hakemistoja, eikä niihin pidä koskea.

  5. Siirry hakemistoon, jossa on ytimen lähdekoodi. Usein tämä on hakemisto /usr/src/linux. Tässä hakemistossa ajetaan käännökseen liittyvät komennot, sillä käännöstä ohjaava make-ohjelma hakee toimintaohjeensa työhakemistossa sijaitsevasta Makefile-tiedostosta.

    Ytimen kääntämisen aikana näytölle tulee runsaasti tekstiä, mikä on aivan normaalia. Muista tarkistaa, onnistuiko kääntäminen todella, vai onko viimeinen näytöllä oleva teksti virheilmoitus (error).

    Varoitus

    Varmista ennen jokaisen vaiheen aloittamista, että edelliset vaiheet on suoritettu onnistuneesti. Jos et ole varma asiasta, älä jatka ytimen kääntämistä. Ole erityisen varovainen asentaessasi uutta ydintä käyttöön, koska siinä tapahtuneet virheet voivat estää koko järjestelmän toiminnan.

  6. aja haluamasi patchit (päivitykset) ytimeen. [*]

  7. make mrproper, nykyään tarpeeton. [*]

  8. make config, make menuconfig tai make xconfig ja säädä ytimesi asetukset kuntoon.

  9. make dep

  10. make clean

  11. make bzImage tai mahdollisesti sen sijaan make zImage. bzImage toimii ainoastaan 2.2-sarjan ja uudemmissa kerneleissä. Sitä käyttämällä kernel voi olla isompi, koska sen ei tarvi mahtua käynnistysvaiheessa 640 kilotavun perusmuistiin.

  12. make modules

  13. rm -rf /lib/modules/2.2.10.old

  14. mv /lib/modules/2.2.10 /lib/modules/2.2.10.old

  15. make modules_install

  16. cp /usr/src/linux/arch/i386/boot/bzImage /boot/kernel-2.2.10

  17. cp /usr/src/linux/System.map /boot/System.map

  18. muokkaa lilon asetukset kuntoon

  19. asenna lilo.

  20. muokkaa moduulien asetukset kuntoon

  21. Käynnistä kone uudelleen.

Lisää tietoa löytyy Kernel HOWTOsta ja tiedostosta /usr/src/linux/README.

Lilo

Jos käytät liloa kopioi vanha ydin /boot-hakemistoon ja lisää lilo.conf osoittamaan siihen. Jätä myöskin mahdollisuus käynnistää vanha ydin.

Tässä eräs tapa. /vmlinuz on symbolinen linkki /boot/vmlinuz-2.2.7-tiedostoon.

Esimerkki 3-2. lilo.conf

         image=/vmlinuz
          label=Linux
          image=/boot/vmlinuz-2.0.35
          label=old
       


Ytimen kääntö Debianissa

Debianissa ytimen kääntöä on helpotettu huomattavasti. kernel-package paketti sisältää apuohjelman, joka kääntää ytimen ja tekee siitä automaattisesti deb-paketin. /vmlinuz ja vmlinuz.old ovat symbolisia linkkejä /boot-hakemistossa oleviin ytimeihin ja debian päivittää nämä automaattisesti. Tässä pieni ohje miten kääntäminen tapahtuu:

  1. make config, menuconfig tai xconfig

  2. make-kpkg clean

  3. make-kpkg --revision=custom.1.0 kernel_image

  4. dpkg --install ../kernel-image-X.XXX_1.0_<arch>.deb

  5. shutdown -r now

Lisää tietoa saat tiedostosta /usr/doc/kernel-package/README.gz