Jedro Linuxa, HOWTO
 Brian Ward, [email protected]
 v1.0, 5. junij 1999

 To je slovenski prevod datoteke Kernel-HOWTO, podrobnega vodnika nas�
 tavitev jedra operacijskega sistema Linux, prevajanja, nadgradnje in
 odpravljanja problemov za sisteme s procesorji ix86.
 ______________________________________________________________________


 Kazalo


 1. Uvod

    1.1 Najprej preberite tole! (In to res mislim!)
    1.2 O stilu

 2. Pomembna vpra�anja in njihovi odgovori

    2.1 Kaj pravzaprav sploh po�ne jedro?
    2.2 Zakaj bi si �eleli nadgraditi svoje jedro?
    2.3 Katero strojno opremo podpirajo nova jedra?
    2.4 Katero razli�ico prevajalnika gcc in knji�nice libc potrebujem?
    2.5 Kaj je nalagalni modul (loadable module)?
    2.6 Koliko prostora potrebujem na disku?
    2.7 Kako dolgo traja?

 3. Kako zares sestaviti jedro

    3.1 Nabava izvorne kode
    3.2 Odpakiranje izvorne kode
    3.3 Nastavitev jedra
       3.3.1 Kernel math emulation (Processor type and features)
       3.3.2 Enhanced (MFM/RLL) disk and IDE disk/cdrom support
           (Block Devices)
       3.3.3 Networking support (General Setup)
       3.3.4 System V IPC (General Setup)
       3.3.5 Processor family (Processor type and features)
       3.3.6 SCSI support
       3.3.7 Network device support
       3.3.8 Filesystems
          3.3.8.1 Vendar jaz ne vem, katere datote�ne sisteme potrebujem!
       3.3.9 Character devices
       3.3.10 Sound
       3.3.11 Druge nastavitvene mo�nosti
       3.3.12 Kernel hacking
    3.4 Pa zdaj? (Datoteka Makefile)

 4. Prevajanje jedra

    4.1 �i��enje in urejanje odvisnosti
    4.2 �as za prevajanje
    4.3 Drugi cilji ,,make``
    4.4 Namestitev jedra

 5. Popravljanje jedra

    5.1 Uporaba popravka
    5.2 �e se kje zalomi
    5.3 Kako se znebite datotek .orig
    5.4 Drugi popravki

 6. Dodatni paketi

    6.1 kbd
    6.2 util-linux
    6.3 hdparm
    6.4 gpm

 7. Nekatere pasti

    7.1 make clean
    7.2 Velika ali po�asna jedra
    7.3 Vzporedna vrata ne delujejo/tiskalnik ne deluje
    7.4 Jedro se ne prevede
    7.5 Novo jedro se no�e zagnati
    7.6 Pozabili ste pognati LILO, ali pa se sistem sploh ne za�ene
    7.7 Izpi�e ,,warning: bdflush not running``
    7.8 Mojega CD-ROM-a IDE/ATAPI ne prepri�am, da bi deloval
    7.9 Izpisuje �udne re�i o zastarelih zahtevah za usmerjanje
         (obsolete routing requests)
    7.10 Po�arni zid ne deluje v 1.2.0
    7.11 ,,Not a compressed kernel Image file`` (datoteka s sliko
         jedra ni komprimirana)
    7.12 Te�ave z zaslonskim terminalom po nadgradnji na 1.3.x
    7.13 Po nadgradnji jedra ne morem prevajati zadev
    7.14 Pove�anje omejitev

 8. Opomba o nadgradnji na razli�ice 2.0.x, 2.2.x

 9. Moduli

    9.1 Namestitev modulskih pripomo�kov
    9.2 Moduli, distribuirani poleg jedra

 10. Nasveti in triki

    10.1 Preusmeritev izhoda ukazov make in patch
    10.2 Pogojna in�talacija jedra
    10.3 Nadgradnje jedra

 11. Ostali HOWTO-ji, ki bi lahko bili uporabni

 12. Razno

    12.1 Avtor
    12.2 Narediti
    12.3 Prispevki
    12.4 Pravice raz�irjanja, licenca, in te stvari

 ______________________________________________________________________


 1.  Uvod


 Naj sploh berete ta dokument?  No, poglejte, �e imate katerega od
 na�tetih simptomov:

 *  ,,Aaa! Tale paket wizzo-46.5.6 pravi, da potrebuje jedro izdaje
    vsaj 2.8.193, jaz pa imam �e vedno izdajo 1.0.9!``

 *  V enem novej�ih jeder je gonilnik za neko napravo, ki ga preprosto
    morate imeti.

 *  Nimate najmanj�ega pojma, kako prevesti jedro.

 *  ,,Je stvar v datoteki README res vsa zgodba?``

 *  Pri�li ste, poskusili, ni delovalo.

 *  Potrebujete nekaj, kar bi dali ljudem, ki vas mu�ijo s pro�njami,
    da namesto njih namestite njihova jedra.


 1.1.  Najprej preberite tole! (In to res mislim!)


 Nekateri primeri v tem spisu predpostavljajo, da imate GNU tar, find
 in xargs.  Ti so kar standardni; to vam ne bi smelo povzro�ati
 preglavic.  Predvidevam tudi, da poznate datote�no strukturo va�ega
 sistema; �e je ne, je pomembno, da imate pri roki izpisano kopijo
 izhoda ukaza mount med normalnim delovanjem sistema (ali izpis
 datoteke /etc/fstab, �e ga znate brati).  Te informacije so pomembne
 in se ne spreminjajo, razen, �e razparcionirate svoj disk, dodate
 novega, ponovno namestite svoj sistem, ali kaj podobnega.

 Zadnja stabilna razli�ica jedra je bila v �asu pisanja tega spisa
 2.2.9, torej se sklicevanja in primeri nana�ajo na to izdajo.  �eprav
 posku�am narediti ta spis karseda neodvisen od razli�ice, se jedro
 nenehno razvija, torej bo novej�a razli�ica neizogibno vsebovala nekaj
 sprememb.  To vam ne bi smelo povzro�ati ve�jih te�av, lahko pa vas
 malce zmede.

 Obstajata dve razli�ici izvorne kode jedra Linuxa; stabilna (angl.
 ,,production``) in razvojna (angl. ,,development``).  Stabilne izdaje
 imajo sodo malo �tevilo: 1.2.x je bila stabilna, 2.0.x prav tako, in
 tudi 2.2.x.  Ta jedra se smatrajo za najbolj stabilne in razhro��ene
 razli�ice v �asu njihove izdaje.  Razvojna jedra (2.1.x, 2.3.x itd.)
 so jedra, namenjena preizku�anju, za ljudi, ki bi radi preizkusili
 nova in morda zelo hro��ata jedra.  Bili ste opozorjeni!


 1.2.  O stilu


 Besedilo, ki je videti takole je nekaj, kar se prika�e na va�em
 zaslonu, ime datoteke ali nekaj, kar lahko neposredno vtipkate, na
 primer ukaz ali izbire pri ukazu (�e gledate tekstovno razli�ico tega
 spisa, zgornje besedilo ne izgleda ni� druga�e).  Ukazi in drugi vnosi
 so pogosto citirani (z ,, ``), v slovenskem prevodu takole: ,,make
 config``.


 2.  Pomembna vpra�anja in njihovi odgovori


 2.1.  Kaj pravzaprav sploh po�ne jedro?


 Jedro Unixa deluje kot posrednik med va�imi programi in strojno
 opremo.  Najprej, dela (ali poskrbi za) upravljanje s pomnilnikom za
 vse teko�e programe (procese) in poskrbi, da vsi dobijo po�ten (ali
 nepo�ten, �e tako �elite) dele� ciklov procesorja.  Poleg tega daje
 programom prijazen, precej prenosljiv, vmesnik za pogovor z va�o
 strojno opremo.

 Gotovo ima jedro ve� dol�nosti kot samo ti dve, a najpomembneje je, da
 poznate ti, osnovni.


 2.2.  Zakaj bi si �eleli nadgraditi svoje jedro?


 Novej�a jedra v splo�nem ponujajo mo�nost za pogovor z ve� vrstami
 opreme (to se pravi, imajo ve� gonilnikov naprav), imajo morda bolj�e
 procesno upravljanje, lahko delujejo hitreje kot starej�e razli�ice,
 so bolj stabilna od starej�ih razli�ic in odpravijo neumne hro��e v
 starej�ih razli�icah.  Ve�ina ljudi nadgradi jedra, ker �elijo
 gonilnike naprav in popravke hro��ev.


 2.3.  Katero strojno opremo podpirajo nova jedra?


 Preberite Hardware-HOWTO. Kot alternativo lahko pogledate datoteko
 config.in, v Linuxovi izvorni kodi, lahko pa tudi izveste, ko
 poskusite ,,make config``. To vam poka�e vso opremo, ki je podprta v
 standardni izdaji jedra, a ne vse, kar podpira Linux; veliko pogostih
 gonilnikov (kot npr. gonilniki za PCMCIA in za nekatere tra�ne enote)
 je nalagalnih modulov, ki se urejajo in distribuirajo posebej.


 2.4.  Katero razli�ico prevajalnika gcc in knji�nice libc potrebujem?


 Linus priporo�a razli�ico gcc v datoteki README, prilo�eni izvorni
 kodi Linuxa.  �e nimate te razli�ice, vam dokumentacija poleg
 priporo�ene razli�ice gcc pove, �e morate nadgraditi knji�nico libc.
 To ni te�ko opravilo, pomembno pa je, da sledite navodilom.


 2.5.  Kaj je nalagalni modul (loadable module)?


 To so del�ki kode jedra, ki niso povezani (vklju�eni) direktno v
 jedro.  Prevedemo jih posebej in jih lahko vklju�imo ali odstranimo v
 delujo�e jedro skoraj kadarkoli.  Zaradi njihove fleksibilnosti je to
 zdaj priporo�en na�in za uporabo dolo�enih lastnosti jedra.  Mnogi
 popularni gonilniki, na primer gonilniki za PCMCIA in za tra�no enoto
 QIC-80/40, so nalagalni moduli.


 2.6.  Koliko prostora potrebujem na disku?


 Odvisno od va�e konkretne konfiguracije sistema.  Komprimirana izvorna
 koda Linuxa razli�ice 2.2.9 je velika pribli�no 14 MB.  Ve�ina
 ra�unalnikov jo obdr�i tudi po odpakiranju.  Odpakirana in zgrajena
 izvorna koda jedra za povpre�no sestavo zasede dodatnih 67 MB.


 2.7.  Kako dolgo traja?


 Na novej�ih strojih traja prevajanje znatno manj �asa kot na
 starej�ih; AMD K6-2/300 s hitrim diskom lahko prevede jedro 2.2.x v
 pribli�no �tirih minutah.  �e pa �elite prevesti jedro na starih
 ra�unalnikih Pentium, 486 in 386, bodite pripravljeni �akati, morda
 ure ali celo dneve ...

 �e vas to moti in imate na voljo tudi hitrej�i stroj, na katerem lahko
 prevajate, lahko gradite jedro na hitrej�ih strojih (�e podate
 pravilna dolo�ila, �e so va�i pripomo�ki osve�eni, in tako naprej) in
 potem prenesete sliko jedra na po�asnej�i stroj.


 3.  Kako zares sestaviti jedro


 3.1.  Nabava izvorne kode


 Izvorno kodo lahko dobite po anonimnem FTP-ju s stre�nika
 ftp.kernel.org v imeniku /pub/linux/kernel/vx.y, kjer je x.y razli�ica
 (npr. 2.2), in kot je bilo �e omenjeno, so lahko razvojne razli�ice
 jedra, ozna�ene z lihimi kon�nimi �tevilkami, nestabilne.  Izvorna
 koda jedra je navadno ozna�ena kot linux-x.y.z.tar.gz, kjer je x.y.z
 �tevilka razli�ice.  Stre�niki navadno premorejo tudi datoteke s
 podalj�kom .bz2, ki so bile stisnjene s pripomo�kom bzip2 (te datoteke
 bodo manj�e, zato bo za njihov prenos potrebno manj �asa).

 Najbolj�e bo, �e za prenos uporabite ftp.xx.kernel.org, kjer je xx
 koda va�e dr�ave; v Sloveniji boste tako uporabili ftp.si.kernel.org,
 v Avstriji ftp.at.kernel.org, v Zdru�enih dr�avah Amerike pa
 ftp.us.kernel.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 izveste razli�ico sistema, ki
 jo trenutno uporabljate, in ustrezno preimenujete imenik.  Trenutno
 razli�ico jedra izveste 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 - simbolne
 povezave, ki morajo biti na pravih mestih, brisanje ostalih datotek .o
 itd.

 �e imate datoteko .bz2 in pripomo�ek bzip2 (ve� o tem preberite na
 <http://www.muraroa.demon.co.uk/>), naredite tole:

      bz2cat linux-x.y.z.tar.bz2 | tar xvf -


 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 nastavitveni
 skript, ki vas vpra�a veliko vpra�anj.  Potrebuje ukazno lupino bash,
 zato preverite, �e ta obstaja v /bin/bash, /bin/sh, ali $BASH.

 Verjetno 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.

 Z uporabo ,,make menuconfig`` ali ,,make xconfig`` bodo nastavitvene
 izbire urejene hierarhi�no.

 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 nekaterih posameznih izbir.
 Pri ,,make menuconfig`` s presledkom spreminjate izbiro.

 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.  Tukaj je seznam nekaterih najpomembnej�ih
 odlik, s hierarhijo, v kateri jih najdete, in kratkim opisom.


 3.3.1.  Kernel math emulation (Processor type and features)

 [ Emulacija matemati�nih operacij v jedru (Vrsta in lastnosti
 procesorja) ]

 �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.  Za vsak napol sodoben stroj bo odgovor ,,ne``, a ne
 skrbite, �e boste pomotoma rekli ,,da``; �e emulacija ni potrebna, se
 ne uporablja.


 3.3.2.  Enhanced (MFM/RLL) disk and IDE disk/cdrom support (Block
 Devices)

 [ Podpora izbolj�anim diskom (MFM/RLL) in diskom/CD-ROM-om tipa IDE
 (Blokovne naprave) ]

 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 (General Setup)

 [ Omre�na podpora (Splo�ne nastavitve) ]

 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.  System V IPC (General Setup)

 [ Medprocesna komunikacija Systema V (Splo�ne nastavitve) ]

 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.5.  Processor family (Processor type and features)

 [ Procesorska dru�ina (Vrsta in lastnosti 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 morda 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.6.  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.7.  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``.  Nastavitveni
 skript vas bo vpra�al o tipu kartice in protokolu, ki ga boste
 uporabljali.


 3.3.8.  Filesystems

 [ Datote�ni sistemi ]

 Nastavitveni skript vas bo vpra�al, �e �elite imeti naslednje
 datote�ne sisteme podprte v jedru:

 *  Standard (minix) - novej�e distribucije ne delajo datote�nih
    sistemov minix in veliko ljudi jih ne uporablja, a mogo�e je vseeno
    dobra zamisel, da bi jih podprli. Nekateri programi za izdelavo
    ,,re�ilnih diskov`` jih uporabljajo in veliko disket je
    formatiranih kot minix, saj je minixov datote�ni sistem na disketah
    manj mukotrpen.

 *  Second extended - To je standardni datote�ni sistem Linuxa.  Skoraj
    zagotovo ga imate in morate re�i ,,y``.

 *  msdos - �e �elite uporabljate particije MS-DOS-a na trdem disku ali
    name��ati dosovske formatirane diskete, recite ,,y``.

    Dostopnih je �e mnogo drugih tujih datote�nih sistemov.

 *  /proc - (zamisel iz Bell Labs, domnevam).  Datote�nega sistema
    /proc se ne ustvari na disku; to je datote�ni vmesnik do jedra in
    procesov.  Veliko izpisovalcev procesov (npr. ,,ps``) ga uporablja.
    Poskusite kdaj ,,cat /proc/meminfo`` ali ,,cat /proc/devices``.
    Nekatere ukazne lupine (posebej rc) uporabljajo /proc/self/fd (na
    drugih sistemih znan kot /dev/fd) za vhodno/izhodne (V/I)
    operacije.  Skoraj gotovo morate re�i ,,y``; veliko pomembnih
    orodij za Linux je odvisnih od tega.

 *  NFS - �e va� stroj biva na omre�ju in �elite uporabljati datote�ne
    sisteme, ki le�ijo na drugih sistemih z NFS, recite ,,y``.

 *  ISO9660 - Najdete ga na ve�ini CD-ROM-ov.  �e imate pogon za CD-ROM
    in ga �elite uporabljati v Linuxu, recite ,,y``.

 3.3.8.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.9.  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: gpm 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 mi�ko na zaporednih vratih, saj ta lepo
 shaja z Okni X, za druge mi�ke pa morate uporabiti posebne trike.


 3.3.10.  Sound

 [ Zvok ]

 �e imate veliko �eljo sli�ati, kako biff laja, recite ,,y``, in
 nastavitvenemu programu lahko poveste vse o va�i zvo�ni kartici.
 (Opomba glede nastavitve zvo�ne kartice: ko vas vpra�a, �e �elite
 namestiti popolno razli�ico gonilnikov, lahko re�ete ,,n`` in
 prihranite nekaj pomnilnika jedra z izbiro le tistih lastnosti, ki se
 vam zdijo potrebne.)

 �e zares potrebujete dobro podporo zvo�ne kartice, poglejte proste
 gonilnike na naslovu <http://www.linux.org.uk/OSS/> in komercialni
 Open Sound System na <http://www.opensound.com/>.

 3.3.11.  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 mre�no kartico).  Obstaja precej obse�en seznam vseh
 izbir (in na�in, kako jih uvrstimo v skript Configure); projekt je
 za�el in vzdr�eval Axel Boldt ([email protected]) in je dostopen kot
 pomo� na zvezi.  Na voljo je tudi kot ena sama velika datoteka
 Documentation/Configure.help v izvorni kodi jedra od razli�ice Linuxa
 2.0 naprej.

 3.3.12.  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 opravite nastavljanje, 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 je ne bo treba spreminjati, a
 nikoli ne �kodi, �e pogledate.  Po namestitvi novega jedra lahko
 spreminjate izbire tudi z ukazom ,,rdev``.  �e se ob ogledu te
 datoteke po�utite izgubljeni, jo pa� pozabite.


 4.  Prevajanje jedra


 4.1.  �i��enje in urejanje odvisnosti


 Ko konfiguracijski skript kon�a z delom, vam pove, da napravite ,,make
 dep`` in (morda) ,,clean``.  Torej napi�ete ,,make dep``.  To vam
 zagotovi, da so vse odvisnosti, na primer vklju�ne datoteke, na svojem
 mestu.  To ne traja dolgo, razen, �e imate zelo po�asen ra�unalnik.
 Pri starej�ih razli�icah jedra morate po koncu delanja odvisnosti
 napisati �e ,,make clean``.  To odstrani vse objektne datoteke in
 druge stvari, ki so jih pustile za sabo stare razli�ice.  V vsakem
 primeru ne pozabite narediti tega koraka preden za�nete prevajati
 jedro.


 4.2.  �as za prevajanje


 Po urejanju odvisnosti in �i��enju lahko napi�ete ,,make zImage`` ali
 ,,make zdisk`` (ta del traja veliko �asa). ,,make zImage`` prevede
 jedro in v imeniku arch/i386/boot pusti datoteko, imenovano
 ,,bzImage`` (med drugim).  To je novo komprimirano jedro.  ,,make
 bzdisk`` naredi isto stvar, le da prepi�e novo datoteko bzImage na
 disketo, ki ste jo, upajmo, vstavili v pogon ,,A:`` (/dev/fd0).
 ,,bzdisk`` je priro�no orodje za testiranje novih jeder; �e novo jedro
 ne deluje v redu, preprosto odstranite disketo in za�enite staro
 jedro.  V�asih boste to disketo lahko uporabili tudi, �e boste po
 pomoti odstranili svoje jedro (ali naredili kaj podobno groznega).
 Disketo lahko uporabite tudi pri in�talaciji novih sistemov, ko
 preprosto prepi�ete vsebino enega diska na drugega (,,Vse to in �e
 ve�!  Koliko bi pla�ali zdaj?``).  Vsa, vsaj na pol razumno nova,
 jedra so komprimirana, odtod �rka ,,bz`` pred njihovimi imeni.
 Komprimirano jedro se samodejno odkomprimira, ko se izvaja.

 V starej�ih jedrih ni izbire za gradnjo bzImage; le zImage.  Ta izbira
 je trenutno �e vedno dostopna, vendar je glede na velikost kode
 novej�ih jeder uporaba bzImage bolj ali manj obvezna, saj starej�e
 metode ne znajo uporabljati prevelikega jedra.


 4.3.  Drugi cilji ,,make``


 ,,make mrproper`` naredi bolj intenzivno �i��enje (,,clean``). V�asih
 je ta cilj potreben; morda ga �elite uporabiti ob vsakem popravku.
 ,,make mrproper`` bo tudi pobrisal va�o konfiguracijsko datoteko, zato
 shranite njeno rezervno kopijo (.config), �e se vam zdi pomembna.

 ,,make oldconfig`` bo posku�al nastaviti jedro s stare konfiguracijske
 datoteke; namesto vas bo �el skozi proces ,,make config``. �e �e
 nikoli niste prevedli jedra ali nimate stare konfiguracijske datoteke,
 verjetno no�ete tega, saj ho�ete spremeniti privzeto nastavitev.

 Za ukaz ,,make modules`` glejte razdelek o modulih.


 4.4.  Namestitev jedra


 Ko imate novo jedro, za katerega menite, da deluje, kot �elite, je �as
 za njegovo namestitev.  Ve�ina ljudi za ta korak uporablja LILO (Linux
 Loader).  Jedro namestite, po�enete �ez njega LILO in ga pripravite za
 zaganjanje z ukazom ,,make bzlilo``.  Vendar le, �e je lilo nastavljen
 takole: jedro je /vmlinuz, lilo je v imeniku /sbin, in va�a
 nastavitvena datoteka /etc/lilo.conf se s tem strinja.

 V vseh drugih primerih morate pognati LILO neposredno.  Paket je
 precej enostaven za in�talacijo in delo, a zna zmesti ljudi s
 konfiguracijsko datoteko.  Glejte nastavitveno datoteko (v starej�ih
 razli�icah je to /etc/lilo/config, v novej�ih pa /etc/lilo.conf) in
 poglejte, kak�ne nastavitve imate.  Konfiguracijska datoteka mora
 izgledati podobno:

      image = /vmlinuz
          label = Linux
          root = /dev/hda1
          ...

 Nastavitev ,,image =`` ka�e na na novo name��eno jedro. Ve�ina ljudi
 uporablja /vmlinuz. Lilo potrebuje oznako ,,label``, da ugotovi,
 katero jedro ali operacijski sistem naj za�ene, oznaka ,,root`` je
 korenski imenik / dolo�enega operacijskega sistema. Napravite rezervno
 kopijo va�ega starega jedra in prepi�ite datoteko bzImage, ki ste jo
 pravkar naredili na to mesto (napi�ete npr. ,,cp bzImage /vmlinuz``,
 �e uporabljate ,,/vmlinuz``).  Potem �e enkrat za�enete lilo - na
 novej�ih sistemih le napi�ete ,,lilo``, na starej�ih morate morda
 narediti /etc/lilo/install ali celo /etc/lilo/lilo -C
 /etc/lilo/config.

 �e bi radi izvedeli ve� o nastavitvi programa LILO ali �e nimate
 programa LILO, dobite najnovej�o razli�ico z va�ega priljubljenega
 mesta za FTP in upo�tevate navodila.

 Za zaganjanje enega va�ih starej�ih jeder s trdega diska (�e en na�in,
 kako si opomorete, �e ste uni�ili novo jedro), prekopirajte vrstice
 pod (in vklju�no z) ,,image = xxx`` v LILO-vi nastavitveni datoteki na
 konec datoteke in spremenite ,,image = xxx`` v ,,image = yyy``, kjer
 je ,,yyy`` polna pot do datoteke, v katero ste shranili rezervno
 jedro. Potem spremenite ,,label = zzz`` v ,,label = linux-backup`` in
 �e enkrat po�enite lilo. V konfiguracijsko datoteko lahko dodate tudi
 vrstico z ,,delay=x``, kjer je ,,x`` �asovni interval v desetinkah
 sekunde, v katerem LILO �aka, da ga boste lahko prekinili (npr.  s
 tipko Shift) in vpisali oznako rezerve zaganjalne kopije (�e se zgodi
 kaj neprijetnega).


 5.  Popravljanje jedra


 5.1.  Uporaba popravka


 Zaporedne nadgradnje jedra se distribuirajo kot popravki (patches). Na
 primer, �e imate razli�ico 1.1.45 in opazite, da obstaja nekje
 datoteka ,,patch46.gz`` za njo, to pomeni, da lahko z uporabo programa
 patch nadgradite jedro na razli�ico 1.1.46. Morda boste najprej �eleli
 napraviti rezervno kopijo drevesa izvorne kode (komprimiran arhiv
 naredite z ,,make clean`` in potem ,,cd /usr/src; tar zcvf old-
 tree.tar.gz linux``).

 Nadaljujmo zgornji primer in predpostavimo, da imate datoteko
 ,,patch46.gz`` v imeniku /usr/src. Naredite cd /usr/src in potem
 ,,zcat patch46.gz | patch -p0`` (ali ,,patch -p0 < patch46``, �e
 popravek ni komprimiran).  Na zaslonu bodo mimo vas letele stvari, ki
 vam bodo sporo�ale, da patch posku�a uporabiti dolo�ene popravke in
 uspeh teh poskusov.  Navadno se vse odvija prehitro, da bi lahko
 brali. �e niste prepri�ani, ali je �lo vse po sre�i, boste morda
 uporabili zastavico -s za program patch, kar pove patchu naj sporo�a
 le sporo�ila o napakah (v tem primeru ne boste imeli ob�utka ,,Hej,
 moj ra�unalnik za spremembo nekaj po�ne!``, a boste morda vseeno raje
 storili tako).  �e vas zanima, kateri deli se niso popravili povsem
 gladko, napravite cd /usr/src/linux in poi��ite datoteke s podalj�kom
 .rej.  Nekatere starej�e razli�ice patcha pustijo podalj�ek #.  Za
 iskanje uporabite ,,find``:

       # find .
      -name '*.rej' -print

 To izpi�e vse datoteke s podalj�kom .rej, ki prebivajo v trenutnem
 imeniku ali podimenikih, na standardni izhod.

 �e je �lo vse kot po maslu, napravite ,,make clean``, ,,config``, in
 ,,dep`` kot je opisano v razdelkih ``,,Kako zares sestaviti jedro``''
 in ``,,Prevajanje jedra``''.

 Ukaz patch ima �e precej dodatnih izbir. Zgoraj smo �e omenili patch
 -s, ki zadr�i izpis vseh sporo�il, razen napak.  �e imate izvorno kodo
 jedra v kak�nem drugem imeniku kot /usr/src/linux, uporabite v tem
 imeniku patch -p1.  Ostale izbire najdete z man patch.


 5.2.  �e se kje zalomi

 (Opomba: Ta razdelek se nana�a predvsem na zelo stara jedra.)

 Najpogostej�i problem, ki se je v�asih pojavljal, je bil, ko je
 popravek spremenil datoteko ,,config.in`` in ta ni bila �isto prava,
 saj ste spremenili izbire, da bi opisali opremo svojega stroja.  To se
 je uredilo, a lahko v starej�ih izdajah �e vedno sre�ate.  Popravite
 pa tako, da pogledate datoteko config.in.rej tako, da odgovarja
 originalnemu popravku.  Popravki bodo navadno ozna�eni s simboloma
 ,,+`` in ,,-`` na za�etku vrstice.  Glejte okoli�ke vrstice in se
 spomnite, ali so bile nastavljene kot ,,y`` ali kot ,,n``.  Zdaj
 popravite config.in in spremenite ,,y`` v ,,n`` in obratno, kjer je to
 primerno.  Naredite:

      # patch -p0 < config.in.rej

 in �e patch sporo�i, da je uspel, lahko nadaljujete z nastavitvami in
 prevajanjem.  Datoteka config.in.rej vam bo ostala, a jo lahko
 pobri�ete.

 �e imate �e vedno probleme, ste morda namestili popravek prek vrste.
 �e patch pravi ,,previously applied patch detected: Assume -R?``,
 verjetno posku�ate namestiti popravek, ki je starej�i od trenutne
 razli�ice jedra; �e odgovorite z ,,y``, bo patch posku�al podgraditi
 va�o izvorno kodo, in najverjetneje mu bo spodletelo. Potrebovali
 boste popolno �isto novo drevo izvorne kode (kar je morda tako ali
 tako dobra ideja).

 Za razveljavitev popravkov uporabite ukaz ,,patch -R`` na originalnem
 popravku.

 Najbolj�a stvar, ki jo lahko naredite, ko ne morete uporabiti
 popravkov, je, da za�nete znova s �istim drevesom izvorne kode (na
 primer, z eno od datotek linux-x.y.z.tar.gz), in znova za�nete.


 5.3.  Kako se znebite datotek .orig


 Po nekaj popravkih se bodo za�ele kopi�iti datoteke .orig.  Npr. neko
 drevo jedra 1.1.51, ki sem ga neko� imel, je bilo zadnji� o�i��eno pri
 razli�ici 1.1.48.  Odstranitev datotek .orig je prihranila ve� kot pol
 megabyta.

 Zadevo uredite z ukazom:

      # find .  -name '*.orig' -exec rm -f {} ';'

 Razli�ice programa patch, ki uporabljajo # za zavrnitvene datoteke,
 uporabljajo za podalj�ek tildo (,,.~``) namesto ,,.orig``.

 Obstajajo tudi bolj�i na�ini za odpravo datotek .orig, ki slonijo na
 GNU xargs:

      # find .  -name '*.orig' | xargs rm

 ali ,,precej varna, a malo bolj iz�rpna`` metoda:

      # find . -name '*.orig' -print0 | xargs --null rm --


 5.4.  Drugi popravki


 Razen Linusovih, obstajajo tudi drugi popravki (rekel jim bom
 ,,nestandardni``).  �e jih uporabite, Linusovi popravki morda ne bodo
 delovali pravilno in jih boste morali obnoviti, urediti izvorno kodo
 popravka, namestiti novo drevo izvorne kode ali kombinacijo na�tetega.
 To lahko postane zelo frustrirajo�e, zato, �e ne �elite spreminjati
 izvorne kode (z morda slabim izidom), napravite rezervne kopije
 nestandardnih popravkov, preden uporabite Linusove, ali le namestite
 novo drevo. Potem lahko pogledate, �e nestandardni popravki delujejo.
 �e ne, morate ostati pri starem jedru in se igrati s popravki ali
 izvorno kodo, da bi dosegli delovanje, ali �akati (morda celo
 prosja�iti) za novo razli�ico popravkov.

 Kako pogosti so popravki, ki niso v standardnih distribucijah?
 Verjetno boste sli�ali o njih. Jaz uporabljam popravek noblink za moje
 navidezne zaslone, ker sovra�im utripajo�e kazalce (ta popravek je
 (ali je vsaj bil) redno osve�en ob vsaki novi izdaji jedra). Z
 razvojem vse ve� novej�ih gonilnikov naprav kot modulov pa uporaba
 ,,nestandardnih`` popravkov znatno upada.


 6.  Dodatni paketi


 Va�e Linuxovo jedro ima veliko odlik, ki niso pojasnjene v sami
 izvorni kodi jedra; te posebnosti se navadno dose�ejo z uporabo
 zunanjih paketov.  Tukaj na�tevam nekaj najpogostej�ih.


 6.1.  kbd


 Linuxov zaslon (console) ima najbr� ve� zmo�nosti, kot si jih zaslu�i
 (op.: prevajalec se ne strinja).  Med temi so mo�nost preklaplanja
 znakov, preslikave tipkovnice, preklop video na�inov (v novej�ih
 jedrih) itd.  Paket kbd vsebuje programe, ki uporabniku omogo�ajo vse
 to, in �e veliko znakov in na�rtov tipkovnic za skoraj vsako
 tipkovnico.  Paket dobite na istih mestih kot izvorno kodo jedra.


 6.2.  util-linux


 Rik Faith <[email protected]> je sestavil veliko zbirko uporabnih
 programov za Linux, ki se imenujejo util-linux.  Trenutno jih vzdr�uje
 Andries Brouwer <[email protected]>.  Po anonimnem FTP-ju dobite
 na  <ftp://metalab.unc.edu/pub/Linux/system/misc/> programe kot so
 setterm, rdev, in ctrlaltdel, ki se nana�ajo na jedro.  Kot pravi Rik,
 ni�esar ne in�talirajte, ne da bi prej premislili, ni vam treba
 in�talirati vsega in lahko imate resne probleme, �e bi radi
 in�talirali vse.


 6.3.  hdparm


 Kot veliko paketov je bil tudi ta neko� popravek za jedro in podporni
 programi.  Popravki so se prebili v uradno jedro, programi za
 optimizacijo in igranje z va�im trdim diskom pa se raz�irjajo posebej.


 6.4.  gpm


 gpm pomeni ,,splo�no uporabna mi�ka`` (ang. general purpose mouse).  S
 tem programom lahko besedilo izrezujete in prilepljate med posameznimi
 navideznimi zasloni in po�nete druge stvari s celo paleto razli�nih
 mi�k.


 7.  Nekatere pasti


 7.1.  make clean


 �e po rutinski nadgradnji jedra va�e jedro po�ne zares �udne re�i, ste
 morda pozabili napisati make clean pred prevajanjem novega jedra.
 Simptomi so lahko karkoli, od zmrznjenega sistema, �udnih V/I
 problemov, do slabega (po�asnega) delovanja. Prepri�ajte se tudi, da
 boste ukazali make dep.


 7.2.  Velika ali po�asna jedra


 �e va�e jedro po�ira velike koli�ine pomnilnika, je preveliko, in/ali
 le traja neskon�no dolgo, da se prevede, �eprav imate nov procesor
 Quadbazillium-III/440, ste najverjetneje vklju�ili podporo veliko
 nepotrebnih zadev (gonilnikov naprav, datote�nih sistemov, itd.).  �e
 naprave ne uporabljate, je ne podprite v jedru, saj to zavzema
 pomnilnik.  Najbolj o�iten simptom prenapihnjenega jedra je ekstremno
 izmenjavanje pomnilnika z diskom sem ter tja; �e va� disk nenehno
 ogla�a in ni eden od tistih starih Fujitsujevih Eagles, katerih zvok
 lahko primerjamo s pristajanjem reaktivnih letal, preglejte nastavitve
 va�ega jedra.

 Koliko pomnilnika zaseda jedro lahko izveste z od�tevanjem vrednosti
 ,,total mem`` v izpisu /proc/meminfo ali izhodom ukaza ,,free``, od
 koli�ine vsega pomnilnika.


 7.3.  Vzporedna vrata ne delujejo/tiskalnik ne deluje


 Nastavitvene izbire za PC-je so: najprej v kategoriji Splo�nih
 nastavitev (angl. General Setup) vklju�ite podporo zaporednih vrat
 (angl. Parallel port support) in strojno opremo osebnih ra�unalnikov
 (angl. PC-style hardware).  Nato v Znakovnih napravah (angl.
 Character devices) podprite tiskalnik na vzporednih vratih (angl.
 Parallel printer support).

 Potem so tu �e imena.  Linux 2.2 poimenuje tiskalni�ke naprave druga�e
 od prej�njih izdaj.  Posledica tega je, da napravi lp1 v va�em starem
 jedru v novem jedru verjetno ustreza naprava lp0.  Uporabite dmesg ali
 poglejte v dnevnik v imeniku /var/log ter ugotovite novo ime.


 7.4.  Jedro se ne prevede


 �e se ne prevede, je to verjetno zato, ker je popravek spodletel, ali
 je va�a izvorna koda nekako pokvarjena.  Morda nimate prave razli�ice
 prevajalnika gcc, ali je tudi z njim kaj narobe (na primer, vklju�ne
 datoteke so lahko napa�ne).  Prepri�ajte se, da so simboli�ne
 povezave, ki jih Linus priporo�a v datoteki README pravilno narejene.
 V splo�nem, �e se standardna jedra ne prevajajo, je nekaj resno narobe
 s sistemom in ponovna in�talacija nekaterih orodij je neizogibna.

 V nekaterih primerih lahko gcc odpove zaradi strojnih problemov.
 Sporo�ila o tak�nih napakah so nekaj kot ,,xxx exited with signal 15``
 in navadno izgledajo zelo skrivnostna.  Tega sploh ne bi omenil, a se
 mi je neko� zgodilo - imel sem nekaj slabega predpomnilnika in
 prevajalnik se je prito�eval povsem naklju�no.  �e imate te�ave,
 poskusite najprej ponovno namestiti gcc. Sumni�avi postanite samo, �e
 se va�e jedro lepo prevede z izklju�enim zunanjim predpomnilnikom,
 zmanj�ano koli�ino RAM-a, ipd.

 Ljudje so navadno vznemirjeni, ko izvejo, da bi lahko imeli tudi
 te�ave s strojno opremo.  Hja, tega si ne izmi�ljujem. Obstajajo tudi
 pogosto zastavljena vpra�anja o tej temi - najdete jih na
 <http://www.bitwizard.nl/sig11/>.


 7.5.  Novo jedro se no�e zagnati


 Niste pognali programa LILO, ali pa ga niste pravilno nastavili.
 Neko� me je zafrkavala vrstica v LILO-vi konfiguracijski datoteki, ki
 je bila ,,boot = /dev/hda1`` namesto ,,boot = /dev/hda``.  (To je
 lahko sprva zelo mote�e, a ko imate enkrat delujo�o nastavitveno
 datoteko, vam je ni treba spreminjati.)


 7.6.  Pozabili ste pognati LILO, ali pa se sistem sploh ne za�ene


 Ups!  Najbolj�e, kar lahko storite ta hip, je, da za�enete operacijski
 sistem z diskete ali CD-ROM-a in potem pripravite �e eno zaganjalno
 disketo (kot bi jo naredil ukaz ,,make zdisk``).  Vedeti morate, kje
 je va� korenski (/) datote�ni sistem in katerega tipa je (npr. second
 extended, minix).  V spodnjem primeru morate vedeti tudi na kak�nem
 datote�nem sistemu le�i va�e drevo izvorne kode /usr/src/linux, njegov
 tip, in kje je navadno name��en (z mount).

 V naslednjem primeru je / enak /dev/hda1, in datote�ni sistem, ki
 vsebuje /usr/src/linux na /dev/hda3, navadno name��en na /usr.  Oba
 sta datote�na sistema tipa ext2 (second extended).  Delujo�a slika
 jedra v imeniku /usr/src/linux/arch/i386/boot se imenuje bzImage.

 Zamisel je tak�na, da uporabimo delujo�e jedro zImage na novi disketi.
 �e ena mo�nost, ki lahko deluje bolje, ali pa tudi ne (odvisno od
 konkretne metode, s katero ste zavozili svoj sistem), je opisana po
 tem primeru.

 Najprej za�enite sistem s kombinacije disket boot in root ali z
 re�evalne diskete in namestite delujo�o sliko jedra:

      # mkdir /mnt
      # mount -t ext2 /dev/hda3 /mnt

 �e vam mkdir pravi, da imenik �e obstaja, ga ignorirajte. Zdaj pojdite
 z ukazom cd na imenik, v katerem je delujo�e jedro. Pozorni bodite na
 to, da je

 /mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot

 V disketni pogon ,,A:`` vlo�ite formatirano disketo (ne va�ih diskov
 boot ali root!), prepi�ite sliko jedra na disketo in jo nastavite za
 svoj korenski datote�ni sistem.

      # cd /mnt/src/linux/arch/i386/boot
      # dd if=bzImage of=/dev/fd0
      # rdev /dev/fd0 /dev/hda1

 Naredite cd na / in odmestite obi�ajni datote�ni sistem /usr:

      # cd /
      # umount /mnt

 Zdaj lahko �e enkrat za�enete svoj sistem z nove diskete.  Ne pozabite
 tokrat po zagonu pognati lilo (ali karkoli je bilo �e narobe)!

 Kot smo omenili zgoraj, obstaja �e ena obi�ajna pot. �e imate delujo�o
 sliko jedra v / (/vmlinuz, na primer), jo lahko uporabite za zagonsko
 disketo.  �e veljajo vsi zgoraj na�teti pogoji in je slika jedra
 /vmlinuz, naredite le te spremembe v zgoraj opisanem primeru:
 spremenite /dev/hda3 v /dev/hda1 (datote�ni sistem /), /mnt/src/linux
 v /mnt, in if=bzImage v if=vmlinuz. Opombo o tem, kako dobimo
 /mnt/src/linux lahko spregledate.

 Uporaba programa LILO na velikih diskih (ve�jih od 1024 cilindrov)
 lahko povzro�a probleme. Preberite LILO mini-HOWTO ali LILO-vo
 dokumentacijo, �e potrebujete pomo� pri tem.


 7.7.  Izpi�e ,, warning: bdflush not running ``


 To je lahko resen problem. Od jedra izdaje po 1.0 (okoli 20. aprila
 1994) se je program ,,update``, ki periodi�no izplakne vmesni
 pomnilnik datote�nega sistema, posodabljal in nadomestil. Dobite
 izvorno kodo ,,bdflush`` (najdete jo tam, kjer ste na�li jedro) in
 namestite ta program (verjetno boste medtem pognati va� sistem pod
 starim jedrom). Ta program se sam namesti kot ,,update`` in po
 ponovnem zagonu se novo jedro ne bo ve� prito�evalo.


 7.8.  Mojega CD-ROM-a IDE/ATAPI ne prepri�am, da bi deloval


 �udno, a veliko ljudi ne more pripraviti svoje pogone ATAPI k
 delovanju, verjetno zato, ker gre lahko veliko stvari narobe.

 �e je va� CD-ROM edina naprava na konkretnem vmesniku IDE, morate
 nastaviti skaka�e kot ,,master`` ali ,,single``. To je menda najbolj
 pogosta napaka.

 Creative Labs (na primer) je postavil vmesnik IDE na njihove zvo�ne
 kartice.  A to vodi k zanimivem problemu, da imajo nekateri ljudje en
 sam vmesnik, veliko jih ima dva vmesnika IDE na njihovih mati�nih
 plo��ah (navadno na IRQ15), torej je splo�na praksa ozna�iti vmesnik
 SoundBlaster-ja kot tretji IDE port (IRQ11, mi pravijo).

 To povzro�a probleme z Linuxom, saj razli�ice 1.2.x ne podpirajo
 tretjega vmesnika IDE (obstaja podpora v serijah 1.3.x, a to je
 razvojna razli�ica, se �e spomnite, in ne izvaja avtomatskega
 iskanja).  Temu se lahko izognemo na ve� na�inov.

 �e �e imate druga vrata IDE, jih morda ne uporabljate ali �e nimajo na
 sebi dveh naprav.  Vzemite pogon ATAPI z zvo�ne kartice in ga pove�ite
 na drugi vmesnik.  Potem lahko onemogo�ite vmesnik zvo�ne kartice, kar
 tako ali tako privar�uje IRQ.

 �e nimate drugega vmesnika, nastavite skaka� na vmesniku zvo�ne
 kartice (ne na zvo�nem delu zvo�ne kartice) kot IRQ15, drugi vmesnik.
 Moralo bi delovati.


 7.9.  Izpisuje �udne re�i o zastarelih zahtevah za usmerjanje (obso�
 lete routing requests)


 Poi��ite novo razli�ico programa route in vseh drugih usmerjevalnih
 programov.  Datoteka /usr/include/linux/route.h (ki je pravzaprav v
 imeniku /usr/src/linux) se je spremenila.


 7.10.  Po�arni zid ne deluje v 1.2.0


 Nadgradite vsaj na razli�ico 1.2.1.


 7.11.  ,, Not a compressed kernel Image file `` (datoteka s sliko
 jedra ni komprimirana)


 Ne uporabljajte datoteke vmlinux, ki je narejena v imeniku
 /usr/src/linux, kot va�o zaganjalno sliko; [..]/arch/i386/boot/bzImage
 je prava datoteka.


 7.12.  Te�ave z zaslonskim terminalom po nadgradnji na 1.3.x


 Spremenite besedo dumb v linux v opisu zaslonskega terminala v
 datoteki /etc/termcap. Morda boste morali tudi narediti nov zapis.


 7.13.  Po nadgradnji jedra ne morem prevajati zadev


 Linuxova izvorna koda jedra vsebuje veliko vklju�nih datotek
 (datoteke, ki se kon�ujejo na .h), na katere se sklicujejo standardne
 datoteke v imeniku /usr/include. Na njih se navadno sklicujemo takole
 (tukaj je xyzzy.h nekaj v imeniku /usr/include/linux):

      #include <linux/xyzzy.h>

 Navadno je v imeniku /usr/include povezava, imenovana linux, na imenik
 include/linux va�e izvorne kode jedra (/usr/src/linux/include/linux v
 tipi�nem sistemu). �e te povezave ni tam, ali ka�e na napa�en kraj, se
 ve�ina stvari sploh ne bo prevedla. �e ste se odlo�ili, da porablja
 izvorna koda jedra preve� prostora na disku in ste jo pobrisali, je
 o�itno to problem. Lahko pa, da je kaj narobe z dovoljenji datotek; �e
 ima va� root nastavitev umask, ki ne dovoljuje drugim uporabnikom, da
 bi kot privzeto lahko gledali njegove datoteke, in ste izlu��ili
 izvorno kodo jedra brez izbire p (ohrani datote�ne na�ine), ti
 uporabniki ne bodo mogli uporabljati prevajalnika za C. �eprav lahko
 uporabite ukaz chmod in to popravite, je verjetno la�je �e enkrat
 izvle�i vklju�ne datoteke. To lahko storite enako kot ste storili na
 za�etku z vso izvorno kodo, le z dodatnim argumentom:

      # tar zxvpf linux.x.y.z.tar.gz linux/include

 Opomba: ,,make config`` bo naredil povezavo /usr/src/linux, �e je �e
 nimate.


 7.14.  Pove�anje omejitev


 Naslednji primer ukazov je lahko koristen za tiste, ki se spra�ujete,
 kako pove�ati nekatere mehke omejitve, ki jih privzame jedro:

      # echo 4096 > /proc/sys/kernel/file-max
      # echo 12288 > /proc/sys/kernel/inode-max
      # echo 300 400 500 > /proc/sys/vm/freepages


 8.  Opomba o nadgradnji na razli�ice 2.0.x, 2.2.x


 Jedra razli�ic 2.0.x in 2.2.x so uvedla precej sprememb pri njihovi
 namestitvi.  Berite datoteko Documentation/Changes v drevesu izvorne
 kode jedra za znanje, ki ga morate imeti, ko nadgrajujete na ta jedra.
 Verjetno boste morali nadgraditi veliko klju�nih paketov, kot so gcc,
 libc in SysVInit, in spremeniti veliko sistemskih datotek, zato bodite
 na to pripravljeni.  A brez panike, prosim.


 9.  Moduli


 Nalagalni moduli lahko prihranijo pomnilnik in poenostavijo
 konfiguracijo.  Domet modulov je raz�irjen na datote�ne sisteme,
 gonilnike omre�nih kratic, tra�nih enot, tiskalnikov in �e ve�.


 9.1.  Namestitev modulskih pripomo�kov


 Modulski pripomo�ki so na voljo, kadarkoli dobite izvorno kodo va�ega
 jedra kot modutils-x.y.z.tar.gz; izberite najvi�jo �tevilko razli�ice
 x.y.z, ki je enaka ali manj�a va�emu jedru.  Odpakirajte jih z ,, tar
 zxvf modutils-x.y.z.tar.gz``, pojdite s cd na imenik, ki ga ustvari
 tar (modutils-x.y.z), preglejte datoteko README, in upo�tevajte
 navodila (kar je navadno nekaj preprostega, kot, denimo, make
 install).  Zdaj morate imeti programe insmod, rmmod, ksyms, lsmod,
 genksyms, modprobe, in depmod v imeniku /sbin. �e �elite, lahko
 preskusite pripomo�ke s preizku�evalnim gonilnikom ,,hw`` v programu
 insmod; preberite datoteko INSTALL v tem podimeniku za podrobnosti.

 insmod vklju�i modul v teko�e jedro. Moduli imajo navadno podalj�ek
 .o; preizku�evalni gonilnik, omenjen zgoraj, se imenuje drv_hello.o,
 torej morate napisati ,,insmod drv_hello.o``, �e ga �elite vklju�iti.
 Module, ki jih jedro trenutno uporablja, lahko izpi�ete z lsmod. Izhod
 izgleda takole:

      blah:# lsmod
      Module:        #pages:  Used by:
      drv_hello          1

 ,,drv_hello`` je ime modula, uporablja eno stran (4 KB) pomnilnika in
 noben drug jedrni modul trenutno ni odvisen od njega. Ta modul
 odstranite z ukazom ,,rmmod drv_hello``. Paziti morate, ker ho�e rmmod
 ime modula, ne ime datoteke; dobite ga z izpisom lsmod. Nameni drugih
 modulskih pripomo�kov so na�teti v njihovih referen�nih priro�nikih
 (npr. man ksyms).


 9.2.  Moduli, distribuirani poleg jedra


 Od razli�ice 2.0.30 je ve�ina vsega dostopna kot nalagalni modul.  �e
 jih �elite uporabiti, morate nastaviti podatke o njih v obi�ajnem
 jedru; to se pravi, ne re�ete ,,y`` med ,,make config``, temve� ,,m``.
 Prevedite novo jedro in z njim za�enite sistem.  Potem naredite ,,cd
 /usr/src/linux`` in uka�ite ,,make modules``.  To prevede vse module,
 ki jih niste �e navedli v konfiguraciji jedra in v imenik
 /usr/src/linux/modules namesti povezave na njih.  Uporabite jih lahko
 v tem imeniku ali pa izvedete ,,make modules_install`` in jih s tem
 namestite v imenik /lib/modules/x.y.z, kjer je x.y.z �tevilka izdaje
 jedra.

 To je lahko �e posebno uporabno z datote�nimi sistemi. Morda ne
 uporabljate pogosto datote�nih sistemov minix in/ali msdos. Na primer,
 kadar dobim dosovsko (brrr) disketo, naredim insmod
 /usr/src/linux/modules/msdos.o, in potem rmmod msdos, ko opravim z
 njo. Ta postopek privar�uje okoli 50 KB RAM-a v jedru med normalnim
 delovanjem. Pri datote�nem sistemu minix ne bo odve� majhna pripomba:
 vedno ga podprite neposredno v jedru, da boste lahko uporabljali
 ,,re�evalne`` diskete.


 10.  Nasveti in triki


 10.1.  Preusmeritev izhoda ukazov make  in patch


 �e �elite videti, kaj je naredil ukaz ,,make`` ali ,,patch``, lahko
 preusmerite standardni izhod programa v datoteko.  Najprej ugotovite
 katero ukazno lupino uporabljate: ,,grep root /etc/passwd`` in glejte
 nekaj podobnega temu: ,,/bin/csh``.

 �e uporabljate sh ali bash, boste takole preusmerili izhod ukaza
 (ukaz) v datoteko (izhodna_datoteka):

      # (ukaz) 2>&1 | tee (izhodna_datoteka)

 Za csh ali tcsh uporabite:

      # (ukaz) |& tee (izhodna_datoteka)

 Za lupino rc (verjetno je ne uporabljate) je ustrezen ukaz

      # (ukaz) >[2=1] | tee (izhodna_datoteka)


 10.2.  Pogojna in�talacija jedra

 Razen z uporabo disket je �e ve� metod preizku�anja novega jedra, ne
 da bi se dotaknili starega. Za razliko od mnogih Unixov je LILO
 sposoben zagnati jedro s kateregakoli mesta na disku (�e imate disk
 ve�ji od 500 MB, preberite LILO-vo dokumentacijo, kako prepre�ite
 te�ave). �e torej na konec konfiguracijske datoteke dodate nekaj
 podobnega:

      image = /usr/src/linux/arch/i386/boot/bzImage
          label = new_kernel

 lahko izberete zagon novega jedra ne da bi se dotaknili va�ega starega
 jedra /vmlinuz (seveda morate �e pognati lilo). Najpreprostej�i na�in
 za zagon novega jedra je, da pritisnete ob zagonu tipko Shift (ko se
 na zaslonu izpi�e LILO in ni� drugega), kar vam da pozivnik. Zdaj
 lahko vnesete ,,new_kernel`` in zagnalo se bo novo jedro.

 �e �elite obdr�ati ve� dreves izvorne kode razli�nih jeder (to lahko
 sicer zaseda veliko diskovnega prostora), je najpogostej�i na�in ta,
 da jih preimenujete v /usr/src/linux-x.y.z, kjer je x.y.z razli�ica
 jedra. Potem lahko ,,izberete`` drevo izvorne kode s simboli�no
 povezavo, npr. ,,ln -sf linux-1.2.2 /usr/src/linux`` naredi drevo
 1.2.2 za trenutno aktualno drevo. Preden naredite to simboli�no
 povezavo, se prepri�ajte, da zadnji argument programu ln ni pravi
 imenik (stare simboli�ne povezave so v redu); rezultat ne bo tak, kot
 bi �eleli.


 10.3.  Nadgradnje jedra


 Russell Nelson <[email protected]> zbira spremembe v novih izdajah
 jedra.  Te so kratke, lahko jih pogledate, preden nadgradite svoje
 jedro.  Najdete jih na  <ftp://ftp.emlist.com/pub/kchanges/> ali prek
 svetovnega spleta na naslovu url
 url="http://www.crynwr.com/kchanges">.


 11.  Ostali HOWTO-ji, ki bi lahko bili uporabni


 *  Sound-HOWTO: zvo�ne kartice in pripomo�ki,

 *  SCSI-HOWTO: vse o krmilnikih in napravah SCSI,

 *  NET-2-HOWTO: omre�enost,

 *  PPP-HOWTO: omre�enost s PPPjem, posebej,

 *  PCMCIA-HOWTO: o gonilnikih za va� notesnik,

 *  ELF-HOWTO: ELF: kaj je to, prenos,

 *  Hardware-HOWTO: pregled podprte strojne opreme,

 *  Module mini-HOWTO: ve� o modulih jedra,

 *  Kerneld mini-HOWTO: o demonu kerneld,

 *  BogoMips mini-HOWTO: �e se slu�ajno spra�ujete.


 12.  Razno


 12.1.  Avtor


 Avtor in vzdr�evalec priro�nika Linux Kernel-HOWTO je Brian Ward
 <[email protected]>.  Prosim, po�ljite mi vse pripombe, dodatke,
 popravke (predvsem popravki so zame najbolj pomembni).

 Mojo doma�o stran najdete na enem od teh dveh URL-jev:

 *   <http://www.math.psu.edu/bri/>

 *   <http://blah.math.tu-graz.ac.at/~bri/>

 �eprav posku�am biti po po�ti pozoren kot se le da, se, prosim,
 zavedajte, da dobim vsak dan veliko pisem, zato lahko traja dolgo,
 preden vam odgovorim.  Posebno, kadar me po po�ti kaj spra�ujete,
 prosim, poskusite biti �e posebej jasni in podrobni v svojem
 sporo�ilu.  �e pi�ete o nedelujo�i strojni opremi (ali kaj takega),
 moram vedeti, kak�na je va�a celotna strojna konfiguracija.  �e
 poro�ate o napaki, ne recite le ,,Poskusil sem tole, pa mi je javil
 napako``; vedeti moram tudi, katera napaka je to bila. �elim tudi
 vedeti razli�ico jedra, prevajalnika gcc in knji�nice libc, ki jih
 uporabljate.  �e le poveste, da uporabljate to-in-to distribucijo, mi
 s tem ne boste povedali kaj dosti.  Ne moti me, �e vpra�ujete
 preprosta vpra�anja; vedite, �e nikoli ne vpra�ate, morda ne boste
 nikoli dobili odgovora!  �elim se zahvaliti vsem, ki so mi posredovali
 povratne informacije.

 �e va�e vpra�anje ni povezano z jedrom ali je v jeziku, ki ga ne
 razumem, morda ne bom odgovoril.

 �e ste mi pisali in vam nisem odgovoril v razumnem �asovnem roku
 (trije tedni ali ve�), sem morda pomotoma pobrisal va�e sporo�ilo ali
 kaj takega (oprostite).  Prosim, poskusite �e enkrat.

 Dobivam veliko po�te o stvareh, ki imajo pravzaprav opraviti s strojno
 opremo. To je v redu, a, prosim, zavedajte se, da nisem seznanjen z
 vso obstoje�o strojno opremo tega sveta.  Osebno uporabljam procesorje
 AMD, krmilnike SCSI proizvajalcev Adaptec in Sybios, ter diske SCSI
 proizvajalca IBM.

 Razli�ica -0.1 angle�kega izvirnika je bila napisana 3. oktobra 1994.
 Izvirnik je dostopen kot SGML, PostScript, TeX, roff, in kot navaden
 tekst.

 Avtor slovenskega prevoda z dne 24. julija 1999 je Roman Maurer
 <[email protected]>.  Prosim, po�ljite mi pripombe na prevod.
 Slovenski prevod je dostopen kot SGML DTD LinuxDoc, HTML, DVI, PDF,
 PostScript in navaden tekst na stre�niku slovenskega Dru�tva
 uporabnikov Linuxa v imeniku <ftp://ftp.lugos.si/pub/lugos/doc/HOWTO-
 sl/> ali na spletnem naslovu <http://www.lugos.si/delo/slo/HOWTO-
 sl/Kernel-HOWTO-sl.html>.


 12.2.  Narediti


 Razdelek ``,,Nasveti in triki``'' je bolj majhen.  Upam, da ga bom
 raz�iril s predlogi drugih.

 Tako je tudi z razdelkom ``,,Dodatni paketi``''.

 Potrebujemo ve� podatkov o razhro��evanju/odpravljanju posledic
 sesutja sistema.


 12.3.  Prispevki


 Vklju�en je majhen del Linusove datoteke README (izbire za hekiranje
 jedra). (Hvala, Linus!)

 *  [email protected] (Ulrich Callmeier): patch -s in xargs,

 *  [email protected] (Daniel Quinlan): popravki in dodatki ve�
    razdelkov,

 *  [email protected] (Nat Makarevitch): mrproper, tar -p, ve� drugih
    re�i,

 *  [email protected] (Axel Boldt): po omre�ju je zbral opise
    konfiguracijskih izbir jedra; potem mi je poslal seznam,

 *  [email protected] (Steve Lembark): predlog razli�nega
    zaganjanja,
 *  [email protected] (Keith Briggs): nekateri popravki in
    predlogi,

 *  [email protected] (Ryan McGuire): dodatki ciljev
    make,

 *  [email protected] (Eric Dumas): francoski prevod,

 *  [email protected] (Yasutada Shimazaki): japonski
    prevod,

 *  [email protected] (Juan Jose Amor Iglesias): �panski prevod,

 *  [email protected] (Martin Wahlen): �vedski prevod,

 *  [email protected] (Zoltan Vamosi): mad�arski prevod,

 *  [email protected] (Bartosz Maruszewski): poljski prevod,

 *  [email protected] (Roman Maurer): slovenski prevod,

 *  [email protected] (Michael J. Donahue): tipkarske napake,
    zmagovalec ,,tekmovanja narezanega kruha``,

 *  [email protected] (Richard Stallman): zamisel in distribucija
    ,,proste`` dokumentacije,

 *  [email protected] (David Kastrup): re� o NFS,

 *  [email protected] (Eric Raymond): razli�ni del�ki.

 Pomagali so mi tudi ljudje, ki so mi poslali po�to z vpra�anji in
 problemi.


 12.4.  Pravice raz�irjanja, licenca, in te stvari


 Copyright (C) Brian Ward, 1994-1999.

 Dovoljeno je izdelovati in raz�irjati kopije tega priro�nika, �e
 ostane opomba o pravicah raz�irjanja in tale opomba o dovoljenju
 nespremenjena v vseh kopijah.

 Dovoljeno je kopirati in raz�irjati spremenjene razli�ice tega
 priro�nika pod pogoji za dobesedno kopiranje, �e se izpeljano delo
 raz�irja z enako opombo glede dovoljenj.  Prevodi padejo v kategorijo
 ,,spremenjenih razli�ic``.

 Garancija: Ni je.

 Priporo�ila: Komercialno raz�irjanje je dovoljeno in celo za�eleno;
 vendar se mo�no priporo�a, da distributer stopi v stik z avtorjem �e
 pred distribucijo, da bi obdr�ali osve�eno stanje stvari (lahko mi
 po�ljete tudi kopijo stvari, ki jo izdelujete, �e ste �e pri tem).
 Avtor svetuje tudi prevajalcem, da stopijo v stik z njim, preden
 za�nejo prevajati.  Natisnjene razli�ice so videti bolje.  Lahko jih
 recikliramo.