Next Previous Contents

3. Kako zares sestaviti jedro

3.1 Nabava izvorne kode

Izvorno kodo lahko dobite po anonimnem ftp-ju z naslova ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus, zrcalnega strežnika, ali z drugih strežnikov. Navadno je označena kot linux-x.y.z.tar.gz, kjer je x.y.z številka verzije. Novejše (boljše?) verzije in popravki so navadno v podimenikih kot npr. ,,v1.1`` in ,,v1.2``. Verzija z največjim številom je zadnja verzija in je navadno ,,testna izdaja``, kar pomeni, da ostanite raje pri glavni izdaji, če se počutiteob beta in alfa izdajah jedra počutite nelagodno.

Močno vam priporočam, da uporabite zrcalni strežnik namesto ftp.funet.fi. Tukaj je kratek seznam zrcal in drugih strežnikov:

V splošnem najprej poglejte na zrcalo mesta sunsite.unc.edu. Datoteka /pub/Linux/MIRRORS vsebuje seznam vseh znanih zrcal. Če nimate dostopa do ftp-ja, je v novičarski skupini news:comp.os.linux.announce vsak mesec objavljen spisek BBS-ov, ki imajo Linux, poskušajte ga nekako dobiti.

Če iščete splošne podatke o Linuxu in distribucijah, poskusite obiskati http://www.linux.org.

3.2 Odpakiranje izvorne kode

Prijavite se kot ,,root`` (ali pa uporabite ukaz su) in s cd spremenite imenik na /usr/src. Če ste ob prvi namestitvi Linuxa namestili tudi izvorno kodo jedra (večina jih stori tako), bo tam že imenik ,,linux``, ki vsebuje celotno staro drevo izvorne kode. Če imate dovolj diskovnega prostora in bi se radi počutili varno, ohranite ta imenik. Dobra ideja je, da zveste različico sistema, ki jo trenutno uporabljate, in ustrezno preimenujete imenik. Trenutno različico jedra zveste z ukazom ,,uname -r``. Če torej ,,uname -r`` pravi ,,1.0.9``, boste preimenovali (z ,,mv``) ,,linux`` v ,,linux-1.0.9``. Če se počutite malo bolj lahkomiselne, preprosto pobrišite celoten imenik. V vsakem primeru se prepričajte, da v /usr/src nimate imenika ,,linux``, preden odpakirate celotno izvorno kodo.

Zdaj v imeniku /usr/src odpakirajte izvorno kodo z ukazom ,,tar zxpvf linux-x.y.z.tar.gz`` (če imate samo datoteko .tar brez končnega .gz pa z ukazom ,,tar xpvf linux-x.y.z.tar``). Na zaslonu boste videli izpisane datoteke izvorne kode. Ko tar konča, boste imeli nov imenik /usr/src/linux. Naredite cd v linux in preberite datoteko README. Nekje bo razdelek z naslovom ,,INSTALLING the kernel`` (,,NAMESTITEV jedra``). Upoštevajte navodila, kjer je to primerno -- simbolične povezave, ki morajo biti na pravih mestih, brisanje ostalih datotek .o itd.

3.3 Nastavitev jedra

Opomba: Nekaj tega je reiteracija/razjasnitev podobnega razdelka v Linusovi datoteki README.

Ukaz ,,make config`` v imeniku /usr/src/linux požene nastavitveno skripto, ki vas vpraša veliko vprašanj. Potrebuje ukazno lupino bash, zato preverite, če ta obstaja v /bin/bash, /bin/sh, ali $BASH.

Morda boste raje uporabljali katero od alternativ ukazu ,,make config``. Tisti, ki poganjate grafični sistem X, lahko poskusite ,,make xconfig``, če imate nameščen programski paket Tk (,,klik-o-rama`` - Nat). ,,make menuconfig`` je za tiste, ki imate (n)curses in bi radi imeli tekstovne menuje. Ta dva vmesnika imata bistveno prednost pred standardnim: če zamočite in med konfiguracijo izberete napačno izbiro, lahko greste nazaj in zadevo popravite.

Pripravljeni ste na odgovarjanje nekaj vprašanj, navadno z ,,y`` (da) ali ,,n`` (ne). Gonilnik naprav imajo tipično izbiro ,,m``. Ta pomeni ,,modul``, se pravi, da ga bo sistem prevedel, ne pa tudi vključil neposredno v jedro. Na voljo bo kot nalagalni modul. Bolj duhovit način za opis te izbire bi bil ,,mogoče``. Nekatere bolj očitne in ne-kritične izbire tukaj niso opisane; glejte razdelek ,,Druge nastavitvene izbire`` za kratek opis nekaj posameznih izbir.

