Kernel je deo operativnog sistema koji omogućava pristup hardveru, koji vrši
kontrolu procesa i sveobuhvatnu kontrolu sistema. U kernelu se nalazi podrška za
vaš harver, tako da je izbor pravog kernela za vaš sistem važan korak.
Slackware nudi više nego tuce prekompajliranih krenela koje možete da
izaberete. Svaki od njih uključuje set standardnih i specifičnih drajvera. Bilo
da koristite jedan od prekompajliranih kernela ili da gradite kernel iz izvornog koda,
vodite računa da li vaš krenel podržava hardver koji imate.
Prekompajlirani Slackware kerneli se nalaze u /kernels
direkotirijumu Slackware CD-ROM-a ili na FTP sajtu u glavnom Slackware direktorijumu.
Dostupni kerneli se menjaju kako izlaze nova izdanja, tako da je dokumentacija koja se
nalazi u tom direktorijumu adekvatan i merodavan izvor informacija. /kernels direktorijum ima poddirektorijume za svaki postojeći
kernel. Ti podirektorijumi imaju isto ime kao i njihovi propratni boot diskovi. U svakom
poddirektorijumu ćete naći sledeće datoteke:
Da biste koristili kernel, kopirajte System.map i config datoteke u vaš /boot
direktorijum, a kernel image kopirajte i preimenujte kao /boot/vmlinuz fajl. Pokrenite /sbin/lilo(8) da instalirate LILO za novi kernel, i na kraju
restartujte sistem. To je sve što se tiče instaliranja novog kernela.
Kerneli čije se ime završava sa .i su IDE kerneli. Oni ne sadrže SCSI
podršku. Kerneli čije se ime završava sa .s su SCSI kerneli. Oni
sadrže obe podrške, IDE podršku kao u .i kerneli, plus SCSI
podršku.
Pitanje “Da li treba da kompajliram krenel za moj sistem?” često
postavljaju novi korisnici. Krajnji odgovor je možda. Postoji nekoliko situacija
kada se pribegava kompajliranju kernela prema vlastitim potrebama. Većina korisnika
koristi prekompajliran kernel sa učitljivim modulima da bi dobili potpun operativan
sistem. Možda želite da kompajlirate kernel pošto vršite nadogradnju
sa jedne verzije na drugu koja trenutno nije poržana od strane Slackware-a, ili
želite da zakrpite izvorni kod kernela da biste omogućili da specijalna
hardverska komponeneta proradi, jer nema podršku u kernelu koji je došao.
Takođe, mnogi korisnici su primetili da je kernel kompajliran po vlastitim potrebama
brži. I za vas će možda biti korisno da kompajlirate kernel sa
optimizacijama za specifični procesor na vašoj mašini.
Izgradnja kernela i nije tako teška. Prvi korak je da vidite da li je izvorni kod
kernela instaliran. Uverite se da su instalirani svi paketi iz K serije u toku
instaliranja sistema. Isto tako osigurajte se da su instalirani paketi iz D serije,
posebno C kompajler, GNU make, i GNU binutils. Uopšteno, dobra je ideja da ste
instalirali sve pakete iz D serije ako kasnije planirate bilo kakvu vrstu razvoja
programa. Isto tako možete da preuzmete poslednji izvorni kod kernela sa http://www.kernel.org/mirrors.
% su -
Password:
# cd /usr/src/linux
|
Prvi korak je da dovedete kod kernela u osnovno stanje (base state). Unećete
sledeću komandu da to odradi (možete ako želite da napravite kopiju .config fajla pošto će ga navedena komanda obrisati bez
upozorenja):
Sada možete da konfigurišete kernel za vaš sistem. Sadašnji kernel
koristi tri načina za svoje konfigurisanje. Prvi način je baziran na tekstu sa
sistemom pitanja i odgovora. Odgovara se na gomilu pitanja nakon čega se
izgrađuje konfiguraciona datoteka. Problem sa ovim metodom je da ako ste nešto
pogrešili morate sve ispočetka. Metod koji većina ljudi preferira se
zasniva na korišćenu menija. Na kraju, postoji konfiguracinoni alat koji
koristi X sistem. Izaberite onaj koji želite, zadavanjem odgovarajuće
komande:
# make config (tekstualna pitanje&odgovor verzija)
# make menuconfig (tekstulana verzija sa menijima)
# make xconfig (X-bazirana verzija, budite sigurni da ste u X-u prvo)
|
Za nove korisnike izbor bi najverovatnije bio menuconfig zbog
lakoće korišćenja. Ekrani pomoći objašnjavaju različite
oblasti kernela. Posle konfigurisanja kernela, izađite iz programa za
konfigurisanje. Na taj način ćete stvoriti konfiguracione fajlove. Sada
možemo da pripremimo stablo sa izvornim kodom kernela za izgradnju:
Sledeći korak je kompajliranje kernela. Prvo pokušajte sa opcijom bzImage:
To može da potraje, u zavisnosti od brzine procesora. Dok traje kompajliranje,
videćete poruke koje šalje kompajler. Posle izgradnje slike kernela, možda
ćete želeti da izgađujete svaki deo koji je markiran kao modularan.
Sada možemo da instaliramo kernel i module koje ste kompajlirali. Da bi se to
uradilo na Slackware sistemu, koriste se sledeće komande:
# mv /boot/vmlinuz /boot/vmlinuz.old
# cat arch/i386/boot/bzImage > /boot/vmlinuz
# mv /boot/System.map /boot/System.map.old
# cp System.map /boot/System.map
# make modules_install
|
Sada morate da editujete datoteku /etc/lilo.conf tako da u
nju dodate stavku koja se odnosi na pokretanje vašeg starog kernela, što je
potrebno za slučaj da nešto ne krene dobro. Posle toga, pokrenite /sbin/lilo komandu da instalirate novi boot blok. Sada možete
da restartujete sistem.
Kompajliranje 2.6 kernela se dosta malo razlikuje od kompajliranja 2.4 ili 2.2
kernela, ali je ipak važno da shvatite te razlike pre nego što krenete u posao.
Više nije potrebno da pokrećete make dep i make clean komande. Takođe, poruke koje prate proces
kompilacije kernela 2.6 serije nisu puno opširne. Na taj način je proces
izgradnje lako razumljiv, mada sa pomalo oskudnim propratnim informacijama. Ako se javlja
problem u izgradnji kernela, obavezno se preporučuje uključivanje ispisivanja
poruka (verbosity). Jednostavno dodajte V=1
opciju kada
počnete izgradnju. Na ovaj nači možete da imate opširan dnevnik (log)
informacija na osnovu koga programer kernela ili vaš geek prijatelj vam može
pomoći u rešavanju problema.
Kernel moduli su drugo ime za upravljače uređaja koji se mogu umetnuti u
već pokrenut kerenel. Oni vam omogućavaju da proširite hardversku
podršku bez potrebe da vršite izbor novog kerela ili da lično vršite
kompajliranje.
Modili se isto tako mogu učitavati ili izbacivati u bilo koje vreme čak i
kada je sistem pokrenut. Na ovaj način administrator sistema jednostavo vrši
dogradnju određenih drajvera. Novi moduli se mogu kompajlirati, stari ukloniti, i
novi učitati bez potreba za restartom mašine.
Moduli su smešteni u datoteci /lib/modules/verzija kernela vašeg sistema. Oni mogu biti
učitani u toku pokretanja preko rc.modules datoteke. Ova
datoteka je dosta dobro komentarisana i ima primera koji se odnose na važne
hardverske komponente. Da biste videli listu modula koji su trenutno aktivni koristite
lsmod(1) komandu:
# lsmod
Module Size Used by
parport_pc 7220 0
parport 7844 0 [parport_pc]
|
Možete videti da ovde postoji samo modul za paralelni port. Da biste uklonili
modul, koristite komandu rmmod(1). Moduli se mogu učitati
komandame modprobe(1) i insmod(1).
Korišćenje modprobe komande je bolje pošto
pokušava da učitava i module zavisnosti.
Mnogo korisnika nikada nije učitala ili uklonila ručno neki modul. Oni
koriste kernelov autoloader za upravljanje modulima. Podrazumevano, Slackware dolazi sa
kmod
opcijom u svojim kernelima. . kmod
je opcija kernela koja omogućava da kernel automatski
učitava module onda kada se javlja potreba. Za više informacija o kmod
opciji, i tome kako se ona konfiguriše, pogledajte /usr/src/linux/Documentation/kmod.txt fajl. Potrebno je da imate
paket sa izvornim kodom kernela, odnosno da ga preuzmete sa http://kernel.org.
Više informacija se može naći u man stranama za svaku od ovih komadi,
plus u rc.modules fajlu.