Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 12801f336d9e363d2d56a08891cdf472 > files > 12

howto-text-sl-2006-5mdv2010.0.noarch.rpm

  Jedro Linuxa, HOWTO
  Brian Ward, bri@cs.uchicago.edu
  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 (boldt@math.ucsb.edu) 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 <faith@cs.unc.edu> je sestavil veliko zbirko uporabnih
  programov za Linux, ki se imenujejo util-linux.  Trenutno jih vzdr¾uje
  Andries Brouwer <util-linux@math.uio.no>.  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 <nelson@crynwr.com> 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
  <bri@cs.uchicago.edu>.  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
  <roman.maurer@hermes.si>.  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!)

  *  uc@brian.lunetix.de (Ulrich Callmeier): patch -s in xargs,

  *  quinlan@yggdrasil.com (Daniel Quinlan): popravki in dodatki veè
     razdelkov,

  *  nat@nataa.fr.eu.org (Nat Makarevitch): mrproper, tar -p, veè drugih
     reèi,

  *  boldt@math.ucsb.edu (Axel Boldt): po omre¾ju je zbral opise
     konfiguracijskih izbir jedra; potem mi je poslal seznam,

  *  lembark@wrkhors.psyber.com (Steve Lembark): predlog razliènega
     zaganjanja,
  *  kbriggs@earwax.pd.uwa.edu.au (Keith Briggs): nekateri popravki in
     predlogi,

  *  rmcguire@freenet.columbus.oh.us (Ryan McGuire): dodatki ciljev
     make,

  *  dumas@excalibur.ibp.fr (Eric Dumas): francoski prevod,

  *  simazaki@ab11.yamanashi.ac.jp (Yasutada Shimazaki): japonski
     prevod,

  *  jjamor@lml.ls.fi.upm.es (Juan Jose Amor Iglesias): ¹panski prevod,

  *  mva@sbbs.se (Martin Wahlen): ¹vedski prevod,

  *  jzp1218@stud.u-szeged.hu (Zoltan Vamosi): mad¾arski prevod,

  *  bart@mat.uni.torun.pl (Bartosz Maruszewski): poljski prevod,

  *  roman.maurer@hermes.si (Roman Maurer): slovenski prevod,

  *  donahue@tiber.nist.gov (Michael J. Donahue): tipkarske napake,
     zmagovalec ,,tekmovanja narezanega kruha``,

  *  rms@gnu.ai.mit.edu (Richard Stallman): zamisel in distribucija
     ,,proste`` dokumentacije,

  *  dak@Pool.Informatik.RWTH-Aachen.DE (David Kastrup): reè o NFS,

  *  esr@snark.thyrsus.com (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.