V jedrih 2.0.x in poznejših je na voljo tudi izbira ,,?``, ki poda kratek opis posameznega nastavitvenega parametra. Ta informacija je verjetno najbolj sveža.

3.3.1 Kernel math emulation (emulacija matematičnih operacij v jedru)

Če nimate matematičnega koprocesorja (imate le goli procesor 386 ali 486SX), morate tukaj reči ,,y``. Če imate koprocesor in rečete ,,y``, ne skrbite preveč -- koprocesor se bo še vedno uporabljal, emulacija pa ignorirala. Edina posledica bo, da bo jedro večje (in zato tudi večja potrošnja pomnilnika). Baje je emulacija matematike počasna; čeprav to nima dosti opraviti s tem razdelkom, je mogoče nekaj, česar se je vredno spomniti, če imate opraviti s polžjim obnašanjem grafičnega sistema X.

3.3.2 Normal (MFM/RLL) disk and IDE disk/cdrom support (podpora normalnim diskom (MFM/RLL) in diskom/CD-ROM-om tipa IDE)

Verjetno morate to podpreti; pomeni, da bo jedro podpiralo standardne trde diske, ki jih najdemo v osebnih računalnikih večine ljudi. Ta gonilnik ne vključuje pogonov SCSI; v nastavitvah pridejo ti na vrsto kasneje.

Nastavitveni program vas bo nato vprašal ali želite podporo le starim diskom (,,old disk-only``) in novim diskom IDE (,,new IDE``). Izbrati morate eno od teh možnosti; glavna razlika je v tem, da stari gonilnik podpira le dva diska na enem vmesniku, medtem ko novi podpira drugi vmesnik in CD-ROM-e IDE/ATAPI. Novi gonilnik je 4 KB večji od starejšega in naj bi bil ,,izpopolnjen``, kar pomeni, da poleg vsebovanja različnega števila hroščev verjetno tudi izboljša obnašanje vašega diska, posebej, če imate novejšo strojno opremo tipa EIDE.

3.3.3 Networking support (omrežna podpora)

Tukaj boste zelo verjetno rekli ,,y``, saj želite, da bo vaš računalnik omrežen na Internet ali da bo dostopal vanj preko SLIP, PPP, term itd., torej s klicnim dostopom. Vendar, ker veliko paketov (kot na primer sistem X window) potrebuje omrežno podporo tudi, če vaš računalnik ne živi v pravem omrežju, boste tukaj vseeno rekli ,,y``. Pozneje vas bo program vprašal, če želite omrežno podporo protokolu TCP/IP; spet boste odgovorili z ,,y``, če niste absolutno prepričani v nasprotno.

3.3.4 Limit memory to low 16MB (omejitev pomnilnika na spodnjih 16 MB)

Obstajajo nekateri hroščati krmilniki za 386 z DMA, ki imajo probleme z naslavljanjem česarkoli več kot 16 MB RAM; v (redkem) primeru, da imate takšnega, boste odgovorili z ,,y``.

3.3.5 System V IPC (medprocesna komunikacija Systema V)

Ena najboljših definicij IPC (Interprocess Communication, medprocesna komunikacija) je v slovarčku knjige Programming Perl: ,,včasih se mora proces le pogovoriti z drugim procesom``. Ne preseneča nas torej, da nekateri perlovski programerji dovoljujejo procesom, da se pogovarjajo drug z drugim, kot to počne tudi veliko drugih paketov (najbolj znan je DOOM), torej izbira ,,n`` ni dobra ideja, razen, če točno veste, kaj počnete.

3.3.6 Processor type (386, 486, Pentium, PPro) (tip procesorja)

(v starejših jedrih: uporabite zastavico -m486 za optimizacije za 486)

Včasih je to vključilo posebne optimizacije za določen procesor; jedro je teklo povsem dobro na ostalih čipih, a je bilo mogoče malo večje. V novejših jedrih pa to ni več res, zato vnesite procesor, za katerega prevajate jedro. Jedro za ,,386`` bo delovalo na vseh strojih.

3.3.7 SCSI support (podpora SCSI)

Če imate naprave tipa SCSI, recite ,,y``. Vprašani boste po nadaljnih podatkih, kot je podpora CD-ROM-om, diskom in katere vrste vmesnik SCSI imate. Za več podrobnosti preberite SCSI-HOWTO.

3.3.8 Network device support (podpora omrežnim napravam)

Če imate mrežno kartico ali bi radi uporabljali SLIP, PPP ali paralelni vmesnik za dostop na Internet, recite ,,y``. Nastavitvena skripta vas bo vprašala o tipu kartice in protokolu, ki ga boste uporabljali.

