LAKI PINGVINI<>
062006<><>

Podešavanje Linux kernela

Gde, šta i kako uključiti

U prošlom broju smo započeli priču o tome kako i šta raditi kada Linux ne može da prepozna i upotrebi hardver koji je potrebno koristiti (SK 05/2006). Jedan od prvih koraka pri kompajliranju kernela (jezgra) jeste konfiguracija, pri čemu treba uključiti ili isključiti podršku za određeni hardver ili neku mogućnost. Ovoga puta govorimo o tome šta i kako podesiti da bi novonapravljeni Linux proradio kako valja.

Prvo alat

Konfiguracija kernela se može obaviti na više načina. Generalno, postoje dva uobičajena, od kojih je jedan rezervisan za tastaturu, a drugi za miš. Nećemo se zadržavati na najprimitivnijem načinu konfiguracije komandom make config jer je vrlo neugodan usled nemogućnosti povratka nazad i opoziva akcija. Opcije se prikazuju tekstualno jedna za drugom pa je ponekad teško shvatiti šta je u vezi sa čime usled loše preglednosti. Zato, ukoliko želite konfiguraciju u terminalu, konfiguracija sistemom menija jeste stvar za vas.

Ovakav metod podešavanja se dobija komandom make menuconfig kada se u terminalu prikazuje sistem ncurses menija kroz koje se kreće strelicama na tastaturi, pristupa im se pritiskom na ’Enter’, a iz njih izlazi preko tastera ’Escape’ ili izborom stavke Exit na dnu dijaloga. Kako bi ovaj metod funkcionisao, potrebno je imati instalirane razvojne ncurses biblioteke (paket se obično naziva libncurses-dev i slično). Aktiviranje određene opcije se može odraditi u tri nivoa. Opcija se uključuje direktno u kernel pomoću tastera za pravac (gore i dole) i pritiskom tastera ’Y’. Za isključivanje je potrebno pritisnuti ’N’, dok se opcija kao modul uključuje pritiskom na taster ’M’. Sve ovo je moguće uraditi i tasterom ’Space’ pri čemu će mogućnosti biti menjane redom. U donjem delu dijaloga se nalaze opcije ’Select’ (ona je podrazumevano izabrana pa će svaki pritisak na taster ’Enter’ značiti ’Select’), ’Exit’ i ’Help’. Željena opcija se bira tasterima levo ili desno. Opcija ’Help’ je u većini slučajeva od koristi jer su tekstovi za pomoć uglavnom jasni. Pomoć se može dobiti i pritiskom na taster ’?’ (upitnik). Ne treba zaboraviti ni dve opcije na dnu početnog dijaloga koje se odnose na čuvanje i učitavanje konfiguracije iz datoteke.

Zvezdica ispred opcije znači da je ona direktno uključena u kernel, M označava da će biti kompajlirana kao modul, dok je prazno polje, pogađate, pokazatelj da je ta opcija isključena.

S druge strane, postoji mogućnost konfiguracije kernela mišem u grafičkom režimu. Mogu se izvršiti make xconfig (za koji je potrebno obezbediti razvojne QT biblioteke verzije 3) ili make gconfig (za koji su neophodne GTK biblioteke verzije 2.4). Ono što je karakteristično za ovaj metod jeste prikazivanje pomoćnog teksta u delu prozora pa nema potrebe za pozivanjem Helpa.

Na kraju, ukoliko postoji već pripremljena datoteka sa konfiguracijom, moguće je iskopirati je u direktorijum koji sadrži izvorni kôd kernela, sa nazivom .config, a zatim pokrenuti make oldconfig čime će kernel brzo biti konfigurisan, a ukoliko postoje razlike u postavkama između pripremljene konfiguracije i novih postavki kernela, korisniku će biti ponuđeno da ih podesi.

Akcija

Prvi pogled na broj i raznovrsnost opcija će učiniti razumljivom činjenicu da je nemoguće sve ih pomenuti. Zato ćemo akcenat staviti na ono što većini može biti kritično, dok će za ostale biti date samo smernice u cilju upućivanja ka daljem istraživanju.

