Stranica: 1/10.

Kako iskompajlirati svoj kernel (Ubuntu)

Postano: 07 sij 2008, 10:49
Postao/la Grof
(Ubuntu 7.10 i vjerojatno ostali Debiani)
Ovo je namijenjeno iskusnijim korisnicima i ne preporučam početnicima koji za time i tako nemaju potrebe

Kad tad imate potrebe za prilagođavanjem kernela svojim potrebama. No na riječ kompajliranje većini ljudi diže se kosa na glavi, no kod kernela nema alternative :).
Ali, postoji način da se i ovo učini što jednostavnijim i bezbolnijim.

Jedan od najboljih threadova po tom pitanju je svakako ovaj:
http://ubuntuforums.org/showthread.php? ... t=mkinitrd

Ne prevodim ga, jer je vrlo učinkovito napisan i mislim da je svima razumljiv (no ako netko želi da prevedem, prevest ću). Uglavnom se sve svodi na faze:
0. instaliranje utilitiesa potrebnih za uspješno kompajliranje kernela
1. skidanja kernel-sourcea i eventualnih patcheva,
2. preuzimanje postojećih postavki kernela i prilagodbu postavki kernela xconfigom (u GUI-u)
3. kompajliranje kernela i stvaranje DEB paketa za poptunu automatizaciju instalacije novog kernela sa upisom u GRUB meni
4. Instaliranje dobivenog DEB paketa.

Provjereno od autora!

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Postano: 10 sij 2008, 22:53
Postao/la shrike
Evo korak po korak rekompajliranja kernela na Debian/Ubuntu distribucijama. Trebalo bi, ali nemogu potvrditi da radi na ostalim debian baziranim (Xandros, knoppix,...). Ovo pretpostavlja Debian (ne Ubuntu)

Otvarmao konzolu i logiramo se kao root

Kod: Označi sve

su root
Ak smo na Ubuntuu odnda pokrćemo sve sa
sudo
prefiksom.

Instalacija potrebnih paketa:

Kod: Označi sve

aptitude install libc6-dev gcc make libncurses5-dev kernel_package libqt3-md-dev
Idemo u /usr/src

Kod: Označi sve

cd /usr/src
skidamo najnoviji kernel

Kod: Označi sve

wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.13.tar.bz2
Otkompresiravamo tu datoteku

Kod: Označi sve

tar xvjf linux-2.6.23.13.tar.bz2
ulazimo u taj direktorij

Kod: Označi sve

cd linux-2.6.23.13
Sada imamo više opcija, ako želite napraviti identičnu kopiju prijašnjeg kernela bez ikakvih optimizacija za svoj kernel onda puknete

Kod: Označi sve

make oldconfig
U suprotnome,

Kod: Označi sve

make xconfig
ili

Kod: Označi sve

make menuconfig
Savjetujem da pod processor type and features pomaknete optimizaciju sa 386 na svoj odgovarajaući procesor, nikako jači od vašega jer se neče pokrenuti. Ostale opcije dirajte na svoju odgovornost.

Sada krečemo u kompialciju Debian stilom:

Kod: Označi sve

fakeroot make-kpkg --initrd -rev mz1 kernel_image kernel_headers
Napomena: -rev mz1, ovo mz1 je ime vaše revizije kernela i može se staviti bilo što, samo mora imati broj u sebi.
Postupak kompilacije traje dosta.

Kada je gotovo sa kompialcijom, instaliramo kao root

Kod: Označi sve

su root

Kod: Označi sve

dpkg -i linux-image-2.6.23.13_mz1_i386.deb linux-headers-2.6.23.13_mz1_i386.deb
sada treba urediti /boot/grub/menu.lst osim ako vam je to već sređeno. Pogledajte malo taj fajl i odma će biti jasno kako to podesiti.

restartjate računalo sa

Kod: Označi sve

shutdown -r now

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Postano: 10 sij 2008, 23:08
Postao/la Grof
shrike je napisao/la:Tvoja nesposobnost graniči sa time da te prijavim. To što si napisao zanju svi i bez toga da im ti kažeš. Evo korak po korak rekompajliranja kernela na Debian/Ubuntu distribucijama. Trebalo bi, ali nemogu potvrditi da radi na ostalim debian baziranim (Xandros, knoppix,...). Ovo pretpostavlja Debian (ne Ubuntu)
Molim te da mi objasniš svoj sarkazam u vezi mog posta... Ovime što sam napisao iskompajlirao sam kernela i kernela i još me toga čeka prek o vikenda jer tjeram nekakav suspend bug na kernel.org-u.

Cijela procedura radi i razumljiva je...

No, ako sam negdje nešto krivo rekao - molim! Ispravi me ali argumentirano... ne vidim što je tu tako "nesposobno" sa moje strane...

