pogledaj kod
Iz projekta Ubuntu-RS Wiki
za
Kompajliranje Linux kernela na Ubuntu
Idi na:
navigacija
,
pretraga
== 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: [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.2.tar.bz2 2.6.35.2] Starija stabilna verzija kernela: [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.4.tar.bz2 2.6.34.4] Starija stabilna verzija kernela: [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.7.tar.bz2 2.6.33.7] Trenutna LTS verzija kernela: [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.19.tar.bz2 2.6.32.19] Danasnja Linux-next verzija (patch): [http://www.kernel.org/pub/linux/kernel/v2.6/next/patch-v2.6.35-next-20100813.bz2 next-20100813|2.6.35] Git snapshot (patch): [http://www.kernel.org/pub/linux/kernel//v2.6/snapshots/patch-2.6.35-git16.bz2 2.6.35-git16] == 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. * Otvorite terminal: Applications -> Accessories -> Terminal * Pravimo direktorijum KERNEL: 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/v2.6/linux-2.6.35.tar.bz2 && tar -xvjf linux-2.6.35.tar.bz2 Sada cemo da uđemo u direktorijum linux-2.6.35: cd linux-2.6.35 == Zakrpe == Ako kompajlirate linux-next, potrebno je da se patch-uje base kernel, a to je sada 2.6.35-rc1. Patch-ovanje kernela se radi na sledeci nacin (primer je za linux-next): bzcat patch-v2.6.35-rc1-next-20100601.bz2 | patch -p1 * Opšti primer: 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: * Prvo sto cete uraditi jeste da pritisnete CTRL+F i trazite rec "debug" (bez navodnika naravno), kliknete na Search i iskljucite sto vise opcija koje u sebi imaju red "debug", ovo ce vam mnogo smanjiti velicinu kernel image-a. * Nakon toga izadjite iz search prozora i General setup Tu cete naci opciju Optimize for size i stikliracete je. * Sledeca stvar je da idete u 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. * Sada idite u Paravirtualized guest support i iskljucite Xen quest support inace vam se kernel nece boot-ovati. :) * To bi otprilike bilo najvaznije, sada mozete da malo istrazujete i iskljucite neke drajvere za hardware koji nemate, npr. za web kamere i TV kartice koje nemate, ili ako nemate wireless karticu iskljucite Wireless opciju i tako dalje . Istrazujte malo. ;) * Kada ste zavrsili sa podesavanjima kliknite na Save ikonicu i izadjite iz prozora. == 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-2.6.34-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 *.deb opcija kaze da instalira sve .deb pakete u trenutnom folderu, a to je folder KERNEL. '''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 [[Kategorija:Hardware]] [[Kategorija:Kernel]] [[Kategorija:Saveti i Trikovi]]
Šablon:Korisnička dokumentacija
(
Izvornik
)
Šablon:Sekcije
(
Izvornik
)
Povratak na
Kompajliranje Linux kernela na Ubuntu
.
Lični alati
Prijavi se/registruj se
Imenski prostori
Članak
Razgovor
Varijante
Pregledi
Čitaj
Izvornik
Istorija
Akcije
pretraga
Navigacija
Glavna strana
Radionica
Aktuelnosti
Skorašnje izmene
Slučajna stranica
Pomoć
alati
Šta je povezano ovde
Srodne promene
Posebne stranice
Linkovi
Sajt
Forum
IRC
Planeta
Kontakt