Ono što je preporučljivo manje iskusnim korisnicima (kojima je ovaj tekst prvenstveno i namenjen) jeste prethodno učitavanje konfiguracione datoteke kernela koji već radi kako valja i korišćenje izvornog kôda koji se isporučuje uz korišćenu distribuciju (paket obično nosi naziv kernel-source ili linux-source i prilikom njegovog instaliranja će se u direktorijumu /usr/src pojaviti arhiva sa izvornim kôdom kernela). Razlog za ovo jeste pojava da distribucije dopunjuju kernele koje koriste, pa se oni razlikuju od Vanilla kernela koji se može preuzeti sa www.kernel.org (bootsplash, na primer). Konfiguraciona datoteka se kod većine distribucija nalazi u direktorijumu /boot i nosi oznaku kernela koji se koristi, a ona se može saznati komandom uname -r. Na ovaj način će većina vitalnih opcija biti od početka podešena kako valja, čime se umanjuje mogućnost da nakon kompajliranja kernel ne radi kako treba. Iskusni korisnici koji znaju da podese kernel od nule neće imati potrebe da ovo rade, mada njima ovaj tekst nije ni namenjen. Stoga krećemo.

Prvi meni koji se pojavljuje nakon komande make menuconfig jeste Code maturity level options. Ovaj deo je bitan zato što sadrži mogućnost uključivanja i prikazivanja opcija koje su u fazi razvoja, što može biti korisno u situaciji kada je neki uređaj moguće pokrenuti samo drajverom koji je još uvek u razvoju. Sledeći deo koji ne treba propustiti je Loadable module support u kojem se podešava mogućnost pravljenja modula, tj. mogućnosti da se nešto uopšte označi kao modul. Pored toga, moguće je podesiti automatsko učitavanje modula ili njihovo isključivanje. Ono što može biti naročito interesantno nalazi se u sekciji Processor type and features. U ovom delu se može odabrati specifični model procesora (arhitekturu nećemo pominjati jer je PC u procentima zastupljenosti vrlo blizu 100). Pored toga, moguće je podesiti Preemption Model što će kernel učiniti bržim, a testovi su pokazali da je ubrzanje ponekad zaista osetno. Ukoliko podešavate višeprocesorsku mašinu ili procesor sa više jezgara, ovde možete uključiti podršku za njega. Sledeća sekcija sadrži opcije vezane za Power Management (ACPI i APM). Pored pomenutih modela funkcionisanja moguće je podešavati i podršku za promenu radnog takta procesora u letu, što je naročito korisno kod notebook računara u cilju uštede energije. Sledeće dve kategorije sadrže opcije za podršku raznih tipova magistrala (PCI, ISA, PCMCIA) i tipova izvršnih datoteka, pri čemu je moguće isključiti podršku za neke zastarele standarde koji podrazumevano mogu biti uključeni. Sledeći deo, pod nazivom Networking, tiče se mrežnih protokola gde je potrebno obratiti pažnju na podršku za TCP/IP bez kojeg Ethernet i Internet neće raditi. Ukoliko postoji potreba za bežičnim umrežavanjem, podrška za te protokole prisutna je u ovoj sekciji. U sledećoj sekciji, Device Drivers, moguće je podešavati podršku za uređaje svih vrsta. Ovo je vrlo obimna sekcija, što se ulaskom u nju može primetiti.

U ovom delu postoje sekcije za sav mogući hardver koji može postojati na nekom PC računaru. Pored pojedinačnih uređaja ili njihovih grupa, ovde se može uključiti ili isključiti podrška za čitave sisteme poput USB-a, FireWirea ili podrške za zvuk i video. Ono što je naročito bitno jeste to što je ovaj deo nadležan i za podršku za čip-setove ili interfejse poput ATA na primer. Zato je neophodno znati šta se sme, a šta ne sme isključivati kako bi kernel bio funkcionalan. Iako su drajveri za većinu hardvera dostupni kao moduli, dešavalo se da neke muzičke karte nisu htele da funkcionišu dok nije obavljena intervencija na kernelu. Stoga ponekad ima smisla zasukati rukave i pozabaviti se stvarima o kojima pričamo. Pomenuli smo ono što je od vitalnog značaja za funkcionisanje kernela, a ostalo zavisi od svakog računara i odabira hardvera u njemu. Mrežni deo može biti interesantan jer se tu nalazi i podrška za PPP bez čega Internet u Srbiji (u većini slučajeva) neće raditi.