3.3.9 Filesystems (datotečni sistemi)

Nastavitvena skripta vas bo vprašala, če želite imeti naslednje datotečne sisteme podprte v jedru:

3.3.9.1 Vendar jaz ne vem, katere datotečne sisteme potrebujem!

Prav, napišite ,,mount``. Izpis bo približno takšen:

blah:# mount 
/dev/hda1 on / type ext2 (defaults) 
/dev/hda3 on /usr type ext2 (defaults) 
none on /proc type proc (defaults) 
/dev/fd0 on /mnt type msdos (defaults)

Poglejte v vsako vrstico; beseda poleg ,,type`` je ime datotečnega sistema. V tem primeru sta moja datotečna sistema / in /usr tipa ,,second extended``, uporabljam /proc in nameščena je disketa z datotečnim sistemom msdos (bljak).

Poskusite tudi ,,cat /proc/filesystems``, če imate trenutno vklopljen /proc; to bo izpisalo vaše trenutne datotečne sisteme v jedru.

Namestitev redko uporabljanih, ne-nujnih datotečnih sistemov lahko povzroči napihnjeno jedro; glejte razdelek o modulih za način, kako se temu izognete in razdelek ,,Velika ali počasna jedra`` o tem, zakaj je napihnjeno jedro nezaželjen pojav.

3.3.10 Character devices (znakovne naprave)

Tukaj vključite gonilnike za vaš tiskalnik (pravzaprav, tiskalnik na vzporednih vratih), miško, priklopljeno na vrata busmouse ali PS/2 (veliko notesnikov uporablja miškovni protokol PS/2 za njihove vgrajene sledilne kroglice), nekatere tračne enote in druge takšne ,,znakovne`` naprave. Recite ,,y``, če je tako prav.

Opomba: Selection je program, ki vam omogoča uporabo miške izven sistema X window za izrezovanje in prilepljanje besedila med navideznimi zasloni. Dobro je, če imate serijsko miško, saj ta lepo shaja z X-i, za druge miške pa morate uporabiti posebne trike. Včasih je bila podpora programu selection izbira pri prevajanju jedra, a je zdaj standardna.

Še ena opomba: Selection je zastarel program. Ime novega programa je ,,gpm``. Lahko počne zanimive zadeve, kot preslikavanje mišjih protokolov, uporabo več miši ipd.

3.3.11 Sound card (zvočna kartica)

Če imate veliko željo slišati, kako biff laja, recite ,,y``, in pozneje vas bo drug program vprašal o vaši zvočni kartici. (Opomba glede konfiguracije zvočne kartice: ko vas vpraša, če želite namestiti polno različico gonilniko, lahko rečete ,,n`` in prihranite nekaj jedrnega pomnilnika z izbiro le tistih lastnosti, ki se vam zdijo potrebne.) Zelo priporočam ogled Sound-HOWTO za več podrobnosti, če imate zvočno kartico.

3.3.12 Druge nastavitvene možnosti

Vse nastavitvene izbire tukaj niso naštete, saj se prepogosto spreminjajo ali so same po sebi razvidne (na primer, podpora 3Com 3C509 za točno to kartico ethernet). Obstaja precej obsežen seznam vseh izbir (in način, kako jih uvrstimo v skripto Configure), ki ga je zbral Axel Boldt <axel@uni-paderborn.de> na naslovu http://math-www.uni-paderborn.de/~axel/config_help.html ali po anonimnem ftp-ju na ftp://sunsite.unc.edu/pub/Linux/kernel/config/ v datoteki krnl_cnfg_hlp.x.yz.tgz, kjer je x.yz številka verzije.

V novejših jedrih (2.0.x in pozneje) je ta seznam integriran v drevo izvorne kode.

3.3.13 Kernel hacking (hekanje jedra)

Iz Linusove datoteke README:

Izbira ,,hekanje jedra`` navadno vodi v večje in počasnejše jedro (ali v oboje) in lahko naredi jedro manj stabilno tako, da prekodira nekatere rutine, ki aktivno poskušajo sesuti slabo kodo in s tem najti jedrne probleme (kmalloc()). Torej boste, če ste navadni smrtnik, tukaj odgovorili z ,,n``.

3.4 Pa zdaj? (Datoteka Makefile)

Ko naredite make config, vam sporočilo pove, da je jedro nastavljeno in da naj pogledate ,,najvišje-nivojsko datoteko Makefile za dodatno nastavitev`` itd.

Poglejte torej Makefile. Verjetno vam ga ne bo treba spreminjati, a nikoli ne škodi, če pogledate. Po namestitvi novega jedra lahko spreminjate izbire tudi z ukazom ,,rdev``.


Next Previous Contents