Kako iskompajlirati svoj kernel (Ubuntu)

Razmjena savjeta i trikova o podešavanju sustava i programa.

Moderator/ica: Moderatori/ce

Odgovori
Avatar
Grof
Site Admin
Postovi: 9954
Pridružen/a: 04 pro 2007, 08:00
Lokacija: Zagreb

Kako iskompajlirati svoj kernel (Ubuntu)

Post 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!
Avatar
shrike
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Spol: Y
OS: utuntu 19.10
Kontakt:

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Post 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
Zadnja izmjena: iv@n, dana/u 11 sij 2008, 11:07, ukupno mijenjano 1 put.
Razlog: Korisnik upozoren.
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Grof
Site Admin
Postovi: 9954
Pridružen/a: 04 pro 2007, 08:00
Lokacija: Zagreb

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Post 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....
Avatar
Grof
Site Admin
Postovi: 9954
Pridružen/a: 04 pro 2007, 08:00
Lokacija: Zagreb

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Post 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
Avatar
shrike
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Spol: Y
OS: utuntu 19.10
Kontakt:

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Post 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.
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Grof
Site Admin
Postovi: 9954
Pridružen/a: 04 pro 2007, 08:00
Lokacija: Zagreb

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Post 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. ;)
Avatar
gogogold
Postovi: 17
Pridružen/a: 06 sij 2008, 14:46

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Post 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:
Avatar
Grof
Site Admin
Postovi: 9954
Pridružen/a: 04 pro 2007, 08:00
Lokacija: Zagreb

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Post 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...
Avatar
shrike
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Spol: Y
OS: utuntu 19.10
Kontakt:

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Post 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.
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
kaiwan
Postovi: 934
Pridružen/a: 04 pro 2007, 21:59
Spol: M
OS: OpenSUSE 11.2, KDE 4.4.3
Lokacija: jastrebarsko

Re: Kako iskompajlirati svoj kernel (Ubuntu)

Post 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 ? :)
Be the change you want to see in the world! Dalai Lama.
Odgovori