Kako da kompajlirate Linux Kernel na Ubuntu 10.04 i 10.10?
Ubuntu poseduje odličnu dokumentaciju za kompajliranje kernela, međutim ovo početnicima može biti potpuno nejasno pošto postoje određene razlike u postupku kompajliranja između različitih verzija Ubuntu-a. Tako na primer, ranije pisano uputstvo za kompajliranje kernela na Ubuntu ne važi u potpunosti za verzije 10.04 i 10.10.
U ovom tutorialu ćemo u potpunosti opisati postupak kompajliranja kernela na Ubuntu verzije 10.04 i 10.10.
Prvo, instalirajte alatke i pakete potrebne za kompajliranje. Otvorite Terminal i pokrenite sledeću komandu:
$ sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev
Zatim, preuzmite najnoviju stabilnu verziju kernela sa http://kernel.org/ i raspakujte ga u /usr/src direktorijum:
$ cd /tmp
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2
$ sudo tar -xvjf linux-2.6.36.tar.bz2 -C /usr/src
Nakon toga se prebacite u /usr/src/linux-2.6.36 direktorijum:
$ cd /usr/src/linux-2.6.36
I pokrenite komandu:
$ sudo apt-get build-dep --no-install-recommends linux-image-$(uname -r)
Zatim, prekopirajte .config fajl trenutnog kernela kako biste u znatnoj meri olakšali postupak kompajliranja:
$ sudo cp /boot/config-$(uname -r) .config && yes "" | make oldconfig
Sada ste spremni za kustomizaciju novog kernela, pokrenite:
$ sudo make xconfig
Otvoriće se grafički prozor sa puno opcija koje u zavisnosti od potrebe možete uključiti ili isključiti. Ono što je bitno je da u General setup meniju uključite opciju Optimize for size.
Zatim pritisnite kombinaciju tastera CTRL+F i u prozoru koji se otvorio unesite u pretragu kernel debug i kliknite na Search. Isključivanje kernel debug opcije će u značajnoj meri smanjiti veličinu kernela.
Kada završite sa podešavanjima, kliknite na Save ikonicu i izađite iz prozora. Zatim, pokrenite komandu:
$ sudo make-kpkg clean
Nakon toga možete početi sa kompajliranjem, pokrenite:
$ sudo CONCURRENCY_LEVEL=3 fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
Kada se završi postupak kompajliranja (koji može i da potraje u zavisnosti od brzine vašeg procesora), vratite se u direktorijum /usr/src/ i instalirajte .deb pakete dobijene kompajliranjem:
$ cd ..
$ sudo dpkg -i *.deb
Nakon toga, pokrenite update-initramfs da kreirate kernel sliku:
$ sudo update-initramfs -c -k 2.6.36-custom
Zatim ažurirajte grub:
$ sudo update-grub
I na kraju, restartujte računar i iz grub menija izaberite svoj novi kernel:
$ sudo reboot
Ukoliko budete imali problema sa novim kernelom, uvek se možete lako vratiti na stari odabirom iz grub menija -generic kernela.








Komentari
Pohvala za linkove, pregledno
Pohvala za linkove, pregledno napisan tutorijal, postepenost u objašnjenju ali uz dve velike zamerke: 1) Objašnjenje zašto ovo raditi jer onaj ko zna razlog njemu ovaj tutorijal netreba, a onaj kome je tutorijal za kompajliranje kernel apotreban on bi trebao da zna zašto se to radi 2) Upozorenje da se veoma lako može oboriti sistem i da odabir drugog kernela nekad neće biti moguć ako se posao odradi loše 3) Najbitniji deo tutorijala kad je reč o kompajliranju kernela nedostaje a odnosi se na ono kako podesiti tj. koje opcije uključiti ili siključiti u novoformiranom custom kernelu jer bez toga je kompajliranje besmisleno. Ovde nema ni smernica o tome jedino je rečeno "zavisnosti od potrebe možete uključiti ili isključiti".
Postoji nekoliko osnovnih
Postoji nekoliko osnovnih razloga zbog čega bi korisnici trebalo da kompajliraju kernel:
- Pre svega, uključivanje podrske za određeni hardver ako ista postoji u novoj verziji kernela, ili jednostavno nije omogućena u generic kernelu.
- Optimizacija kernela prema svom hardveru. Linux kernel je monolitan što znači da u sebi sadrži potrebne drajvere za sav hardver, za razliku od na primer Windowsa koji dolazi samo sa drajverima za osnovni hardver, zbog čega na Windows-u drajvere moramo naknadno da instaliramo.
Isključivanjem nepotrebnih drajvera iz kernela dobija se brži i stabilniji sistem koji koristi manje procesorskih i memorijskih resursa.
- Bezbednost. Nove verzije kernela, uostalom kao i sav softver, donose brojne sigurnosne i druge ispravke i poboljšanja. Takođe, sistem administratori isključuju nepotrebne module kako bi preventivno smanjili rizik od rootkit napada.
- Testiranje novih verzija kernela i prijavljivanje grešaka -> https://bugzilla.kernel.org/.
- Kako bi se naučilo nešto novo i pritom zabavilo :).
Naravno, ovo su samo neki od razloga. Svako ima drugačije potrebe pa s tim i razloge zašto bi kompajlirao kernel.
"2) Upozorenje da se veoma lako može oboriti sistem i da odabir drugog kernela nekad neće biti moguć ako se posao odradi loše"
Ovo je potpuno netačno. Ukoliko nešto ne uradimo kako treba, tj. isključimo neku funkciju više, uvek iz GRUB-a možemo odabrati generic kernel i ponoviti postupak kompajliranja.
"3) Najbitniji deo tutorijala kad je reč o kompajliranju kernela nedostaje a odnosi se na ono kako podesiti tj. koje opcije uključiti ili siključiti u novoformiranom custom kernelu jer bez toga je kompajliranje besmisleno."
Kada je u pitanju konfiguracija kernela, to sve zavisi od hardvera do hardvera. Na primer, ja imam Nvidia grafiku, tako da ne mogu u tutorialu da navedem da se isključi podrška za sve ostale grafičke kartice. Isto tako za zvučne, mrežne, tv i sav ostali hardver.
Uostalom, kada se klikne neku stavku, ispod ima help koji treba pažljivo pročitati pre nego što se donese odluka da li je uključiti ili isključiti.
Takođe, može da se otvori terminal i pokrene komanda lsmod koja će da izlista sve učitane module koji su potrebni za naš hadver. Isto tako korisne komande mogu biti lspci i lshw.
Kao što možeš da vidiš, kompajliranje kernela nije ni malo jednostavan proces i niko ne može da ti garantuje da ćeš iz prvog puta da uspeš u istom. Ja sam na primer tek iz trećeg puta dobio kompletno operativan sistem. Prvi put sam isključio podršku za zvuk, drugi put za mrežu...itd. Zato, treba iskoristiti gore navedene komande i pre kompajliranja se dobro upoznati sa hardverom kojim raspolažemo.
Hvala! Odlicno uputstvo i
Hvala! Odlicno uputstvo i objasnjenje za KK ;-) .
Dodaj novi komentar