Erinevus lehekülje "Ubuntu Kerneli kompileerimine" redaktsioonide vahel

Allikas: Pingviini viki
 
(Lisame Kernelile mõned paigad (valikuline))
31. rida: 31. rida:
 
  cd /usr/src/linux
 
  cd /usr/src/linux
 
==Lisame Kernelile mõned paigad (valikuline)==
 
==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)
 +
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.
 +
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)
 +
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 vajadusel uuesti kasutada. 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

Redaktsioon: 5. november 2006, kell 21:11

Kuigi Ubuntul 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 Ubuntust, kus ka 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 Ubuntus valmis kompileerida Vanilla Kernel, ehk siis Kernel www.kernel.org lehelt. Õpetus peaks toimima Ubuntu 6.10 ("Edgy Eft") ja Ubuntu 6.06 ("Dapper Drake") versioonidega.

alustuseks

Soovituslik on läbi viia kõik uue Kerneli kompileerimise ja valmistamise toimingud root kasutaja õigustes. Tänu sellele pole vaja pidevalt kasutada sudo käske. Selleks antke järgmine käsk:

sudo passwd root

Nüüd logige sisse root kasutaja õigustes

su

Juhul, kui te aga siiski ei ava root kasutaja kontot, siis ärge unustage alati ette sudo lisamast!

/bin/sh Ubuntu 6.10 ("Edgy Eft")

/bin/sh peaks olema Ubuntu 6.10 ("Edgy Eft") lingitud /bin/dash -ile. Kuid see võib põhjustada probleeme tarkvara kompileerimisel lähtekoodist. Seega teeme /bin/sh -st hoopis lingi /bin/bash-ile. Ehk kui kasutate Ubuntu 6.10-t siis sisestage järgnevad käsud:

rm -f /bin/sh
ln -s /bin/bash /bin/sh

Ubuntu 6.06 kasutajad selle üle muretsema ei pea.

Vajalike pakettide paigaldamine

Esmalt uuendame loomulikult oma süsteemi pakettide andmebaasi:

apt-get update

ja nüüd paigaldame vajalikud vahendid:

apt-get install kernel-package libncurses5-dev fakeroot wget bzip2

Hangime Kerneli lähtekoodi

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)

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.

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) 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 vajadusel uuesti kasutada. 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