Fedora kerneli kompileerimine: erinevus redaktsioonide vahel

Allikas: Pingviini viki
Mine navigeerimisribaleMine otsikasti
Resümee puudub
 
(ei näidata sama kasutaja 2 vahepealset redaktsiooni)
8. rida: 8. rida:
Kogu õpetuse võib sisuliselt jagada kaheks. Esimene osa on [[Fedora]] spetsiifiline õpetus, mille tulemuseks on vastav kerneli [[rpm]] pakett, mida on võimalik jagada ka kõigile teistele kasutajatele.
Kogu õpetuse võib sisuliselt jagada kaheks. Esimene osa on [[Fedora]] spetsiifiline õpetus, mille tulemuseks on vastav kerneli [[rpm]] pakett, mida on võimalik jagada ka kõigile teistele kasutajatele.


Teine osa õpetusest näitab aga kerneli kompileerimist üldiselt ja see osa õpetusest peaks sobima kõigile erinevatele süsteemidele.
Teine osa õpetusest näitab aga kerneli kompileerimist üldiselt ja see osa õpetusest peaks sobima kõigile erinevatele süsteemidele. ''(Teise osa tõlkimine on hetkel pooleli).''




105. rida: 105. rida:
  EXTRAVERSION = -custom-2.6.18.2
  EXTRAVERSION = -custom-2.6.18.2
==Kerneli seadistamine==
==Kerneli seadistamine==
Nüüd käivitage käsk:
make menuconfig
mis toob Teile ette kerneli seadistusmenüü. Valige ''Load an Alternate Configuration File'' ja valige sealt ''.config''.


==Hangime Kerneli lähtekoodi==
[[Pilt:Fck1.png]]
Nüüd on paras aeg hankida endale Kerneli lähtekood. Kõige õigem on ta tõmmata kataloogi /usr/src, seega esimesena liikuge sinna kataloogi:
cd /usr/src
Nüüd on paras aeg kindlaks teha, mis Kernelit soovite endale paigaldada. Kõik erinevad Linuxi 2.6 seeria Kernelid leiate http://www.kernel.org/pub/linux/kernel/v2.6/ valige endale sealt meelepärane välja. Näiteks otsustasite valida ''linux-2.6.18.1.tar.bz2'' Kerneli. Siis selle saate alla tõmmata:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2
Kui sobiv Kernel on alla  tõmmatud, siis tuleb ta lahti pakkida ja luua link kataloogile ''/usr/src/linux''. Edaspidistes käskudes jälgige, et sisestaksite ikka oma tõmmatud Kerneli numbri.
tar xjf linux-2.6.18.1.tar.bz2
ln -s linux-2.6.18.1 linux
cd /usr/src/linux
==Lisame Kernelile mõned paigad (valikuline)==
Vahest on vaja lisada Kernelile mõned paigad/täiustused. Näiteks riistvara tugi, mida pole ametlikult Kernelis. Või soovite lisada virtualiseerimise toe, mida vaikimisi Kernel veel ei toeta.


Näiteks tõmbasite endale Kernelile mõeldud paiga (path) - ''patch.bz2'' kataloogi /usr/src kataloogi. Nüüd on aeg see path lisada Kerneli lähtekoodile (olete endiselt /usr/src/linux kataloogis)
[[Pilt:Fck2.png]]
  bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
   
See käsk ainult testib, et kas saab antud pathi Kernelile lisada. Kui sellega Teil mingeid veateateid ei tule, siis võite alles käivitada teise käsu.
Nüüd võite liikuda mööda erinevaid menüüsid ja sisse viia endale sobivad muudatused. Kas siis luua mõned lisamoodulid, või need hoopis eemaldada jne. Kui olete lõpetanud, siis valige ''Exit'' ja vastake küsimusele ''Do you wish to save your new kernel configuration?'' ''Yes'' (jah).
bzip2 -dc /usr/src/patch.bz2 | patch -p1
Selle käsuga siis lisasite soovitud pathi oma Kerneli lähtekoodile.


Näiteks soovite endale luua viimast 2.6.19-r4 Kernelit. Neid Kerneleid välja pole lastud vaid ongi just lisatud ainult vajaminevad paigad stabiilsele 2.6.18 Kernelile (just 2.6.18 Kernelile, mitte enam selle vigade parandustele 2.6.18.1 jne)
[[Pilt:Fck3.png]]
Seega tuleb Teil alla tõmmata ''patch-2.6.19-rc4.bz2'' ja 2.6.18 Kerneli lähtekood. Ehk siis sellisel juhul oleks kogu tegevus järgmine (algusest peale):
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
tar xjf linux-2.6.18.tar.bz2
ln -s linux-2.6.18 linux
wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.19-rc4.bz2
cd /usr/src/linux
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1
==Kerneli seadistamine==
Nüüd oleme jõudnud järgmise sammuni oma Kerneli kompileerimisel. Nimelt Kerneli seadistamiseni. Samas on igati kasulik hoida oma hetke Kerneli seadistus alles, et seda saaks uuesti kasutada ja muudatusi sisse viia. Kopeerime selle /boot partitsioonile (või kataloogi):
cp /boot/config-`uname -r` ./.config
Nüüd on aeg siis käivitada Kerneli peamine seadistusprogramm - menuconfig
make menuconfig
See avab Teile Kerneli seadistuste menüü, sealt valige ''Load an Alternate Configuration File'' ja valige ''.config''. Sellega laete oma praeguse töötava Kerneli seadistuste faili (eelnevalt tegite sellest koopia).


==Kerneli rpm paketti loomine==
Nüüd pole muud, kui luua oma kernelist ka rpm pakett. Selleks käivitage järgnev käsk:
make rpm
Peale seda leiate uue [[src.rpm]] paketti ''~/rpmbuild/SRPMS/'' kataloogis. Näiteks: ''~/rpmbuild/SRPMS/kernel-2.6.18custom2.6.18.2-1.src.rpm''.


[[Pilt:Ukmenu1.png]]
Lisaks sellele ka vastavalt teie '''target''' real kirjeldatud arhidektuurile ka [[rpm]] paketi. ''~/rpmbuild/RPMS/i386/ (või siis ~/rpmbuild/RPMS/i586/, ~/rpmbuild/RPMS/i686/ ).''


[[Pilt:Ukmenu2.png]]
==Uue kerneli paigaldamine==
Nüüd tuleb siis uus kernel ka süsteemi paigaldada.
cd ~/rpmbuild/RPMS/i386
rpm -ivh kernel-2.6.18custom2.6.18.2-1.i386.rpm
( kataloog /rpmbuild/RPMS/i386 sõltub teie arhidekturist)
Samal moodusel võite sama kernelit paigaldada ka kõigisse teistesse Fedora Core masinatesse.


Nüüd tuleb veel paigaldada ka ramdisk fail, sest muidu ei buudiks süsteem Teie uute kerneliga.
mkinitrd /boot/initrd-2.6.18-custom-2.6.18.2.img 2.6.18-custom-2.6.18.2
Nüüd tuleb muuta natuke [[Grub]]i konfiguratsioni faili. Fedoras saate seda teha:
nano /boot/grub/menu.lst
Näidis enne uue kerneli lisamist olnud [[Grub]]i menu.lst failist:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.18-1.2798.fc6)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-1.2798.fc6.img


Nüüd pole siis muud, kui liikuda mööda Kerneli seadistuste menüüsid, lisada ja eemaldada endale sobivad lisad. Kui olete lõpetanud, siis valige ''Exit'' ja sealt küsitakse ''Do you wish to save your new kernel configuration?'' valige sealt ''Yes'':
Ja siin näidis, kuidas näeb väja vastav fail peale uue kerneli lisamist:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.18-custom-2.6.18.2)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-custom-2.6.18.2 ro  root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-custom-2.6.18.2.img
title Fedora Core (2.6.18-1.2798.fc6)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-1.2798.fc6.img
Täpse kerneli nime leidmiseks on Teile abiks ''ls -l'' käsk:
cd /boot
ls -l
Nüüd tuleks siis süsteem uuesti käivitada:
shutdown -r now
Kui kõik läks korralikult, siis peale restarti võite anda käsu:
uname -r
ja selle tulemuseks peaks olema:
2.6.18-custom-2.6.18.2
Või mis iganes nime oma kernelile andsite.
==Kui kõik ei läinud nii nagu peaks==
Kui süsteem siiski ei käivitu teie uue kerneliga, siis pange kirja, mis veateate ta annab. Seda läheb teil vaja, et viga üles otsida. Siis restartige uuesti süsteem ja [[Grub]]i laadimisel:


