Ero sivun ”Ytimen kääntäminen” versioiden välillä
Ei muokkausyhteenvetoa |
|||
Rivi 7: | Rivi 7: | ||
==Asetusten tekeminen== | ==Asetusten tekeminen== | ||
Jos sinulla on käytössäsi 2.6-sarjan ydin (näet ytimen version komennolla <tt>uname -a</tt>), kannattaa katsoa josko sinulla olisi vanha asetustiedosto (<tt>.config</tt>) jossain. Monissa distroissa se löytyy polusta /boot/kernel-2.6.xxx-config. Jos tällainen | Jos sinulla on käytössäsi 2.6-sarjan ydin (näet ytimen version komennolla <tt>uname -a</tt>), kannattaa katsoa josko sinulla olisi vanha asetustiedosto (<tt>.config</tt>) jossain. Monissa distroissa se löytyy polusta /boot/kernel-2.6.xxx-config. Jos tällainen löytyy, kopioi se kernelin hakemistoon nimelle .config. Tämän jälkeen aja komento <tt>make oldconfig</tt>.<br> | ||
Jos sinulla ei ole vanhaa asetustiedostoa tai jos haluat tehdä itse asetuksia, aja komento <tt>make menuconfig</tt> (yleisin ja toimii lähes aina), <tt>make xconfig</tt> (Graafinen, QT-kirjastoa käyttävä), <tt>make gconfig</tt> (Graafinen, GTK+ -kirjastoa käyttävä), tai <tt>make config</tt> (kysyy kaikki kohdat erikseen, ei suositeltava).<br> | Jos sinulla ei ole vanhaa asetustiedostoa tai jos haluat tehdä itse asetuksia, aja komento <tt>make menuconfig</tt> (yleisin ja toimii lähes aina), <tt>make xconfig</tt> (Graafinen, QT-kirjastoa käyttävä), <tt>make gconfig</tt> (Graafinen, GTK+ -kirjastoa käyttävä), tai <tt>make config</tt> (kysyy kaikki kohdat erikseen, ei suositeltava).<br> | ||
Tämän jälkeen tee haluamasi asetukset (älä kuitenkaan muuta mitään mistä et ole varma). | Tämän jälkeen tee haluamasi asetukset (älä kuitenkaan muuta mitään mistä et ole varma). | ||
Jos haluat antaa kernelille erityisen nimen, editoi Makefile:n ensimmäisiä rivejä. | Jos haluat antaa kernelille erityisen nimen, editoi Makefile:n ensimmäisiä rivejä, mutta uudemmissa menuconfigeissa sen voi myös vaihtaa ensimmäisissä valikoissa. | ||
Myös on syytä muistaa, että mikäli et tee ns. initrd-kerneliä, ''on juuriosion tiedostojärjestelmän ajuri oltava kernelissä''. Initrd-kernelissä taasen käytetään romfs-muotoista ram-levyasemaa. | |||
Jotkut ajurit eivät tällä hetkellä toimi hyvin tiettyjen ajurien kanssa. Osa estää kääntymisen mikäli ne on valittu samanaikaisesti, ja osa ei joka tilanteessa käänny puhtaasti. 2.6 -sarja on kirjoitushetkellä vielä voimakkaan kehityksen alaisena. | |||
Kun konfiguroit kerneliä, on hyvä ottaa lspci -v ja /proc -väylältä tietoa koneesta. cat /proc/cpuinfo kertoo, millainen prosessori tietokoneessa on. Pienin yhteinen nimittäjä x86-koneissa on 80386, joka toimii joka koneessa, on vain hidas. Perusnyrkkisääntönä sanottakoon, että nykyään pienin yhteinen nimittäjä on Pentium. Mikäli aikoo tehdä kernelistään "portattavan" joka toimii koneessa kuin koneessa on 386 hyvä vaihtoehto, mutta konetta räätälöidessä on hyvä valita joko suoraan oikea prosessorityyppi tai sitten lähinnä vastaava. | |||
2.4 -sarjan kerneleissä oli AMD:n prosessorien ja VIA-piirisarjan kanssa ongelmia, joiden vuoksi piti kääntää 686-kerneli jonkin aikaa näihin koneisiin. Vastaavanlaisia ongelmia saattaa edelleenkin esiintyä erityisesti [[bleeding edge]]-tekniikoiden kanssa, kun kehitys ei ole vielä päässyt tarpeeksi pitkälle. | |||
==Kääntäminen== | ==Kääntäminen== |
Versio 29. huhtikuuta 2005 kello 15.33
Kernelin, eli GNU/Linux käyttöjärjestelmän ytimen, kääntämistä pidetään usein erittäin hankalana, mitä se tosiasiassa ei ole. Nykyisin tarve käyttäjän itsensä tekemään kernelin kääntöön on vähentynyt, mutta toimenpide voi olla tarpeellinen esimerkiksi eksoottisempien oheislaitteiden toimimaan saattamiseksi. Toinen yleinen syy on halu optimoida kernelistä pois ominaisuuksia, joille käyttäjä ei koe olevan itsellään tarvetta. Usein vanhentuneessa ohjeessa sanotaan ytimen käännön olevan välttämätöntä, vaikka vaaditut vipuset ovat valittuna jo vakiokernelissä. Tarkista kuinka vanhaa ohjetta luet.
Ytimen hakeminen
kernel.org:ista voi ladata uusimman kernelin kehittäjien julkaiseman ytimen. Nykyään on suositeltavaa käyttää uusinta vakaata 2.6-sarjan ydintä. Kopioi tämä pura sitten paketti (tar xvjf linux-2.6.11.7.tar.bz2) ja siirry uuteen hakemistoon.
On kuitenkin syytä huomata, että kaikki kernelin ulkopuoliset ajurit eivät välttämättä toimi uusimpien lähdekoodien kanssa. Samassa lähdekoodipaketissa olevat koodit luonnollisesti oikein konfiguroituina toimivat, mutta ulkopuoliset ajurit saattavat kieltäytyä kääntymästä sen vuoksi, että kernelistä on kehityksen myötä poistunut jotain tai jokin ajurin kannalta olennainen ominaisuus on ratkaisevasti muuttunut.
Asetusten tekeminen
Jos sinulla on käytössäsi 2.6-sarjan ydin (näet ytimen version komennolla uname -a), kannattaa katsoa josko sinulla olisi vanha asetustiedosto (.config) jossain. Monissa distroissa se löytyy polusta /boot/kernel-2.6.xxx-config. Jos tällainen löytyy, kopioi se kernelin hakemistoon nimelle .config. Tämän jälkeen aja komento make oldconfig.
Jos sinulla ei ole vanhaa asetustiedostoa tai jos haluat tehdä itse asetuksia, aja komento make menuconfig (yleisin ja toimii lähes aina), make xconfig (Graafinen, QT-kirjastoa käyttävä), make gconfig (Graafinen, GTK+ -kirjastoa käyttävä), tai make config (kysyy kaikki kohdat erikseen, ei suositeltava).
Tämän jälkeen tee haluamasi asetukset (älä kuitenkaan muuta mitään mistä et ole varma).
Jos haluat antaa kernelille erityisen nimen, editoi Makefile:n ensimmäisiä rivejä, mutta uudemmissa menuconfigeissa sen voi myös vaihtaa ensimmäisissä valikoissa.
Myös on syytä muistaa, että mikäli et tee ns. initrd-kerneliä, on juuriosion tiedostojärjestelmän ajuri oltava kernelissä. Initrd-kernelissä taasen käytetään romfs-muotoista ram-levyasemaa.
Jotkut ajurit eivät tällä hetkellä toimi hyvin tiettyjen ajurien kanssa. Osa estää kääntymisen mikäli ne on valittu samanaikaisesti, ja osa ei joka tilanteessa käänny puhtaasti. 2.6 -sarja on kirjoitushetkellä vielä voimakkaan kehityksen alaisena.
Kun konfiguroit kerneliä, on hyvä ottaa lspci -v ja /proc -väylältä tietoa koneesta. cat /proc/cpuinfo kertoo, millainen prosessori tietokoneessa on. Pienin yhteinen nimittäjä x86-koneissa on 80386, joka toimii joka koneessa, on vain hidas. Perusnyrkkisääntönä sanottakoon, että nykyään pienin yhteinen nimittäjä on Pentium. Mikäli aikoo tehdä kernelistään "portattavan" joka toimii koneessa kuin koneessa on 386 hyvä vaihtoehto, mutta konetta räätälöidessä on hyvä valita joko suoraan oikea prosessorityyppi tai sitten lähinnä vastaava.
2.4 -sarjan kerneleissä oli AMD:n prosessorien ja VIA-piirisarjan kanssa ongelmia, joiden vuoksi piti kääntää 686-kerneli jonkin aikaa näihin koneisiin. Vastaavanlaisia ongelmia saattaa edelleenkin esiintyä erityisesti bleeding edge-tekniikoiden kanssa, kun kehitys ei ole vielä päässyt tarpeeksi pitkälle.
Kääntäminen
Asetusten tekemisen jälkeen ydin kääntyy yksinkertaisesti komennolla make (helppoa, eikö?)
Jos kääntäminen keskeytyy johonkin virheeseen, on syytä kääntää kriittinen katse asetustiedostoa kohtaan.
Asentaminen
Tässä vaiheessa täytyy kirjautua pääkäyttäjäksi (komento su), jonka jälkeen ytimen moduulit asennetaan komennolla make modules_install. Tämän jälkeen /lib/modules-hakemistoon pitäisi ilmestyä uusi hakemisto jonka nimi on ytimesi nimi (olettaen että mitään virheitä ei satu).
Tämän jälkeen itse ydin voidaan asentaa komennolla make install, jolloin /boot-hakemistoon pitäisi ilmestyä vmlinux-2.6.8 tms. tyylinen tiedosto, joka on itse kerneli.
Käynnistyslatain
Avaa käynnistyslataimesi asetustiedosto (GRUB:illa /boot/grub/menu.lst ja lilolla /etc/lilo.conf) ja lisää sinne uuden ytimen tiedot ottaen mallia vanhoista (ei kannata poistaa vanhoja siltä varalta että ydin ei toimikkaan). Tallennuksen jälkeen lilo:n käyttäjien on asennettava lilo boottisektoriin uudelleen komennolla lilo.
Testaus
Boottaa kone, risti kädet ja toivo parasta!
Viimeistely
Jos ydin toimii, kannattaa luoda /usr/src-hakemistoon symbolinen linkki linux, joka viittaa kernelin lähdekoodihakemistoon (jotkut ohjelmat haluavat päästä käsiksi kääntövaiheessa ajossa olevan ytimen lähdekoodiin).
Säätäminen
On myös olemassa erillaisia muokkauspaketteja (patch) jolla saadaan kerneliin lisää tehoa tai uusia ominaisuuksia. Tutuimmat ovat esimerkiksi nitro, love, ck ja cko paketit.