Ono što sledi nakon drajvera jeste vrlo bitan i potencijalno kritičan deo. Radi se o fajl-sistemima i ovde je vrlo bitno obratiti pažnju na to šta se i kako uključuje odnosno isključuje. Suština je da podrška za fajl-sistem koji se koristi mora postojati jer bi njegovo isključivanje praktično bilo sečenje grane na kojoj se stoji. Ukoliko se fajl-sistem uključi kao modul, onda će biti potrebno napraviti initrd sliku, o čemu je bilo reči u prošlom broju. U budućnosti se očekuje da će initrd biti neophodan bez obzira na to kako je podrška za fajl-sistem uključena u kernel, što je Debian na primer već uradio, kao i distribucije bazirane na njemu. Pored podrške za Linux fajl-sisteme, postoji podrška i za fajl-sisteme drugih operativnih sistema. Verovatno najinteresantnija jeste podrška za FAT32 i NTFS, s tim što je pisanje na NTFS particijama ograničeno (može se pisati samo u okviru iste datoteke na prostoru alociranom za nju, tj. veličina joj se ne može menjati). Stoga budite oprezni u ovom delu jer posledice nepromišljenih poteza mogu biti fatalne.

Ovo je ujedno bio i poslednji deo na koji je bilo potrebe skretati pažnju. Security može biti interesantan korisnicima koji se razumeju u problematiku, ali su takvi verovatno preskočili ovaj članak.

Neophodno je dodati i ovo...

Ono što treba naglasiti jeste da pored potencijalnog osposobljavanja nekog egzotičnog hardvera, čeprkanje po kernelu može imati valjanu svrhu. Svaki računar je posebna celina i skoro je nemoguće napraviti sistem koji će se dovoljno dobro prilagoditi svakoj konfiguraciji. Linux je moguće potpuno prilagoditi računaru na kojem se koristi, isključivanjem onoga što ne postoji na njemu i omogućavanjem još bolje podrške za ono što postoji (setite se procesora). Brže podizanje sistema i slobodnija memorija sa manje učitanih modula faktori su koji dovode do boljeg iskorišćenja resursa računara. Na kraju, šta mislite kako je Apple uspeo toliko da prilagodi operativni sistem svom hardveru?

Moduli su generalno dobra ideja jer omogućavaju aktiviranje podrške za neki hardver kada za time postoji potreba. Skoro sve distribucije isporučuju potpuno modularni kernel gde je skoro sve kompajlirano u vidu modula koji se učitavaju po potrebi. Ovako se postiže isti nivo funkcionalnosti na bilo kom PC računaru. No, uključivanje određenih drajvera direktno u kernel i optimizacija za konkretni procesor donose bolje performanse koje su nadohvat ruke.

Dakle, konfiguracija kernela je vrlo ozbiljan posao. U GNU/Linuxu je kernel otvoren i može se videti pa su mogućnosti prilagođavanja i istraživanja dostupne svima. Zato takvo stanje ume da privuče korisnika da krene u avanturu i skoro svaki iole napredniji korisnik računara probao je da kompajlira kernel. Pre upuštanja u ovaj posao treba da bude jasno koji hardver postoji u računaru i treba imati uvid u njegove karakteristike. Internet je takođe nepresušan izvor informacija na kojem se može saznati puno o tome šta i kako uraditi kada su konkretne stvari u pitanju. Stoga, pre nego što se okušate u ovome, obezbedite se da prilikom potencijalnog kraha ne bude gubitaka. Obnovite gradivo iz prošlog broja i ostavite u boot loaderu i kernel koji radi kako treba. A da li će uspeti? Ako je za utehu, skoro nikome nije uspelo iz prve.

Ivan JELIĆ

 
Podešavanje Linux kernela
Šta mislite o ovom tekstu?
Enkripcija fajl-sistema na GNU/Linuxu
Podešavanje i upotreba TV tjunera na GNU/Linuxu

Platforma:
GNU/Linux
Adresa:
www .kernel .org
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera