Kompajliranje Linux kernela na Ubuntu

Iz projekta Ubuntu-RS Wiki
Idi na: navigacija, pretraga

Sadržaj

Uvod

Pitate se verovatno zasto biste kompajlirali kernel kada vec postoji generic. Neki od razloga su: Ubuntu nije bas poznat po update-u na novi kernel u toku trajanja trenutne verzije, a vi zelite da stavite novi kernel jer je u njemu podzana wifi kartica koju imate, dok u starom kernelu nije. Dodatne optimizacije i ubrzanja, ispravljeni bug-ovi, avanturistickog ste duha, i tako dalje. Ovo uputstvo bi trebalo da vam pokaze kako se to "famozno" kompajliranje kernela radi. Vecina sigurno misli da je to veliki bauk, ali posle ovog uputstva necete tako misliti. Pa da krenemo. ;)

Napomena o aktuelnim verzijama

Trenutna stabilna verzija kernela: 3.6.8

Starija stabilna verzija kernela: 3.5.7

Starija stabilna verzija kernela: 3.4.20

Razvojna verzija kernela: 3.7-rc7


Instaliranje potrebnih paketa

sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget \
libncurses5 libncurses5-dev

Priprema okruženja za kompiliranje

Prebacite se u direktorijum u kojem zelite da vam bude kernel source. Neki ovde predlazu da to bude /usr/src, ali cu ja u ovom uputstvo uraditi tako da to bude u folderu KERNEL koji ce da se nalazi u vasem home direktorijumu.

mkdir KERNEL

Administrativne privilegije

Da ne bi uvek pisali sudo pre svake komande, ukucajte

sudo su

da postanete koreni (root) korisnik.

Preuzimanje i raspakivanje izvornog koda

Sada cemo uci u naprevljen KERNEL direktorijum, skinucemo i otpakovacemo najnoviji (u toku pisanja ovog uputstva, ali cu ga update-ovati uvek kada izadjene nova revizija) kernel:

cd KERNEL
wget -c http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.6.8.tar.bz2 && tar -xvjf linux-3.6.8.tar.bz2

Sada cemo da uđemo u direktorijum linux-3.6.8:

cd linux-3.6.8

Zakrpe

Patch-ovanje kernela se radi na sledeci nacin:

bzcat patchfile.bz2 | patch -p1


Uvoz podešavanja trenutnog kernela i konfiguracija

Sledeći korak je importovanje konfiguracije i opcija trenutnog kernela:

cp /boot/config-$(uname -r) .config && yes "" | make oldconfig

Sada cemo ukljuciti graficki konfigurator opcija kernela da podesimo kernel po nasem ukusu:

make xconfig

Otvorice vam se graficki prozor u kome cete imati mnogo opcija za ukljucivanje i iskljucivanje. Ovde cu navesti samo neke vaznije stvari:

General setup

Tu cete naci opcije

Optimize for size

i

Automatic group schedular

i stikliracete ih.

Processor type and features

i tu cete ukljuciti (ako vec nije ukljuceno):

Tickless System (Dynamic Ticks) i High Resolution Timer Support

Onda cete u delu

Processor family

izabrati familiju vaseg procesora. Sledece sto trebate da uradite jeste da u

Timer frequency

izaberete 1000Hz.

Paravirtualized guest support

i iskljucite

Xen quest support

inace vam se kernel nece boot-ovati. :)

Kompajliranje

Sada u terminalu ukucajte sledece:

make-kpkg clean

A kada to zavrsi ukucajte sledece:

CONCURRENCY_LEVEL=3 make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

Napomena: CONCURRENCY_LEVEL je korisna opcija ako imate neki multicore procesor kao sto su Core2Duo/Quad ili AMD X2,X3,X4. Broj iza znaka "=" oznacava Cores+1, tako da, ako imate dual core upisite tu 3, a ako imate quad core upisite 5.

Opcija --append-to-version= sluzi da upisete naziv ravizije kernela. Tu mozete upisati bilo sta umesto ovog "custom", samo sto MORA da ostane "-". Na primer:

--append-to-version=-zika

Tako da ce vam se kernel zvati linux-3.6.8-zika.

Gore navedena komanda ce poceti kompajliranje kernela i pravljenje .deb paketa za kernel image i kernel headers. Ako imate neki multicore procesor, kompajliranje ne bi trebalo da traje duze od pola sata, ali ako imate neki single core procesor, kompajliranje ce sigurno potrajati od sat vremena, pa cak i to 4 sata ako imate neki stariji komp. Tako da mozete otici da popijete kafu, odigrate koju partiju basketa (lepo je vreme) ili sta god zelite. Smile

Instaliranje dobijenih paketa

Kada se kompajliranje zavrsilo, vreme je da instalirate naprevljene pakete:

cd ..
dpkg -i *.deb

Napomena: Najverovatnije svi imaju instaliran paket nvidia-common koji ce praviti probleme pri instaliranju ovog kernela, tako da pre izvrsavanja gore navedene komande "dpkg" uradite:

apt-get purge nvidia-common

Nakon toga uradite gore navedenu dpkg komandu da bi instalirali novi kernel. Kada se kompajliranje zavrsi, instalirajte ponovo nvidia-common:

apt-get install nvidia-common

Ne znam da li ova napomena vazi za sve, ili samo za one koji imaju Nvidia graficke, tako da je preporucljivo da svi to uradite za svaki slucaj.

Vlasnički drajveri

Ako imate instaliran neki vlasnicki drajver za ATI ili Nvidia graficke kartice, obrisite ga i restartujte komp u novi kernel. Najverovatnije ce vas docekati konzola ili okruzenje bez 3D akseleracije. Da bi ste instalirali vlasnicki drajver za ATI ili Nvidia uradite sledece:

Posto nemam ATI karticu, ne znam kako se instalira, ali pretrazite forum, postoji sigurno uputstvo, mislim da je bas Stefaca napisao nesto.

A sto se tice Nvidia drajvera, ispratite sledece uputstvo: http://www.ubuntu-rs.org/forum/viewthrea...&pid=78339

Na kraju

To bi bilo to narode. Ako budete imali bilo kakvih problema, uvek mozete izabrati -generic drajver iz grub-a. :)

Za sve probleme, dodatna pojašnjenja i savete pišite u forumskoj temi http://www.ubuntu-rs.org/forum/Thread-Kompajliranje-Linux-kernela-na-Ubuntu


Korisnička dokumentacija
Aplikacije | Multimedija | Internet i mreže | Virtuelizacija | Saveti i trikovi | Eyecandy | Serveri | Instalacija | Hardver | Laptop | Sigurnost | Igre | Info
Lični alati
Imenski prostori
Varijante
Akcije
Navigacija
alati
Linkovi