[[Pilt:Fck4.png]]


[[Pilt:Ukmenu3.png]]
vajutage siis '''esc''' nuppu ja teile avaneb umbes järgmine vaade:


==Kerneli valmistamine==
[[Pilt:Fck5.png]]
Nüüd pole siis jäänud muud, kui Kenrnel valmis kompileerida. Seda saate teha järgmiste käskudega:
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
Peale '''--append-to-version=''' võite kirjutada oma Kernelit iseloomustava pealkirja. Kuid oluline on teada, et see peab algama '''-''' märgiga ja vahel ei tohi olla tühikut.
Nüüd kompileeritakse Teie Kernelit. See võib võtta aega tunde. Sõltuvalt, mida oma Kernelisse lisasite ja kui kiire on Teie protsessor.
==Uue Kerneli paigaldamine==
Kui Kernel kompileeritud, siis on paras aeg ta ka paigaldada. Leiate oma /usr/src kataloogist nüüd kaks uut ''deb'' paketti. Seda saate näha:
cd /usr/src
ls -l
Meie esialgse näite kohaselt peaks nüüd olema järgmised deb paketid:


''linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb''  ja ''linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb''
Seal nimekirjas on kõik teie süsteemi kernelid. Valige sealt mõni varasem kernel, mis töötas ja käivitage sellega süsteem. Siis saate uuesti siirduda oma uue kerneli juurde ja vajaminevad muudatused sisse viia. Vajadusel võite ta ajutiselt alati [[Grub]]i menu.lst failist eemaldada.
Need saame paigaldada järgmiste käskudega:
dpkg -i linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
Te võite need deb pakettid viia ka mujale masinasse. Ehk Teil pole vaja neid kohapeal ise kompileerida.
 
