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. Näillä ei ole muuten eroa, paitsi bzImage-kernelin ei tarvi mahtua 640 kilotavun perusmuistiin (PC-koneiden historiallinen jäänne) ja siinä voi siten olla enemmän ominaisuuksia mukana. Joillakin harvoilla koneilla bzImage-kernel ei käynnisty, mutta muuta syytä olla käyttämättä sitä ei ole. zImagen käyttäminen aiheuttaa todennäköisemmin hankaluuksia.

  12. make modules

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

  14. mv /lib/modules/2.4.18 /lib/modules/2.4.18.old

  15. make modules_install

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

  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.4.18-tiedostoon.

Esimerkki 3-2. lilo.conf

             image=/vmlinuz
              label=Linux
              image=/boot/vmlinuz-2.4.18
              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 ytimiin ja debian päivittää nämä linkit 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