Ok, možda nisam opisao konfiguriranje Kernela. Zapravo, to i nije za početnike (što onda jest uopće ovdje za početnike - bit će tvoje pitanje! :) ). E, pa zapravo namjenio sam ovo onima koji žele preuzeti noviju verziju kernela sa kernel.org, te je iskompajlirati na svom sistemu. No, možda bi bilo bolje otvoriti posebni threat (ili čak nekakav kutak za naprednije) gdje bi mogli opisivati cake u konfiguriranju kernela, no ne mislim da je to za sada pametno, jer je ovo ipak forum za početnike, a generic kerneli su sasvim zadovoljavajući za mase....

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Postano: 11 sij 2008, 08:48
Postao/la Grof
shrike je napisao/la:Tvoja nesposobnost graniči sa time da te prijavim. To što si napisao zanju svi i bez toga da im ti kažeš. Evo korak po korak rekompajliranja kernela na Debian/Ubuntu distribucijama. Trebalo bi, ali nemogu potvrditi da radi na ostalim debian baziranim (Xandros, knoppix,...). Ovo pretpostavlja Debian (ne Ubuntu)

Otvarmao konzolu i logiramo se kao root

Kod: Označi sve

su root
Ak smo na Ubuntuu odnda pokrćemo sve sa

Kod: Označi sve

sudo
prefiksom
.

Ne treba, možeš otipkati i

Kod: Označi sve

sudo -s 
pa ti je to isto kao u Debianu su root

poz

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Postano: 11 sij 2008, 14:25
Postao/la shrike
Dakle, kad si već stavio ovo (kompajliranje kernela) onda nema više diskusije o tome jel bi to tu trebalo biti ili ne, već o tome kako je prikazano. Stavljanje linkova na ovom forumu na drugi forum je jednostavno neodgovorno. Zamisli da sada ja otvorim 100 topica i u njima postavim linkove na 100 foruma kako se nešto radi. To više nije onda neka verzija how-to nego jednostavno lista zanimljivih linkova.Također, smatram da bi ovdje bil ozgodno kada bi svi tutači bil ina hrvatskom tako da se ekipa koja nezna engleski ne muči previše. Naravno, za dotjerivanje kernela engleski je nužan, ali za oldconfig nije nužno. Eto, to je kriminalno.

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Postano: 11 sij 2008, 14:27
Postao/la Grof
A dobro, tu ima i istine što si rekao. Preko vikenda ću si uzeti malo vremena, pa prevesti onaj master kernel threat...

poz. ;)

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Postano: 02 vel 2008, 23:48
Postao/la gogogold
hm.. da ubacimo jedno početničko pitanje, naime nije mi baš jasno zašto uopće dirati taj kernel, naime ako je zbog upgradea tada pričekaš novu verziju (koja srećom izlazi svako malo) oli to ima neki drugi smisao? :roll:

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Postano: 03 vel 2008, 00:05
Postao/la Grof
To stoji što si rekao. No, tu je više stavljeno za one nadobudne koji žele znati malo više ili iz nekog drugog razloga žele malo propetljati po kernelu.
Kerneli koji dolaze u distrama su generički i podržavaju sav stari i novi hardveraj...

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Postano: 03 vel 2008, 20:26
Postao/la shrike
Generički kernel podržava najčešći hardver i najsigurnije opcije. Razlog zašto bi netko htio rekompajlirat kernel je da omoguči bizarni hardver, optimizira kernel za procesor koji koristi (razlika je vidna kada se koriste zahtjevne aplikacije i slabiji komp), kada se želi recimo optimizirati rad kernela mijenajući latencije (bolje mogu filmovi raditi), ....
Ja sam se zezao sa time iz jednog retardirnog razloga. Naime, kada imati neki source kod od drivera za kojekakav uređaj, vi ga kompajlirate i želite ubaciti u kernel, ali gcc verzija s kojom je kompajlirani modul mora biti ista s kojeom je kompajliran i kernel i to u zadnju brojku. Nadalje, treba vam i source od točno tog kernela (ne vanilla, nego distro specifični kernel). Što se tiče ubuntua, kernel je bio kompajliran drugčijim gcc-om od onog koji se nalazio instaliran. Isto, source mi e nije htio ati prepoznat bez rekompilacije. Eto, u svakom slučaju može se optimizirati komp.

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Postano: 18 ožu 2008, 23:42
Postao/la kaiwan
Ovako, recimo da mi vrag ne da mira i da mi svjetlosna brzina kojom mi radi 64bit ubuntu nije dosta i pozelim iskompilirati novi kernel.
1. Dal mogu ostaviti stari kernel (i birati koji bootam?) za svaki slucaj da nesto zeznem i da li ce sa starim kernelom sve uredno raditi kao prije ?
2. Ako uspijem novi kernel kompilirat sto sve moram osim drivera za nvidiu stavit ? Znaci programe koje imam sada (one koje sam sam kompilirao i one preko apt-get) dal cu morati opet instalirat? Sto gubim tim postupkom?
3. I dal drivere za nvidiu preko restricted device managera mogu ponovo stavit ili samo rucno ?
4. Dal ima jos nesto cega moram biti svjestan ? :)