Ongi kõik, te võite nüüd veel vaadata, kas on tekitatud ka vastavad kirjed ''/boot/grub/menu.lst'' faili:
nano /boot/grub/menu.lst
Seal peaksite leidma endale järgmised read:
title          Ubuntu, kernel 2.6.18.1-custom
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro quiet splash
initrd          /boot/initrd.img-2.6.18.1-custom
savedefault
boot
title          Ubuntu, kernel 2.6.18.1-custom (recovery mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro single
initrd          /boot/initrd.img-2.6.18.1-custom
boot
Nüüd pole muud, kui restartida süsteem:
shutdown -r now
Kui kõik läks hästi, siis peaksite buutima üles juba oma uue Kerneliga. Seda saate hiljem kontrollida käsuga:
uname -r
Mille tulemuseks peaks siis olema midagi sellist: ''2.6.18.1-custom'' (või siis vastavalt Teie pandud nimele ja Kernelile)


Juhul, kui süsteem ei käivitu selle loodud Kerneliga, siis ärga muretsege. Käivitage uuesti arvuti ja [[Grub]]i juures vajutage '''Esc''' klahvi. Teile avaneb kõigi saadaolevate Kernelite nimekiri. Valige mõõni vanem ja käivitage arvuti sellega. Kuid kindlasti on mõistlik eelnevalt kirja kuskile panna, mis veateate Teie Kernel andis, et ta ei käivitanud. See on abiks vea otsingul.


Jõudu Kernelite kompileerimisel :)
Jõudu Kernelite kompileerimisel :)
Õpetuse algallikas on [http://www.howtoforge.com/kernel_compilation_ubuntu HowtoForge]. Tõlkis spott
Õpetuse algallikas on [http://howtoforge.com/kernel_compilation_fedora HowtoForge]. Tõlkis spott

Viimane redaktsioon: 15. november 2006, kell 15:26

Oodake, artikli kirjutamine on alles pooleli!

Kuigi Fedoral on korralikud oma paki Kernelid olemas tekib alati mõnel kasutajal tahtmine ise endale uus Kernel valmis kompileerida. Põhjuseid võib olla mitmeid. Näiteks soov luua endale minimalistlik versioon Fedorast, kus kernelist on kõik mittevajalik eemaldatud. Või siis on tarvis lisada hoopis mõne sellise riistvara tugi, mida kohe kaasas pole. Või soovitakse kasutada uusimat olemasolevat Linuxi Kernelit, mida on võimalik tõmmata ainult otse netist ja ise valmis kompileerida.

Käesolev õpetus õpetabki, kuidas Fedoras valmis kompileerida Vanilla Kernel, ehk siis Kernel www.kernel.org lehelt. Õpetus peaks toimima Fedora Core 6-ga.

alustuseks

Kogu õpetuse võib sisuliselt jagada kaheks. Esimene osa on Fedora spetsiifiline õpetus, mille tulemuseks on vastav kerneli rpm pakett, mida on võimalik jagada ka kõigile teistele kasutajatele.

Teine osa õpetusest näitab aga kerneli kompileerimist üldiselt ja see osa õpetusest peaks sobima kõigile erinevatele süsteemidele. (Teise osa tõlkimine on hetkel pooleli).


Soovituslik on läbi viia kõik uue kerneli kompileerimise ja valmistamise toimingud root kasutaja õigustes. Samas võib aga paljud toimingud läbi viia ka tavakasutaja õigustes. Et seda olukorda lihtsustada, siis parimaks mooduseks on lisada oma kasutajanimi (olgu selleks näiteks toomas) sudo kasutajate grupp. Seda saate teha /etc/sudoers failis.

nano /etc/sudoers

Seda saate loomulikult teha ainult root kasutaja õigustes. Lisage sinna faili järgmine rida:

toomas  ALL=(ALL) ALL

Nüüd saate ka tavakasutajana erinevaid käske anda, mis muidu nõuavad root kasutaja õiguseid. Näiteks, kui soovite paigaldada mõningaid pakette yumi abil, siis antav käsk näeks välja:

sudo yum install fedora-rpmdevtools unifdef

Loomulikult võite endale aga käsku su kasutades võtta root kasutaja õigused kogu ajaks ja teha kõik toimingud root kasutaja õigustes. Siis enam sudo ette pole vaja lisada.

Kerneli rpm paketti loomine

rpmbuild kataloogi loomine

Selleks, et luua mingit rpm paketti on alati hea, kui selles tegevuses on mingi korrapära. rpm pakettide loomiseks on kõige mõistlikum luua rpmbuild kataloog:

cd ~
cp -a /usr/src/redhat/ rpmbuild
echo '%_topdir %(echo $HOME)/rpmbuild' >> .rpmmacros 

Nüüd paigaldame vajalikud pakettid:

yum install fedora-rpmdevtools unifdef

ja käivitage käsk:

fedora-buildrpmtree

Laadige alla Fedora kernel src.rpm pakett

Nüüd tuleb alla laadida viimane Fedora kerneli src.rpm pakett vastavalt oma Fedora Core versioonile. Fedora Core 6 kohta leiate src.rpm paketti: http://download.fedora.redhat.com/pub/fedora/linux/core/6/source/SRPMS/

Fedora Core 5 jaoks: http://download.fedora.redhat.com/pub/fedora/linux/core/5/source/SRPMS/

Ja nii edasi.

Hetkel viimane kerneli versioon Fedora Core 6-le on kernel-2.6.18-1.2798.fc6.src.rpm, seega laeme selle alla:

cd /usr/src
wget http://download.fedora.redhat.com/pub/fedora/linux/core/6/source/SRPMS/kernel-2.6.18-1.2798.fc6.src.rpm
rpm -ivh kernel-2.6.18-1.2798.fc6.src.rpm

Juhul, kui saate paigaldusel veatetateid:

warning: user brewbuilder does not exist - using root
warning: group brewbuilder does not exist - using root

Siis neid hoiatusi võite lihtsalt ignoreerida.

Nüüd olemegi siis tõmmanud 2.6.18 kerneli lähtekoodi, millega on kaasas ka hulgaliselt Fedora erinevaid paikasid ja täiustusi ja ühtlasi ka täiendus 2.6.18.1 kerneli jaoks. Jätkates saame me tõmmatud lähtekoodist lõpuks valmis kompileerida 2.6.18.1 kerneli.

Kerneli täiendamine

Samas soovime meie valmistada hoopis 2.6.18.2 kernelit. Tõmmatud src.rpm pakett lubab meile aga valmistada ainult 2.6.18.1 kernelit. Seega vajame vastavat täiendust (patch) www.kernel.org kodulehelt. Selleks:

cd ~/rpmbuild/SOURCES/
wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.18.2.bz2

Ühtlasi võite tõmmata endale ka muud täiendused (patchid), mida soovite. Näiteks, kui soovite hoopis katsetada 2.6.19 kerneli eelväljalaskeid, siis võite tõmmata näiteks: http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.19-rc5.bz2 Samas tuleb arvestada, et sellisel kujul versiooni uuendada saate ainult seni, kuni 2.6.19 kernel pole ametlikult välja lastud. Ja seda täiendust saate kasutada ainult 2.6.18 kerneliga, mitte juba selle täiustusega. Lähem selgitus selle kohta on siin: http://kernel.org/patchtypes/pre.html


Nüüd tuleb muuta kernel-2.6.spec faili, et viimane teaks meie uue loodava kerneli täiendusi (patche). Selleks:

cd ~/rpmbuild/SPECS/
nano kernel-2.6.spec

Sealt otsige nüüd üles järgnev rida:

Patch1: patch-2.6.18.1.bz2

ja asendage see järgnevaga

Patch1: patch-2.6.18.2.bz2

(või mis iganes täienduse te alla tõmbasite) Nüüd käivitage käsk:

rpmbuild -bp kernel-2.6.spec

Kui soovite aga valmistada kernelit mõnele konkreetsele arhidektuurile, siis võite kasutada hoopis järgnevat käsku:

rpmbuild -bp --target=i686 kernel-2.6.spec

target taha määrake siis soovitud arhidektuur i386, i586, i686 või x86_64. Juhul, kui te ei määra, mis arhidektuurile kernel valmistatakse, siis tehakse see i386 arhidektuurile.

Nüüd tuleb aga üks kõige huvitavam osa Fedora kerneli kompileerimisel. Nimelt tõmmatud src.rpm pakettid sisaldasid endas ka mitmeid Fedora täiendusi (patche), mis ei pruugi aga koos töötada teie soovitud versiooniga (ehk siis meie õpetuse puhul 2.6.18.2 täiendusega). Teile kuvatakse rpmbuildi väljund, mis sarnaneb järgnevaga:

+ echo 'Patch #300 (linux-2.6-ppc-dac960-ipr-clash.patch):'
Patch #300 (linux-2.6-ppc-dac960-ipr-clash.patch):
+ patch -p1 -s
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
1 out of 1 hunk ignored -- saving rejects to file  drivers/block/DAC960.c.rej
error: Bad exit status from /var/tmp/rpm-tmp.46287 (%prep)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.46287 (%prep)

See tähendab, et Teil tuleb taas muuta kernel-2.6.spec faili ja eemaldada sealt täiendus (patch) number 300:

nano kernel-2.6.spec

Otsige sealt üles siis järgnev rida, mis veateate andis ja kommenteerige see välja, lisades # sinna ette:

[...]
#Patch300: linux-2.6-ppc-dac960-ipr-clash.patch
[...]
#%patch300 -p1
[...]

Ja nüüd käivitage rpmbuild käsk uuesti.

rpmbuild -bp kernel-2.6.spec

või koos target lipuga. 'OLULINE ON TÄHELE PANNA, ET PEATE EEMALDAMA kernel-2.6.spec FAILIST KÕIK NEED READ, MIS VEATEATEID ANNAVAD! VAJADUSEL TULEB SEDA SAMMU MITU KORDA LÄBI TEHA!'

Määrake kerneli tuvastamine

Hiljem on Teil vaja kuidagi siiski ka tuvastada, millise kerneli te ise kokku kompileerisite. Selleks oleks talle hea anda kas konkreetne nimi või tähis. Selleks:

cd ~/rpmbuild/BUILD/kernel-2.6.18/linux-2.6.18.i386
nano Makefile

Sealt leiate rea EXTRAVERSION ja sinna taha võite lisada oma tähise. Näiteks:

EXTRAVERSION = -custom-2.6.18.2

Kerneli seadistamine

Nüüd käivitage käsk:

make menuconfig

mis toob Teile ette kerneli seadistusmenüü. Valige Load an Alternate Configuration File ja valige sealt .config.

Nüüd võite liikuda mööda erinevaid menüüsid ja sisse viia endale sobivad muudatused. Kas siis luua mõned lisamoodulid, või need hoopis eemaldada jne. Kui olete lõpetanud, siis valige Exit ja vastake küsimusele Do you wish to save your new kernel configuration? Yes (jah).

Kerneli rpm paketti loomine

Nüüd pole muud, kui luua oma kernelist ka rpm pakett. Selleks käivitage järgnev käsk:

make rpm

Peale seda leiate uue src.rpm paketti ~/rpmbuild/SRPMS/ kataloogis. Näiteks: ~/rpmbuild/SRPMS/kernel-2.6.18custom2.6.18.2-1.src.rpm.

Lisaks sellele ka vastavalt teie target real kirjeldatud arhidektuurile ka rpm paketi. ~/rpmbuild/RPMS/i386/ (või siis ~/rpmbuild/RPMS/i586/, ~/rpmbuild/RPMS/i686/ ).

Uue kerneli paigaldamine

Nüüd tuleb siis uus kernel ka süsteemi paigaldada.

cd ~/rpmbuild/RPMS/i386
rpm -ivh kernel-2.6.18custom2.6.18.2-1.i386.rpm

( kataloog /rpmbuild/RPMS/i386 sõltub teie arhidekturist) Samal moodusel võite sama kernelit paigaldada ka kõigisse teistesse Fedora Core masinatesse.

Nüüd tuleb veel paigaldada ka ramdisk fail, sest muidu ei buudiks süsteem Teie uute kerneliga.

mkinitrd /boot/initrd-2.6.18-custom-2.6.18.2.img 2.6.18-custom-2.6.18.2

Nüüd tuleb muuta natuke Grubi konfiguratsioni faili. Fedoras saate seda teha:

nano /boot/grub/menu.lst 

Näidis enne uue kerneli lisamist olnud Grubi menu.lst failist:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu

title Fedora Core (2.6.18-1.2798.fc6)
       root (hd0,0)
       kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00
       initrd /initrd-2.6.18-1.2798.fc6.img

Ja siin näidis, kuidas näeb väja vastav fail peale uue kerneli lisamist:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu

title Fedora Core (2.6.18-custom-2.6.18.2)
       root (hd0,0)
       kernel /vmlinuz-2.6.18-custom-2.6.18.2 ro  root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-custom-2.6.18.2.img

title Fedora Core (2.6.18-1.2798.fc6)
       root (hd0,0)
       kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00
       initrd /initrd-2.6.18-1.2798.fc6.img

Täpse kerneli nime leidmiseks on Teile abiks ls -l käsk:

cd /boot
ls -l

Nüüd tuleks siis süsteem uuesti käivitada:

shutdown -r now

Kui kõik läks korralikult, siis peale restarti võite anda käsu:

uname -r

ja selle tulemuseks peaks olema:

2.6.18-custom-2.6.18.2

Või mis iganes nime oma kernelile andsite.

Kui kõik ei läinud nii nagu peaks

Kui süsteem siiski ei käivitu teie uue kerneliga, siis pange kirja, mis veateate ta annab. Seda läheb teil vaja, et viga üles otsida. Siis restartige uuesti süsteem ja Grubi laadimisel:

vajutage siis esc nuppu ja teile avaneb umbes järgmine vaade:

Seal nimekirjas on kõik teie süsteemi kernelid. Valige sealt mõni varasem kernel, mis töötas ja käivitage sellega süsteem. Siis saate uuesti siirduda oma uue kerneli juurde ja vajaminevad muudatused sisse viia. Vajadusel võite ta ajutiselt alati Grubi menu.lst failist eemaldada.


Jõudu Kernelite kompileerimisel :) Õpetuse algallikas on HowtoForge. Tõlkis spott