![]() | ![]() |
![]() |
| ![]() |
| |||||||||||||||
Upoznavanje i instalacija kernela
Iako Linux bazirani sistemi današnjice odlično prepoznaju hardver, ponekad je potrebno izvesti posebne intervencije
Razvojem Linux jezgra (engl. kernel) unapređivana je i njegova sposobnost za automatsko prepoznavanje hardvera tako da je danas moguće instalirati neku GNU/Linux distribuciju i odmah imati kompletno funkcionalan sistem. Pored osnovnih uređaja i hardvera, to znači i prepoznavanje periferija poput štampača, skenera ili Web kamere na primer. Usled napretka samog kernela i softvera koji ga okružuje, skoro sve distribucije od početka poseduju sposobnost odlične detekcije hardvera. Neke su otišle i korak dalje, omogućavajući detaljna podešavanja uređaja u grafičkom režimu pa je podešavanje GNU/Linux mašine danas veoma lak posao. Kako sve to radi
Za razliku od Windowsa koji sa sobom donosi drajvere samo za osnovni hardver, Linux kernel u sebi sadrži skoro sve potrebne drajvere. Linux je monolitan, što znači da je ceo kernel praktično jedan fajl i može da ima podršku za hardver na dva načina. Informacija odnosno drajver može da bude uključen direktno u njega ili da bude, grubo rečeno, zapisan u fajlu koji predstavlja kernel. Drugi način jeste omogućavanje podrške u vidu modula koji se kasnije po potrebi može učitati. Ovakav pristup omogućava smanjenje veličine kernela i direktno uključivanje podrške za esencijalne stvari kao što su platforma, procesor i slično.
Srećniji scenario Ukoliko sam Linux nema podršku za određeni uređaj, ali proizvođač ili neko drugi obezbeđuje drajvere za njega, imamo situaciju koja nije previše problematična. Iako je instalacija pojedinih drajvera za manje napredne korisnike potencijalno stresan posao, u poređenju sa dubljim hirurškim zahvatima na sistemu poput kompajliranja kernela predstavlja sitnicu. Drajveri koji ne stižu uz Linux prilikom instalacije u stvari obezbeđuju module za kernel koji se učitavaju posle njega i daju mogućnost hardveru da funkcioniše. Postoje dve krucijalne stvari koje treba obezbediti kako bi instalacija drajvera prošla kako valja: kompajler i kernel hedere.
Da bi drajver bio iskompajliran, potrebno je da ima određene informacije. Te informacije se nalaze u hederima kernela i potrebno ih je instalirati. U zavisnosti od distribucije, paket koji treba instalirati može se pronaći pretragom po kernel-headers ili na novijim izdanjima Debiana i Ubuntua i verovatno svim Debian baziranim pretragom po linux-headers. Treba obratiti pažnju na to da verzija hedera odgovara verziji kernela za koji se drajver kompajlira, a verzija kernela se može saznati komandom uname -r.
Operacija Linux Neke situacije nalažu preduzimanje radikalnijih koraka od onih s kojima smo se sreli do sada. U većini situacija je to slučaj kada treba nadograditi kernel nekom mogućnošću koja podrazumevano ne postoji. Ovo je slučaj sa jednim od bootsplash sistema za Linux, na primer. Doskoro je bilo potrebno kompajlirati kernel i za neke od USB ADSL uređaja, no na sreću to više nije slučaj.
Izvorni kôd Linux kernela se može preuzeti u obliku arhive. U zavisnosti od tipa arhivera kojim je kôd zapakovan odnosno ekstenzije arhive, treba izvršiti različite komande. Za tar.gz arhivu treba pokrenuti tar -zxvf linux-2.6.xx.tar.gz, a za tar.bz2 komandu tar -jxvf linux-2.6.xx.tar.bz2. Raspakivanjem arhiva dobiće se novi direktorijum koji sadrži izvorni kôd kernela. Treba preći u njega komandom cd linux-2.6.xx. Ovde xx označava broj verzije koja je aktuelna odnosno preuzeta. Ovom prilikom govorimo o Linuxu serije 2.6 koja je najnovija i tehnološki najsavršenija. Pored preuzimanja sa zvaničnog sajta, većina distribucija isporučuje izvorni kôd kernela koji se koristi, a paket se može pronaći pretragom po „kernel-source” odnosno „linux-source”. U situacijama kada je potrebno nadograditi kernel, sama nadogradnja u vidu nove mogućnosti se distribuira u vidu zakrpe (patch). Usled toga je pre samog procesa kompajliranja potrebno patchovati kernel. Zakrpe su obično kompresovane arhiverima gzip ili bzip2 pa se u zavisnosti od toga koriste različite komande. Patch treba iskopirati u direktorijum koji sadrži izvorni kôd kernela i ukoliko ima ekstenziju gz, kernel patchovati komandom gzip -cd patch-2.6.xx.gz | patch -p1. Ako zakrpa nosi ekstenziju bz2, treba izvršiti komandu bzip2 -dc patch-2.6.xx.bz2 | patch -p1. Ukoliko patch nije zapakovan, dovoljno je uraditi patch -p1 < patch-2.6.xx. Nakon toga kompajliranje može da počne. Ovaj postupak se sastoji od tri komande. Prva se odnosi na konfiguraciju kernela i ujedno je prelomni deo postupka. Konfiguracija se može obaviti na više načina i odnosi se na definisanje toga šta će kernel podržavati i na koji način. Kada je konzolni režim u pitanju, najbolje je koristiti make menuconfig jer se tada konfiguracioni ekran pojavljuje u vidu menija pa je preglednost na visokom nivou. Komanda make xconfig će omogućiti konfiguraciju u grafičkom režimu, što je preporučljivo za novajlije kojima se preporučuje da prvo učitaju konfiguraciju kernela koji se koristi i na osnovu nje nastave dalje. Ovo je dobro jer samo napredni korisnici znaju da konfigurišu kernel „od nule” pa će ovako većina krucijalnih stvari ostati uključena dok korisnik treba sam da pronađe novu i podesi je (fajl sa konfiguracijom se obično nalazi u direktorijumu /boot i nosi naziv config-xxx gde xxx obično odgovara izlazu komande uname -r). Kako bi menuconfig funkcionisao, potrebno je imati instalirane razvojne biblioteke ncurses (paket se obično zove libncurses5-dev ili slično). Pre konfiguracije treba znati šta čemu služi i da isključivanje pojedinih delova može dovesti do nemogućnosti funkcionisanja kernela. Zato se pre konfigurisanja treba dobro informisati i proučiti dokumentaciju. Nakon ovog koraka, treba kompajlirati kernel i instalirati i module komandama make bzImage, make modules i make modules_install. Ukoliko pomenuti koraci prođu kako treba, ostaje da se iskopira fajl koji predstavlja kernel u direktorijum /boot i da se podesi boot loader. Fajl koji je u stvari novi kernel nalazi se u direktorijumu arch/i386/boot unutar direktorijuma koji sadrži izvorni kôd kernela i nosi naziv bzImage. Njega treba iskopirati u folder /boot i nazvati ga po želji, na primer vmlinux-2.6.xx. Treba imati na umu i to da ukoliko je prilikom konfiguracije kernela podrška za fajl sistem koji je na root particiji (/) iskompajlirana kao modul, treba napraviti initrd image koji će se učitati i napraviti virtuelni fajl sistem koji će omogućiti učitavanje modula za fajl sistem. Initrd se pravi komandom mkinitrd -o /boot/initrd.img 2.6.xx. Ostaje da boot loader dobije informacije o novom kernelu. Ukoliko se koristi GRUB, treba dodati linije koje izgledaju ovako: title Moj distro sa novim kernelom Linija initrd treba da postoji ukoliko za initrdom postoji potreba. Ako je pak boot loader LILO, treba uneti: image = /boot/vmlinuz-2.6.xx Prilikom restarta sistema u meniju će se pojaviti i novi kernel pa bi, ukoliko je sve urađeno kako treba, on trebalo da se podigne i omogući sistemu pravilno funkcionisanje. • • • Konfiguracija kernela je veoma složen postupak, to jest posebna tema. Štaviše, proces kompajliranja kernela se može razlikovati od distribucije do distribucije, pre svega u načinu instalacije pratećeg softvera i lokacije i imena pominjanih fajlova. Zbog toga je neophodno konsultovati dokumentaciju ili neki od foruma kako bi detalji karakteristični za određenu distribuciju bili uočeni. Ono što je bitno jeste da ne treba prepisivati postojeći (originalni) kernel u /boot direktorijumu i konfiguracionom fajlu boot loadera jer će tako kernel koji radi ostati za svaki slučaj. Raspakivanje i kompajliranje može raditi običan korisnik, ali se instalacija kernela i modula te podešavanje boot loadera moraju odraditi pod administratorskim (root) nalogom. Na kraju treba reći da su realno male šanse da će kompajliranje ikada zatrebati prosečnom korisniku, već je deo o kompajliranju modula i drajvera za pojedine uređaje daleko bitniji. Uvek pre kupovine hardvera treba konsultovati forume i specijalizovane sajtove na kojima se nalaze spiskovi hardvera koji radi na Linuxu, kako bi kompletan sistem bio potpuno funkcionalan odmah nakon instalacije. Ivan JELIĆ |
| |||||||||||||||||
![]()
|
![]() | |
![]() | ![]() |
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |