  Linux Kernel HOGYAN
  Brian Ward, bri@cs.uchicago.edu
  v1.0, 1999. jnius 5.

  Rszletes tmutat a kernel konfigurlshoz, fordtshoz,
  frisstshez s a hibakeresshez x86 alap gpeken.
  ______________________________________________________________________

  Tartalomjegyzk



  1. Bevezets
     1.1 Ezt olvasd el elszr! (Komolyan)
     1.2 A stlusrl

  2. Fontos krdsek s vlaszok
     2.1 Egyltaln mit csinl a kernel?
     2.2 Mirt kell frissteni a kernelt?
     2.3 Milyen hardvert tmogatnak az jabb kernelek?
     2.4 A gcc s libc melyik verzijra van szksg?
     2.5 Mi a betlthet modul?
     2.6 Mennyi lemezterletre van szksg?
     2.7 Mennyi ideig tart?

  3. Hogyan kell konfigurlni a kernelt?
     3.1 A forrs beszerzse
     3.2 A forrs kibontsa
     3.3 A kernel konfigurlsa
        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.9 De n nem tudom, milyen fjlrendszer kell nekem!
        3.3.10 Character devices
        3.3.11 Sound
        3.3.12 Egyb konfigurcis opcik
        3.3.13 Kernel hackels
     3.4 Na most mi legyen? (A Makefile)

  4. A kernel fordtsa
     4.1 Trlsek s fggsgek
     4.2 Fordtsi id
     4.3 A ``make'' egyb opcii
     4.4 A kernel installlsa

  5. A kernel foltozsa
     5.1 A foltozs
     5.2 Ha valami nem megy
     5.3 Az .orig fjloktl val megszabaduls
     5.4 Egyb foltok

  6. Tovbbi csomagok
     6.1 kbd
     6.2 util-linux
     6.3 hdparm
     6.4 gpm

  7. Nhny kelepce
     7.1 make clean
     7.2 Nagy vagy lass kernel
     7.3 A prhuzamos port nem mkdik, nem tudok nyomtatni
     7.4 A kernel nem fordul le
     7.5 Az j kernel nem bootol
     7.6 Elfelejtetted futtatni a LILO-t, vagy egyltaln nem bootol
     7.7 Azt mondja `warning: bdflush not running'
     7.8 Nem mkdik az IDE/ATAPI CD-ROM meghajt
     7.9 Furcsa zenetek ``obsolete routing requests''-rl
     7.10 A tzfal (firewall) nem mkdik az 1.2.0 kernellel
     7.11 ``Not a compressed kernel Image file''
     7.12 Problmk a konzollal 1.3.x-ra val frissts utn
     7.13 Nem lehet semmit lefordtani kernel upgrade utn
     7.14 A korltok megemelse

  8. A 2.0.x s 2.2.x kernelekre trtn frissts
  9. Modulok
     9.1 A segdprogramok teleptse
     9.2 Kernellel terjesztett modulok

  10. Tippek s trkkk
     10.1 A make s patch parancsok kimenetnek tirnytsa
     10.2 Feltteles kernelinstallls
     10.3 A kernel frisstsei

  11. Egyb idevg HOWTO-k (HOGYAN-ok), amelyek hasznosak lehetnek
  12. Egyebek
     12.1 A szerz
     12.2 Tennivalk
     12.3 Hozzjrulsok
     12.4 Copyright, licensz s ilyesmi


  ______________________________________________________________________

  1.  Bevezets


  Neked szl ez a dokumentum? Igen, ha illik rd a kvetkezk
  valamelyike:



    ``Grrr! Ennek a wizzo-46.5.6 programcsomagnak az 1.8.193-as  kernel
     verzi kell, nekem meg mg mindig csak 1.0.9-es van!''

    Az jabb kernelek egyikben van egy olyan eszkzmeghajt, amelyre
     geten szksged van.

    Tnyleg fogalmad sincs arrl, hogy hogyan kell kernelt fordtani.

    ``Tnyleg csak annyi az egsz, amit a README-ben rnak?''

    Jttl, lttl, nem sikerlt.

    Mutatnod kell valamit azoknak, akik ragaszkodnak hozz, hogy Te
     telepts nekik kernelt.


  1.1.  Ezt olvasd el elszr! (Komolyan)

  A pldk felttelezik hogy van a gpeden GNU tar, find s xargs.  Ezek
  elgg szabvnyosak; ez nem okozhat problmt. Tovbb felttelezem,
  hogy ismered a gped fjlrendszernek felptst; ha nem, akkor
  nagyon fontos, hogy legyen egy msolatod a mount parancs norml
  mkds melletti outputjrl (vagy az /etc/fstab tartalmrl, ha el
  tudod olvasni). Ez az informci fontos, s csak akkor vltozik meg,
  ha jrapartcionljk a merevlemezt, installlnak egy jat,
  jrateleptik a rendszert, vagy valami hasonl.


  Az aktulis ``stabil'' kernel verzi a dokumentum megrsnak idejn a
  2.2.9 volt, teht a hivatkozsok s pldk erre a verzira
  vonatkoznak.  Br megprbltam annyira verzifggetlen lenni,
  amennyire lehetsges, a kernel llandan fejleszts alatt ll, gy
  minden jabb verziban elkerlhetetlenl lesznek bizonyos klnbsgek.
  Ez sem okozhat nagy problmkat, legfeljebb kisebb zavart.


  A linux kernel forrsnak kt vltozata van: ``stabil'' s
  ``fejleszti''. A stabil verzik az 1.0.x -tl kezddtek, s pros
  szmot viselnek. Teht az 1.2.x, a 2.0.x s a 2.2.x is stabil. Ezeket
  tartjk a legstabilabb, legkevsb hibs kernelnek a kibocsts
  idejn. A fejleszti kernelek (2.1.x, 2.3.x,  stb.) tesztelsre
  valk, s olyanoknak sznjk, akik hajlandak j s esetleg sok
  hibval teli kerneleket kiprblni. Ne mond, hogy nem szltam.



  1.2.  A stlusrl

  Az a szveg ami gy nz ki, az vagy olyasmi ami megjelenik a
  kpernyn, vagy amit kzvetlenl be kell gpelni, mint pldul egy
  parancs, vagy egy parancs opcii, vagy egy fjlnv. (A sima szveges
  vltozatban nem ltszik semmi klnbsg.) A parancsok ltalban
  egyszeres idzjelek (`')  jelek kztt vannak.



  2.  Fontos krdsek s vlaszok



  2.1.  Egyltaln mit csinl a kernel?


  A Unix kernel a kzvett a programok s a hardver kztt.  Menedzseli
  a memrit az sszes fut program (processz) szmra, s biztostja,
  hogy mind egyenlen (vagy egyenltlenl, ha gy  tetszik)
  rszesljenek a processzor ciklusaibl. Tovbb egy knyelmes,
  hordozhat felletet nyjt a programoknak, amelyen t kommuniklhatnak
  a hardverrel.


  Ennl persze jval tbb szt rdemelne a kernel mkdse, de ezeket az
  alapvet funkcikat a legfontosabb ismerni.



  2.2.  Mirt kell frissteni a kernelt?


  Az jabb kernelek ltalban tbbfle hardverrel tudnak egyttmkdni,
  mint a rgebbiek (azaz tbb eszkzmeghajtjuk van). Lehet hogy az j
  kernelnek jobb a processzkezelse, gyorsabb vagy stabilabb, mint a
  rgi verzi, s mr ki van benne javtva az elz ismert hibja. A
  legtbben az eszkzmeghajtk s a kijavtott hibk miatt frisstenek
  kernelt.



  2.3.  Milyen hardvert tmogatnak az jabb kernelek?


  Lsd a Hardware-HOWTO-t. Tovbb megnzheted a `.config' fjlt a linux
  forrsban, vagy kiderl, ha kiadod a `make config', a `make
  menuconfig' vagy a `make xconfig' parancsot.  Ez megmutatja az sszes
  hardvert amit a szabvnyos kernel csomag tmogat, de nem mindent, amit
  a linux tmogat. Sok elterjedt eszkzmeghajt (mint pldul a PCMCIA
  krtyk s nmely szalagos egysg meghajtja) betlthet modulknt
  van megrva, amelyeket kln gondoznak s terjesztenek.



  2.4.  A gcc s libc melyik verzijra van szksg?


  Linus ajnl egy gcc verzit a linux forrshoz mellkelt README
  fjlban. Ha neked nincs meg ez a verzi, a gcc ajnlott verzijnak
  dokumentcija megmondja, hogy kell-e frissteni a libc-t.  Ez nem egy
  bonyolult eljars, de fontos betartani az  utastsokat.



  2.5.  Mi a betlthet modul?


  Ezek a kernel program olyan rszei, amelyek nincsenek kzvetlenl
  beillesztve a kernelbe. Ezeket kln kell lefordtani, s szinte
  brmikor be lehet illeszteni ket a fut kernelbe, illetve ki lehet
  venni onnan. A rugalmassga miatt mr ez a legelterjedtebb mdszer
  bizonyos kernelszolgltatsok programozsra. Sok npszer
  eszkzmeghajt, mint pldul a PCMCIA meghajtk s a QIC-80/40
  szalagos egysg meghajtja betlthet modulknt van megrva.



  2.6.  Mennyi lemezterletre van szksg?


  Ez az adott konfigurcitl fgg.  Elszr is a tmrtett linux
  forrs majdnem 14 megabjt a 2.2.9-es verzinl. A legtbb helyen ezt
  a kicsomagols utn is megtartjk.  Kibontva, s egy tlagos
  konfigurcival  lefordtva mg 67 MB hely kell neki.



  2.7.  Mennyi ideig tart?

  Az jabb gpeken a fordts sokkal kevesebb idt vesz ignybe, mint a
  rgieken. Egy AMD K6-2/300 egy gyors merevlemezzel krlbell ngy
  perc alatt vgez a 2.2.x kernel fordtsval. A rgi Pentiumos, 486-os
  s 386-os gpeken ez rkig, esetleg napokig is eltarthat.

  Ha ez gondot okoz, akkor megkrhetsz valakit, akinek gyors gpe van,
  hogy fordtsa le neked a kernelt (feltve, hogy j paramtereket adsz
  meg, a legfrissebb  segdprogramokat hasznlod, stb.), s az j
  kernelt tmsolod a lass gpre.



  3.  Hogyan kell konfigurlni a kernelt?



  3.1.  A forrs beszerzse


  A forrst anonymous ftp-vel lehet beszerezni az ftp.kernel.org-on a
  /pub/linux/kernel/vx.y knyvtrbl, egy tkrzsrl, vagy egyb
  helyrl. Az x.y vgzds a verziszm (pl. 2.2), s ahogy az elbb
  emltettem, a pratlan szmra vgzdek a fejleszti verzik, amelyek
  instabilak lehetnek.  ltalban linux-x.y.z.tar.gz a neve, ahol x.y.z
  a verziszm.  Ezeken az ftp helyeken gyakran .bz2 kiterjesztssel is
  megtallhat a kernel forrsa. Ezt a bzip2 programmal tmrtettk,
  ami kisebb fjlokat eredmnyez, s ezrt hamarabb letlthet.

  A legjobb az ftp.xx.kernel.org ftp kiszolglt hasznlni, ahol xx az
  orszg kdja. Pldul az ftp.hu.kernel.org a magyarorszgi, az
  ftp.us.kernel.org az amerikai szerver.
  3.2.  A forrs kibontsa


  Lpj be `root'-knt (vagy vlts t su-val) s menj t (cd-vel) az
  /usr/src knyvtrba.  Ha a linux teleptsekor a forrst is felraktad
  (ahogy a legtbben teszik), akkor mr lesz ott egy `linux' nev
  knyvtr, ami tartalmazza az egsz forrs-hierarchit.  Ha van elg
  lemezterleted, s biztosra akarsz menni, akkor tartsd meg ezt a
  knyvtrat. A legjobb ha kiderted melyik verzi fut ppen, s a
  knyvtrat annak megfelelen nevezed t. A `uname -r' parancs kirja
  az aktulis verziszmot.  Teht ha az `uname -r' azt vlaszolta, hogy
  `2.0.17', akkor nevezd t  a `linux'-ot (`mv'-vel) `linux-2.0.17'-re.
  Ha szeretsz kockztatni, akkor csak trld ki az egsz knyvtrat. A
  lnyeg, hogy ne legyen `linux' nev knyvtr az /usr/src-ben amikor
  kibontod a forrst.


  Most (mg mindig az /usr/src-ben) bontsd ki a forrst a `tar zxpvf
  linux-x.y.z.tar.gz' paranccsal. (Ha csak egy .tar fjlunk van .gz
  kiterjeszts nlkl, akkor a `tar xpvf linux-x.y.z.tar' parancsot kell
  hasznlni.)  Az archvum tartalma el fog szguldani a kpernyn.
  Amikor vge, lesz egy j `linux' knyvtr az /usr/src-ben.  Menj bele
  s nzd t a README fjlt.  Lesz benne egy `INSTALLING the kernel'
  cm rsz.  Hajtsd vgre az utastsait, ha szksges -- pldul a
  szimbolikus linkek elksztse a megfelel helyre, rgi .o fjlok
  eltvoltsa, stb.

  Ha .bz2 kiterjeszts fjlod van, s megvan a bzip2 program
  (tudnivalk a http://www.muraroa.demon.co.uk/ webhelyen), akkor add ki
  a


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


  parancsot.


  3.3.  A kernel konfigurlsa


  Megjegyzs: Az itt kvetkezk egy rsze a Linus-fle README egy
  hasonl fejezetnek megismtlse, rszletezse.


  Az /usr/src/linux-bl kiadott `make config' parancs elindt egy
  konfigurl scriptet, amely sok krdst tesz fel. A bash kell hozz,
  ezrt ellenrizd, hogy ltezik-e a /bin/bash, a /bin/sh a /bin/bash-ra
  mutat-e, vagy a $BASH tartalmazza-e a /bin/bash-t.


  A  `make config'-nak van nhny knnyebben s knyelmesebben
  hasznlhat  alternatvja.  A `make menuconfig' parancsot hasznljk
  taln a legtbben. Brmelyiket is vlasztod, nem rt, ha elbb
  megismerkedsz a felhasznli felletvel. Ha nem gy teszel, hamarabb
  meg fogod bnni, mint gondolnd.  Azok akik X alatt dolgoznak,
  megprblhatjk a `make xconfig'-ot, ha van Tk installlva. A `make
  menuconfig' azoknak val, akik jobban szeretnnek egy szveges ment;
  (n)curses kell hozz. Ezeknek a felleteknek van egy hatrozott
  elnyk: ha elrontasz valamit a konfigurls kzben, akkor egyszeren
  vissza lehet menni kijavtani.


  A `make menuconfig' s a `make xconfig' hasznlata esetn a
  konfigurcis lehetsgek rendezett struktrban jelennek meg.

  A krdsekre ltalban igennel (`y' (yes)) vagy nemmel (`n' (no)) kell
  vlaszolni. Az eszkzmeghajtknl ltalban vlaszthatjuk az `m'
  lehetsget is.  Ez azt jelenti ``modul'', azaz a rendszer le fogja
  fordtani, de nem kzvetlenl a kernelbe, hanem betlthet modulknt.
  Sokkal viccesebb gy magyarzni, hogy ``maybe'' (``taln''). Nhny
  nyilvnval vagy lnyegtelen opcit itt nem magyarzok el, nhny
  egyb opci  rvid lerst lsd az ``Egyb konfigurcis opcik''
  cm fejezetben.  A `make menuconfig'-ban a szkzbillentyvel lehet
  kivlasztani valamit.


  A 2.0.x verzitl kezdve van egy `?' opci is. Ennek hatsra az adott
  paramter egy rvid lerst kapjuk. Ez a legnaprakszebb informci
  az adott opcirl. A kvetkezkben felsorolok nhny fontos
  belltst, a helyket az opcik hierarchijban s egy rvid lerst.



  3.3.1.  Kernel math emulation (Processor type and features)

  Trsprocesszor emulci.  Ha nincs matematikai trsprocesszor a
  gpedben (egy sima 386 vagy 486SX esetn), akkor erre igennel kell
  vlaszolni. Ha van trsprocesszor, s mgis igennel vlaszolsz, ne
  aggdj -- a kernel hasznlni fogja a trsprocesszort, s figyelmen
  kvl hagyja az emulcit. Minden tbb-kevsb modern gpre a vlasz
  `nem' legyen, de semmi baj, ha vletlenl igent adtl meg, ha nem
  kell, nem fogja hasznlni a kernel.



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


  Tovbbfejlesztett IDE/MFM/RLL disk/cdrom/szalagos egysg tmogats.
  Erre valsznleg szksg lesz. Ez azt jelenti, hogy a kernel
  tmogatni fogja a szabvnyos PC merevlemezeket; a legtbb gpben ilyen
  van. Ebbe nem tartoznak bele a SCSI meghajtk, ezek konfigurlsra
  ksbb kerl sor.

  Ezutn lehet vlasztani az ``old disk-only'' (``csak rgi
  merevlemez'') s a ``new IDE'' (``j IDE'') lehetsgek kzl.  Az
  egyiket ki kell vlasztani. A f klnbsg az, hogy a rgi meghajt
  csak kt lemezegysget tud kezelni egy csatoln, mg a msik egy
  msodik csatolt is tud kezelni, illetve az IDE/ATAPI CD-ROM s
  szalagos  egysgeket is.  Az j meghajt 4k-val nagyobb, mint a rgi,
  s  felttelezheten ``fejlettebb'', ami azt jelenti, hogy amellett,
  hogy  tbb hibajavtst is tartalmaz, megnveli a lemezek
  teljestmnyt,  klnsen az jabb (EIDE) hardver esetn.



  3.3.3.  Networking support (General Setup)


  Hlzati tmogats.  Elmletileg erre csak akkor kellene igennel
  vlaszolni, ha gped egy hlzaton van, mint amilyen az Internet, vagy
  ppen SLIP, PPP, term, stb. segtsgvel telefonvonalon akarsz
  hlzatra kapcsoldni.  De mivel sok programcsomag (mint pldul az X
  Window System) akkor is ignyel hlzati tmogatst, ha a gp nincs
  igazi hlzatra ktve, mindenkppen igennel kell vlaszolni. Ksbb
  megkrdezi, hogy akarsz-e TCP/IP tmogatst; itt is `y' a  vlasz,
  hacsak nem vagy teljesen biztos az ellenkezjben.



  3.3.4.  System V IPC (General Setup)


  Az IPC (Interprocess Communication = ``processzek kztti
  kommunikci'') egyik legjobb defincija a Perl knyv
  szmagyarzatban tallhat. Nem meglep, hogy nhny Perl programoz
  ennek segtsgvel kld zeneteket a processzek kztt, csakgy mint
  sok ms programcsomag (pl. a DOOM, hogy a legismertebbet emltsem).
  Ezrt nem ajnlatos n-el vlaszolni, hacsak nem tudod pontosan mit
  csinlsz.



  3.3.5.  Processor family (Processor type and features)

  (A rgebbi kerneleknl hasznld a -m486 kapcsolt a 486
  optimalizcihoz.)


  Rgebben ez befordtott bizonyos optimalizcit az adott
  processzorhoz; a kernel simn futott ms processzorokon is, csak egy
  kicsit nagyobb volt. Az jabb kernelek esetn ez mr nem gy van,
  ezrt annak a processzornak a tpust kell berni, amelyhez a kernel
  kszl. Egy ``386-os'' kernel minden gpen menni fog.



  3.3.6.  SCSI support


  SCSI tmogats.  Ha van SCSI eszkzd, vlaszolj  `y'-t. Tovbbi
  krdseket fog feltenni CD-ROM tmogatsrl, a lemezegysgek s az
  SCSI adapter tpusrl. Rszletesebb informcirt lsd az SCSI-HOWTO-
  t.



  3.3.7.  Network device support


  Hlzati eszkz tmogats.  Ha van hlzati krtyd, vagy szeretnl
  SLIP-pel, PPP-vel vagy a prhuzamos porton t csatlakozni az
  Internethez, vlaszolj igennel. A konfigurcis script megkrdezi a
  krtya tpust s a hasznland protokollt.



  3.3.8.  Filesystems


  Fjlrendszerek.  A konfigurl script ezek utn megkrdi, hogy akarod-
  e hasznlni a kvetkez fjlrendszereket:


  Minix - Az jabb disztribcik nem hoznak ltre minix
  fjlrendszereket, s sokan nem is hasznljk, de ennek ellnre
  rdemes lehet bekonfigurlni.  Nhny ``mentlemez''-program
  hasznlja, s sok hajlkony lemezen van minix fjlrendszer, mert
  hajlkony lemezen sokkal  knyelmesebb ezt hasznlni. (Kevesebb helyet
  foglal maga a fjlrendszer.)


  Second extended - Ez a szabvnyos Linux fjlrendszer. Csaknem biztos,
  hogy ilyened van, igennel kell vlaszolni.


  msdos - Ha hasznlni akarod a meglv MS-DOS partcikat, vagy DOS
  alatt formzott hajlkony lemezeket akarsz mountolni, akkor vlaszolj
  igennel.


  Egy csom ms opercis rendszer fjlrendszere is kivlaszthat.


  /proc - (A Bell Labs tlete volt, azt hiszem.) A proc fjlrendszer nem
  arra val, hogy ltrehozzk a lemezen; ez egy fjlrendszer fellet a
  kernel s a processzek fel. Sok processzlistz (mint a `ps')
  hasznlja. Egyszer prbld ki a `cat /proc/meminfo' vagy a `cat
  /proc/devices' parancsokat.  Nhny parancsrtelmez (klnsen az rc)
  hasznlja a /proc/self/fd-t (ms rendszereken /dev/fd nven ismert)
  I/O mveletekre. Majdnem biztosan igennel kell vlaszolnod erre, sok
  fontos linux segdprogram tmaszkodik r.


  NFS - Ha a gped hlzatra van ktve s szeretnl ms gpeken lv
  fjlrendszereket hasznlni NFS-sel, akkor vlaszd ki.


  ISO9660 - A legtbb CD-ROM-on ez tallhat. Ha van CD-ROM meghajtd,
  s szeretnd linux alatt hasznlni, vlaszd ki.



  3.3.9.  De n nem tudom, milyen fjlrendszer kell nekem!


  Jl van, rd be, hogy `mount'.  A kimenet valami ilyesmi lesz:



           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)



  Nzd meg mindegyik sort. A `type' utni sz a fjlrendszer tpusa.
  Ebben a pldban a / s a /usr fjlrendszerek tpusa ext2 (second
  extended). Hasznlok /proc fjlrendszert is, tovbb egy hajlkony
  lemez be van mountolva msdos fjlrendszerknt.

  Megprblkozhatsz a `cat /proc/filesystems' paranccsal, ha a /proc
  ppen tmogatva van a fut kernelben s be van mountolva; ez ki fogja
  listzni az aktulis kernel fjlrendszereit.

  A ritkn hasznlt, nem ltfontossg fjlrendszerek bekonfigurlsa
  tlmretezett kernelt eredmnyezhet. A ``modulokrl'' szl fejezetbl
  kiderl, hogy ezt hogy lehet elkerlni. A ``Nhny kelepce'' cmbl
  pedig az, hogy mirt nem kvnatos a nagy kernel.



  3.3.10.  Character devices


  Karakteres eszkzk.  Itt llthatk be a (prhuzamos) nyomtat, busz-
  egr (busmouse), PS/2 egr (sok notebook gp hasznl PS/2 egr
  protokollt a beptett trackballhoz), nhny szalagos egysg s ms
  hasonl ``karakteres'' eszkzkhz a meghajtk.   Nyomj `y'-t a
  megfelel helyen.


  Megjegyzs: A gpm egy program, amely lehetv teszi az egr
  hasznlatt az X ablakoz rendszeren kvl is, virtulis konzolok
  kztti msolsra. Ha soros egered van, elg kellemes, mert jl megfr
  az X-el, de ha msmilyen, akkor trkkzni kell.



  3.3.11.  Sound


  Hang. Ha nagyon vgysz arra, hogy halljad a biff-et ugatni, nyomj
  `y'-t, s a konfigurcis program rszletesen ki fog krdezni a
  hangkrtydrl. (Megjegyzs a hangkrtya konfigurlshoz: amikor
  megkrdezi, hogy a meghajt teljes verzijt teleptse-e,
  vlaszolhatsz nemmel. Ha csak azokat az opcikat vlasztod ki,
  amelyekre tnyleg szksged van, megsprolhatsz egy kis kernel-
  memrit.


  Ha fontos neked a hangkrtyd tmogatottsga, nzd meg az ingyenes
  eszkzmeghajtkat a http://www.linux.org.uk/OSS/ webhelyen, illetve a
  fizets Open Sound System meghajtit a http://www.opensound.com/
  webhelyen.



  3.3.12.  Egyb konfigurcis opcik

  Nincs az sszes konfigurcis opci felsorolva itt, egyrszt mert tl
  gyorsan vltoznak, msrszt mert magtl rtetdek. (Pldul a ``3Com
  3C509 support'' az emltett ethernet krtyhoz val tmogatst
  jelenti.)  Axel Boldt (boldt@math.ucsb.edu) sszelltott egy
  meglehetsen szleskr listt az sszes opcirl (s egy mdszert,
  amivel be lehet tenni ket a Configure scriptbe). Ez az online
  segtsg, ami bele van integrlva a forrsba a 2.0.x feletti
  kernelekben (Documentation/Configure.help).



  3.3.13.  Kernel hackels


  Linus rja a README-ben: A ``kernel hacking'' konfigurcis rszletek
  ltalban nagyobb vagy lassabb (vagy mindkett) kernelt eredmnyeznek,
  st akr kevsb  stabilabb is tehetik a kernelt azltal, hogy
  bekonfigurlnak nhny  rutint, amelyek megprbljk aktvan feltrni
  a hibs  programrszleteket, hogy gy talljanak problmkat. Ezrt
  inkbb `n'-t kell vlaszolni az erre vonatkoz krdsekre egy
  ``stabil'' kernel esetn.



  3.4.  Na most mi legyen? (A Makefile)


  A konfigurls befejezse utn egy zenet tudatja, hogy a  kernel
  konfigurlsa megtrtnt s felszlt, hogy ``check the top-level
  Makefile for additional configuration'', stb. (``Tovbbi
  konfigurlshoz ellenrizd a felsszint Makefile-t'')


  Nzz bele teht a Makefile-ba. Valsznleg nem kell megvltoztatni
  semmit, de megnzni sosem rthat. Az opcikat megvltoztathatod akkor
  is, amikor az j kernel mr a helyn van, az `rdev' paranccsal. Ha egy
  kukkot sem rtesz abbl, mit a fjlban ltsz, akkor hagyhatod
  nyugodtan.



  4.  A kernel fordtsa



  4.1.  Trlsek s fggsgek


  Amikor a konfigurl script vget r, azt is mondja, hogy add ki a
  `make dep' s a `make clean' parancsokat.  A `make dep' ellenrzi,
  hogy az sszes fggsg, mint pldul az include fjlok, a helykn
  vannak-e. Nem tart sokig, hacsak a gped nem nagyon lass. Egy `make
  clean'-t is csinlni kell.  Ez letrli az sszes object fjlt s
  nhny egyb dolgot, amit a rgi verzi htrahagy. Mindenesetre ne
  felejtsd el ezt a lpst, mieltt megprblod jrafordtani a kernelt.



  4.2.  Fordtsi id


  A 'make dep` s a  'make clean` utn jhet a `make bzImage' vagy a
  `make bzdisk'. (Ez az a rsz, ami sokig tart.)  A `make bzImage'
  lefordtja a kernelt, s tbbek kztt egy `bzImage' nev fjlt hagy
  maga utn az arch/i386/boot knyvtrban. Ez az j tmrtett kernel. A
  `make bzdisk' ugyanezt teszi, de az j bzImage-t rmsolja egy
  hajlkony lemezre, amelyet  addigra remlhetleg mr betettl az
  ``A:'' meghajtba.  A `bzdisk' nagyon knyelmes az j kernelek
  tesztelshez. Ha lefagy (vagy egyszeren csak nem mkdik jl), akkor
  csak kiveszed a lemezt, s bootolhatsz a  rgi kernellel. Akkor is jl
  jn, ha vletlenl letrld a kernelt (vagy valami hasonl szrnysg
  trtnik). j rendszerek teleptsre is lehet hasznlni; az egyik
  lemez tartalmt egyszeren tmsolod a  msikra.


  Minden valamireval jabb kernel tmrtve van, ezrt van `bz' a nevk
  eltt. A tmrtett kernel automatikusan kicsomagolja magt, amikor
  vgrehajtdik.


  A rgebbi kerneleknl mg nem volt lehetsg bzImage ltrehozsra,
  akkor mg csak zImage volt. Ez a lehetsg mg ma is megvan, de
  tekintve az jabb kernelek mrett, tbb kevsb ktelez bzImage-et
  fordtani, mert a rgebbi mdszerekkel nem lehet kezelni a tl nagy
  kerneleket.



  4.3.  A ``make'' egyb opcii


  A `make mrproper' alaposabb trlst vgez.  Nha szksg van r;
  ajnlatos minden foltozs alkalmval vgrehajtani. A `make mrproper' a
  konfigurcis fjlt (.config) is letrli, ezrt csinlj rla
  biztonsgi msolatot, ha gy gondolod, hogy mg kellhet.


  A `make oldconfig' megprblja egy rgi konfigurcis fjl alapjn
  konfigurlni a kernelt; elvgzi helyetted a `make config' lpst.  Ha
  mg sosem fordtottl kernelt, vagy nincs rgi konfigurcis fjl
  kznl, akkor ne tedd, mert minden bizonnyal meg kell vltoztatni az
  alaprtelmezett konfigurcit.


  A `make modules' lersa a modulokrl szl fejezetben tallhat.



  4.4.  A kernel installlsa

  Ha ksz van a kernel s az gy is mkdik, ahogy szeretnd, itt az
  ideje installlni. A legtbben a LILO-t (Linux Loader) hasznljk erre
  clra.  A `make bzlilo' installlja a kernelt, lefuttatja rajta a
  LILO-t, s bootolsra ksz llapotba hozza, DE CSAK AKKOR, ha a LILO a
  kvetkezkppen van konfigurlva: a kernel /vmlinuz, a LILO az /sbin-
  ben van, s a LILO konfigurcis fjl (/etc/lilo.conf) tartalma is
  ennek megfelel.


  Ellenkez esetben kzvetlenl kell a LILO-t hasznlni. Elgg knny
  installlni s hasznlni, de a konfigurcis fjl hajlamos
  sszezavarni az embereket.  Nzd meg a konfigurcis fjlban (a
  rgebbi verziknl /etc/lilo/config, az jaknl /etc/lilo.conf), hogy
  mi az aktulis bellts. A konfigurcis fjl gy nz ki:



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



  Az `image =' az aktulis kernelre mutat. A legtbben /vmlinuz-t
  hasznlnak. A `label' alapjn dnti el a lilo, hogy melyik kernelt,
  vagy opercis rendszert indtsa el, s a `root' az adott opercis
  rendszert gykrknyvtra. Kszts biztonsgi msolatot a rgi
  kernelrl s msold a frissen fordtott bzImage-et a helyre.
  (Pldul, ha `/vmlinuz'-t hasznlsz, azt mondod, hogy `cp bzImage
  /vmlinuz'.) Ezutn futtasd a lilo-t -- az jabb rendszereken elg
  annyi, hogy `lilo', de rgebbieken lehet, hogy `/etc/lilo/install' ,
  vagy akr `/etc/lilo/lilo -C /etc/lilo/config' kell.


  Ha szeretnl tbbet tudni a LILO konfigurlsrl, vagy nincs is meg
  neked, akkor szerezd meg a legjabb verzit a kedvenc ftp helyedrl,
  s kvesd az utastsokat.


  Ha szeretnl egy rgi kernelt bootolni a merevlemezrl (gy is
  megmeneklhetsz, ha az jat elrontottad), msold le a lilo
  konfigurcis fjlban az `image = xxx' sort s az utnna kvetkez
  sorokat a fjl aljra, s vltoztasd meg az `image = xxx' sort `image
  = yyy'-ra, ahol `yyy' annak a fjlnak a teljes elrsi tvonala,
  amelybe a rgi kernelt mentetted. Azutn vltoztasd meg a `label =
  zzz' sort `label = linux-backup'-ra s futtasd a lilo-t. Lehet, hogy
  be kell tenni egy `delay=x' sort is a konfigurcis fjlba, ahol x az
  az id tizedmsodpercben megadva, amennyit a lilo vr, mieltt
  bootolna. gy meg lehet szaktani (pldul a shift billentyvel), s
  be lehet rni a rgi kernel cmkjt, ha valami kellemetlen trtnik
  az jjal.



  5.  A kernel foltozsa



  5.1.  A foltozs


  A kernel inkrementlis frisstseit foltok (patch) formjban
  terjesztik. Pldul, ha neked a 2.2.9 verzi van meg, s szreveszed,
  hogy van hozz valahol egy patch-2.2.10, akkor ez azt jelenti,
  frissthetsz a 2.2.10 verzira foltozssal. Elszr taln kszts egy
  biztonsgi msolatot a  forrsrl. (A `make clean' aztn a `cd
  /usr/src; tar zcvf old-tree.tar.gz linux' csinl neked egy tmrtett
  tar archvumot.)


  A fenti pldt folytatva, tegyk fel, hogy a `patch-2.2.10.gz' az
  /usr/src knyvtrban van. Menj t (cd-vel) az /usr/src-be, s add ki a
  `zcat patch-2.2.10.gz | patch -p0' parancsot, (vagy a  `patch -p0 <
  patch-2.2.10' parancsot, ha a folt nincs tmrtve). Egy csom minden
  fog elsuhanni eltted a kpernyn (vagy pp elvnszorogni, ha annyira
  lass a gp). zenetek jelennek meg arrl, hogy a patch ppen mit
  csinl, s hogy sikerlt-e neki vagy nem.  Ez ltalban tl gyors
  ahhoz, hogy brmit is el lehessen olvasni. Ha nem vagy biztos benne,
  hogy sikerlt-e, hasznld a patch -s kapcsoljt, aminek hatsra csak
  a  hibazeneteket rja ki. Ekkor nem lesz meg ``hejj, de szorgosan
  dolgozik a szmtgpem'' rzsed, de taln gy jobban kedveled...
  Menj be a /usr/src/linux-ba s keress .rej (``reject'') kiterjeszts
  fjlokat, ezekbl kiderl, ha valami nem ment simn.  A patch nhny
  verzija (olyan rgebbi verzik, amelyeket gyengbb fjlrendszerhez
  fordtottak) # kiterjesztst ad a ``reject'' fjloknak. A `find'
  parancsot hasznlhatod a keressre:


      find .  -name '*.rej' -print


  Ez kirja a standard outputra az sszes olyan fjl nevt, amely az
  aktulis knyvtrban, vagy az abbl nyl alknyvtrakban van s .rej
  a kiterjesztse.


  Ha minden simn ment, add ki a `make clean', `config' s  `dep'
  parancsokat a 3. s 4. fejezetben lertaknak megfelelen.


  A patch parancsnak elg sok opcija van. Ahogy az elbb is sz volt
  rla, a patch -s kikapcsolja az zeneteket, a hibk kivtelvel.  Ha a
  kernel forrst nem az /usr/src/linux-ban tartod, hanem valahol
  msutt, akkor a patch -p1 (az adott knyvtrban) fogja a foltozst
  helyesen vgrehajtani. A tbbi patch opci jl le van rva a
  kziknyvoldalon.



  5.2.  Ha valami nem megy


  (Megjegyzs: ez a fejezet fknt nagyon rgi kernelekre vonatkozik.)


  A leggyakrabban felmerl problma rgebben az volt, hogy a patch
  mdostott egy `config.in' nev fjlt, s nem sikerlt, mert a
  felhasznl megvltoztatta az opcikat, hogy illeszkedjen a gphez.
  Ezt azta megoldottk, de mg lehet vele tallkozni egy rgebbi
  kibocsts esetben.  A kvetkezkppen lehet megjavtani: nzz bele a
  config.in.rej fjlba, s keresd meg, mi maradt az eredeti foltbl.  A
  vltozsokat ltalban sor eleji `+' and `-' jelek jelzik. Nzd meg a
  krltte lv sorokat, s jegyezd meg, hogy az llsuk `y' vagy `n'.
  Utna szerkeszd t a config.in-t, s vltoztasd meg a `y'-t `n'-re s
  az `n'-t `y'-ra a megfelel helyeken. Adj ki egy


      patch -p0 < config.in.rej


  parancsot, s ha sikerl (nincs hibazenet), akkor lehet folytatni a
  konfigurlssal s a fordtssal. A config.in.rej fjl megmarad, de le
  lehet trlni.

  Ha tovbbi problmk bukkannak el, akkor lehet, hogy rossz sorrendben
  alkalmaztad a foltokat. Ha azt mondja, hogy `previously applied  patch
  detected: Assume -R?', akkor lehet, hogy az aktulis verzi eltti
  foltot prblsz felrakni. Ha `y'-t vlaszolsz, akkor megprblja
  lerontani a forrst, s nagy valsznsggel kudarcot vall. gy aztn
  szerezni kell egy teljes vadonatj forrst. (Lehet, hogy mindjrt
  ezzel kellett volna kezdeni.)


  Egy foltozst visszacsinlni a `patch -R' parancsal lehet.

  Ha a foltok tnyleg nem mkdnek, akkor legjobban teszed, ha beszerzel
  egy rintetlen forrst (pldul egy linux-x.y.z.tar.gz fjlt), s
  elkezded ellrl.



  5.3.  Az .orig fjloktl val megszabaduls


  Mr nhny foltozs utn az .orig fjlok kezdenek felhalmozdni.
  Pldul egyszer volt egy 1.1.51 forrsom, ami az 1.1.48. ta nem volt
  megtisztogatva.  Az .orig fjlok letrlse tbb mint fl megt
  szabadtott fel.  A


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


  parancs elintzi a dolgot. A patch azon verzii, amelyek #-el jellik
  a ``reject'' fjlokat, tildt hasznlnak az  .orig kiterjeszts
  helyett.

  Van egy jobb mdja is az .orig fjloktl val megszabadulsnak, amihez
  kell a GNU xargs:


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


  vagy a ``hossz de biztos'' mdszer:


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



  5.4.  Egyb foltok


  Linus Torvalds ltal terjesztett foltokon kvl vannak msmilyenek is,
  (nevezzk ket ``nem szabvnyos''-nak). Ha ezeket felrakod, akkor
  lehet, hogy a Linus fle foltok nem fognak jl mkdni, s akkor vagy
  visszacsinlod ket, s megjavtod a forrst vagy a foltot, vagy
  felraksz egy j forrst, vagy a fentiek valamilyen kombincija. Ez
  nagyon idegest lehet, teht ha nem akarod mdostani a forrst
  (kockztatva egy nagyon rossz vgkimenetelt), csinld vissza a nem
  szabvnyos foltokat mieltt felrakod Linusit, vagy rakj fel egy j
  forrst. gy ellenrizheted, hogy a nem szabvnyos foltok mkdnek-e
  mg. Ha nem, akkor vagy be kell rned egy rgi kernellel, vagy addig
  btykld vagy a forrst vagy a foltot amg nem mkdik, vagy vrsz
  (esetleg knyrgsz), hogy kijjjn a folt egy j verzija.


  Mennyire elterjedtek a nem szabvnyos foltok? Valsznleg fogsz rluk
  hallani. Rgebben hasznltam a ``noblink'' foltot a virtulis
  konzolokon, mert utlom a villog kurzort. (Ezt gyakran frisstik --
  vagy legalbbis frisstettk -- a kernel j verziihoz.) De mivel a
  legtbb j eszkzmeghajtt betlthet modulnak fejlesztik, a nem
  szabvnyos foltok gyakorisga jelentsen cskken.



  6.  Tovbbi csomagok

  A linux kernelnek sok olyan szolgltatsa van, amelyet nem emltenek
  meg magban a forrsban. Ezeket a szolgltatsokat ltalban kls
  programcsomagokon keresztl hasznljk. A leggyakoribbakbl nhny:



  6.1.  kbd

  A linux konzolnak taln tbb szolgltatsa van, mint amennyit
  megrdemel.  Tbbek kztt betkszletet tud vltani, tlltja a
  billentyzetet, tvltja a video mdot (az jabb kerneleknl), stb. A
  kbd csomagban olyan programok vannak, amelyekkel a felhasznl
  vgezheti el mindezeket, plusz sok betkszlet s belltsok szinte
  minden billentyzethez. Ugyanazokrl a helyekrl lehet beszerezni,
  mint a kernel forrst.



  6.2.  util-linux

  Rik Faith (faith@cs.unc.edu) sszelltott egy linux segdprogramokbl
  ll nagy gyjtemnyt, amit valami klns vletlen folytn ``util-
  linux''-nak hvnak. Ennek karbantartja azta Andries Brouwer (util-
  linux@math.uio.no).  Megszerezhet anonymous ftp-vel a
  sunsite.unc.edu-rl a /pub/Linux/system/misc knyvtrbl. Tartalmazza
  tbbek kztt a setterm, rdev s ctrlaltdel programokat, a kernellel
  kapcsolatosak kzl. Ahogy Rik mondja, ne rakd fel sz nlkl.  Nem
  kell mindent installlni, ami a csomagban van, s knnyen okozhat
  komoly problmkat, ha megteszed.



  6.3.  hdparm

  Mint sok csomag, ez is egy kernel folt s hozzval segdprogramok
  gyjtemnye volt valaha. A folt bekerlt a hivatalos kernelbe, a
  programokat, amelyekkel optimalizlni s btyklni lehet a
  merevlemezt, kln terjesztik.
  6.4.  gpm

  A gpm annyit tesz, mint ``general purpose mouse'' (``ltalnos cl
  egr'').  Ezzel a programmal szveget lehet msolni (``cut and
  paste'') az egyik virtulis konzolrl a msikra, s mg sok minden
  mst lehet csinlni, sokfle egrtpussal.



  7.  Nhny kelepce



  7.1.  make clean

  Ha az j kernel egy rutinszer kernelfrissts utn elkezd nagyon vad
  dolgokat mvelni, akkor knnyen lehet, hogy elfeljtetted kiadni a make
  clean parancsot az j kernel lefordtsa eltt. A tnetek vltozatosak
  lehetnek: egyszeren sszeomlik, furcsa I/O problmk jnnek el, vagy
  csak nagyon lass lesz. Ne felejtsd el a make dep-et se.



  7.2.  Nagy vagy lass kernel

  Ha a kernel sok memrit foglal el, tl nagy, s/vagy egy
  rkkvalsgig tart lefordtani akkor is, ha a vadonatj
  Quadbazillium-III/4400  gpeddel esel neki, akkor valsznleg tl sok
  flsleges dolog (eszkzmeghajtk, fjlrendszerek, stb.) van
  belekonfigurlva. Ha nem hasznlod, akkor ne is konfigurld be, mert
  foglalja a memrit. A tl nagy kernel legszembetnbb tnete a
  memria s diszk kztti tlzott swappols. Ha a merevlemez sokat
  zrg, s nem egy rgi Fujitsu  Eagles, ami kikapcsolskor olyan
  hangot ad, mint egy sugrhajts replgp leszls kzben, akkor nzd
  t a kernel konfigurlst.


  Megtudhatod, hogy mennyi memrit hasznl a kernel, ha fogod a
  gpedben lev sszes memria mennyisgt s kivonod belle a ``total
  mem'' mez rtkt a /proc/meminfo-bl, vagy a `free' outputjbl.



  7.3.  A prhuzamos port nem mkdik, nem tudok nyomtatni

  PC-n gy lehet belltani a prhuzamos portot, hogy a kernel
  konfigurlsnl kivlasztjuk a `Parallel port support'-ot s a `PC-
  style hardware'-t a `General Setup' csoportban, s a `Parallel printer
  support'-ot a `Character devices' csoportban.

  A msik dolog az elnevezs. A Linux 2.2 mskpp nevezi el a
  nyomtatkat, mit az elz verzik. A kvetkezmny az, hogy ha a rgi
  kernel alatt lp1 volt a nyomtat neve, akkor azt most lp0-nak hvjk
  az j alatt.  Add ki a `dmesg' parancsot, vagy nzd meg a logfjlokat
  a /var/log knyvtrban.



  7.4.  A kernel nem fordul le


  Ha nem fordul le, akkor valsznleg nem sikerlt egy patch, vagy a
  forrs valahogy megsrlt. Lehet, hogy nem j a gcc adott verzija,
  vagy az is lehet srlt (pldul az include fjlok lehetnek hibsak).
  Ellenrizd, hogy a szimbolikus linkek, amelyeket Linus emlt a README-
  ben jl vannak-e belltva. ltalban elmondhat, hogy ha a szabvnyos
  kernel nem fordul le, akkor valami komoly baj van a rendszerrel, s
  valsznleg jra kell installlni bizonyos programokat.


  Ritka esetekben elfordul, hogy a gcc hardver okok miatt szll el.  A
  hibazenet valami olyasmi lesz, hogy ``xxx exited with signal 11'' s
  ltalban nagyon rejtlyesen nz ki. Taln nem is emltenm, ha nem
  trtnt volna meg velem is egyszer. A cache memria hibs volt, s a
  gcc idnknt vletlenszeren elszllt. Elszr prbld meg
  jrainstalllni a gcc-t, ha ilyen gond merl fel. Csak akkor kell
  gyanakodni, ha a kernel hiba nlkl lefordul kikapcsolt kls cache,
  kevesebb RAM, stb. mellett.


  Az embereket ltalban nyugtalantja, ha felvetdik, hogy a hardverk
  hibs lehet. Nos, nem n talltam ki. Itt van hozz egy FAQ:
  http://www.bitwizard.nl/sig11/.



  7.5.  Az j kernel nem bootol


  Nem futtattad a LILO-t, vagy rosszul van konfigurlva. Egyszer az
  ``fogott'' meg, hogy hiba volt a konfig fjlban. `boot = /dev/hda' sor
  helyett `boot =/dev/hda1' volt benne. (Ez elsre nagyon idegest
  lehet, de ha mr van egy mkd konfig fjl, nem kell hozznylni.)



  7.6.  Elfelejtetted futtatni a LILO-t, vagy egyltaln nem bootol


  Hopp! A legjobb amit ilyen helyzetben tehetsz az, hogy hajlkony
  lemezrl bootolsz, s csinlsz egy msik bootolhat lemezt (ahogy a
  `make bzdisk' is csinln).  Tudnod kell, hogy hol van a root (/)
  fjlrendszer s az milyen tpus (pl. second extended, minix). Az
  albbi  pldban azt is tudni kell, hogy melyik fjlrendszeren van a
  linux forrs /usr/src/linux, annak a tpusa, s hogy rendszerint hova
  van mountolva.


  A kvetkez pldban a root a /dev/hda1, az /usr/src/linux a /dev/hda3
  eszkzn van, normlisan az /usr-re mountolva. Mindkett ext2
  fjlrendszer. A mkd kernel az /usr/src/linux/arch/i386/boot-na van,
  s a neve bzImage.


  Az alaptlet az, hogy ha van egy mkdkpes bzImage, akkor lehet azt
  hasznlni az j hajlkony lemezen. Egy msik mdszerrl, ami vagy
  jobban mkdik, vagy nem (attl fggen, hogy pontosan hogyan
  rontottad el a rendszert) a plda utn lesz sz.


  Elszr bootolj egy boot/root lemezprosrl vagy mentlemezrl, s
  mountold fl azt a fjlrendszert, ami a mkd kernelt tartalmazza.



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



  Ha az mkdir azt mondja, hogy a knyvtr mr ltezik, ne trdj vele.
  Menj be abba a knyvtrba, amelyben a mkd kernel volt. Ne feledd,
  hogy


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


  Helyezz egy formattlt lemezt az ``A:'' meghajtba (ne a boot vagy
  root lemezt!), msold a kernelt a lemezre, s konfigurld a root
  fjlrendszernek megfelelen:



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



  Menj a root knyvtrba s csatold le a normlisan /usr fjlrendszert.



      cd /
      umount /mnt



  Ezek utn a megszokott mdon lehet bootolni errl a lemezrl. Ne
  felejtsd el futtatni a LILO-t (vagy amit rosszul csinltl) az
  jrabootols utn.


  Ahogy az elbb emltettem, van egy msik lehetsg. Ha van egy mkd
  kernel a gykrknyvtrban (pldul /vmlinuz), akkor azt is lehet
  hasznlni egy bootlemezen. Feltve, hogy minden vltozatlan, /vmlinuz
  a kernel, a kvetkez vltoztatsokat kell eszkzlni a fenti pldn:
  legyen /dev/hda3 helyett /dev/hda1 (a root fjlrendszer) az
  /mnt/src/linux-ot mountold az /mnt-re, s az if=bzImage paramtert rd
  t if=vmlinuz-ra. A megjegyzst a /mnt/src/linux levezetsrl
  figyelmen kvl lehet hagyni.


  A LILO hasznlata nagy merevlemezekkel (tbb, mint 1024 cilinder)
  gondot okozhat. Lsd a LILO mini-HOWTO-t vagy a dokumentcit
  segtsgrt.



  7.7.  Azt mondja `warning: bdflush not running'


  Ez slyos problma lehet. Az 1.0 kernel verzi kibocstsa utn (1994.
  prilis 20. tjn) felfrisstettk/lecserltk az `update' nev
  programot, amely rendszeresen kirti a fjlrendszer puffereit.
  Szerezd meg a `bdflush' forrst (meg kell lennie ugyanott, ahol a
  kernel forrsnak), s installld fel. (Ezt mg a rgi kernelt futtatva
  ajnlatos megtenni.) A program `update' nven installlja magt. Az
  jrabootols utn a kernel nem fog tbbet panaszkodni.



  7.8.  Nem mkdik az IDE/ATAPI CD-ROM meghajt

  Klns mdon sokan nem tudjk hasznlni az ATAPI meghajtkat, taln
  mert tbb oka lehet a hibnak.

  Ha a CD-ROM meghajt az egyetlen eszkz egy adott IDE csatoln, akkor
  a jumpereknek ``master'' vagy ``single'' llsban kell lennik.
  Valsznleg ez a leggyakoribb hiba.

  A Creative Labs (s msok is) IDE csatolkat ptenek a hangkrtykra.
  Ebbl kvetkezik az az rdekes problma, hogy egyes gpeken csak egy
  csatol van, msokon kett beptve az alaplapra (ltalban IRQ15),
  ezrt a soundblaster csatolt a harmadik IDE portra teszik (IRQ11,
  lltlag).

  Ez problmkat okoz a linuxszal, mivel az 1.2.x kernelek nem
  tmogatjk a harmadik csatolt (az 1.3.x valamelyik tagjtl kezdve
  mr van, de az fejleszti, s nem detektlja automatikusan). Ezt
  tbbflekppen lehet kikerlni.



  Ha mr van msodik IDE port, knnyen lehet, hogy nem is hasznlod,
  vagy mg nincs rajta kt eszkz. Vedd le az ATAPI meghajtt a
  hangkrtyrl, s rakd a msodik csatolra. Ezutn ki lehet kapcsolni
  a hangkrtya csatoljt s mg egy IRQ-t is megsprolsz.

  Ha nincs msodik IDE csatol, akkor jumpereld a hangkrtya IDE
  csatoljt (ne a hangkrtya hang rszt) az IRQ15-re (msodik IDE
  csatol).  Ennek mkdnie kell.



  7.9.  Furcsa zenetek ``obsolete routing requests''-rl


  Szerezd be a route program, s minden ms tvonalvlasztst manipull
  program egy j verzijt. Az /usr/include/linux/route.h (ami valjban
  az /usr/src/linux-ban van) megvltozott.



  7.10.  A tzfal (firewall) nem mkdik az 1.2.0 kernellel



  Frissts legalbb az 1.2.1 verzira.



  7.11.  ``Not a compressed kernel Image file''

  Tmrtetlen kernel fjl. Ne a /usr/src/linux knyvtrban keletkez
  vmlinux fjlt hasznld kernelnek. Az [..]/arch/i386/boot/bzImage a
  j..



  7.12.  Problmk a konzollal 1.3.x-ra val frissts utn

  Az /etc/termcap flban a konzol termcap bejegyzsben rd t a dumb
  szt linux-ra. Lehet, hogy egy terminfo bejegyzst is kell csinlni.



  7.13.  Nem lehet semmit lefordtani kernel upgrade utn

  A linux kernel forrs tartalmaz szmos include fjlt (a .h) vg
  fjlnevek) amelyekre a szabvnyos include fjlok hivatkoznak az
  /usr/include knyvtrban. A hivatkozsok ltalban gy nznek ki (ahol
  xyzzy.h egy fjl az /usr/include/linux-ban):


      #include <linux/xyzzy.h>


  Normlis esetben van egy linux nev link az /usr/include-ban, amely a
  kernel forrs include/linux knyvtrra mutat (ltalban
  /usr/src/linux/include/linux). Ha ez a link nincs a helyn, vagy rossz
  helyre mutat, akkor a legtbb programot egyltaln nem lehet
  lefordtani. Ha letrlted a kernel forrst, mert tl sok helyet
  foglalt, akkor nyilvnval, hogy ez a gond. Lehet baj a hozzfrsi
  jogosultsgokkal is.  Ha a root umask-ja alaprtelmezs szerint nem
  engedi meg, hogy a tbbi felhasznl lssa a fjljait, s a kernel
  forrst a p (preserve filemodes = fjljogosultsgok megrzse) opci
  nlkl csomagoltad ki, akkor a  felhasznlk a C fordtt sem fogjk
  tudni hasznlni. Br a chmod paranccsal is meg lehet ezt oldani,
  knnyebb jra kicsomagolni az include fjlokat. Ezt ugyangy kell
  csinlni, ahogy az elejn kicsomagoltuk az egsz forrst, csak mg egy
  paramter kell hasznlni:



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


  Megjegyzs: A ``make config'' ltrehozza az /usr/src/linux linket, ha
  nincs meg.



  7.14.  A korltok megemelse

  A kvetkez nhny plda hasznos lehet azoknak, akik szeretnk tudni,
  hogyan lehet bizonyos, a kernel szabta korltokat megemelni.


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



  8.  A 2.0.x s 2.2.x kernelekre trtn frissts

  A 2.0.x s a 2.2.x kernelverzik elg sok vltozst hoztak a kernel
  installlsban. A forrsban tallhat Documentation/Changes fjl
  tartalmazza az ezekre a verzikra val tllshoz szksges
  tudnivalkat. Valsznleg frissteni kell tbb fontos
  programcsomagot, mint pldul a gcc, libc, s a SysVInit, s lehet,
  hogy meg kell vltoztatni nhny rendszerfjlt is. Ezekre kszlj fel.
  De semmi pnik!



  9.  Modulok

  A betlthet kernel modulok memrit takarthatnak meg s
  megknnythetik a konfigurlst.  A modulok kre egyre bvl, magban
  foglal tbbek kztt fjlrendszereket, ethernet-krtya meghajtkat,
  szalagos egysg s nyomtat meghajtkat.



  9.1.  A segdprogramok teleptse

  A modulok hasznlathoz szksges segdprogramokat ugyanonnan lehet
  megszerezni, ahonnan a kernel forrst is, modutils-x.y.z.tar.gz nven.
  Vlaszd a legnagyobb x.y.z verziszmot, ami mg kisebb-egyenl a
  kerneled verziszmnl. Csomagold ki a `tar zxvf modutils-
  x.y.z.tar.gz' paranccsal, menj be a knyvtrba, amit ltrehoz
  (modutils-x.y.z), nzd t a README fjlt s hajtsd vgre az
  installlsi utastsokat (ami ltalban elg egyszer, pldul make
  install). Ezutn kell hogy legyenek insmod, rmmod, ksyms, lsmod,
  genksyms, modprobe s depmod nev programok az /sbin knyvtrban. Ha
  akarod, kiprblhatod ket az insmod-ban tallhat ``hw''
  pldameghajtval. Ebben az alknyvtrban, az INSTALL fjlban
  olvashatak a rszletek.

  Az insmod beilleszt egy modult a fut kernelbe. A moduloknak ltalban
  .o kiterjesztsk van. A fent emltett pldban a meghajt neve
  drv_hello.o, ezt a `insmod drv_hello.o' paranccsal lehet beilleszteni.
  Az lsmod kilistzza az ppen hasznlt modulokat.  Az output gy nz
  ki:


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


  A `drv_hello' a modul neve, egy lap (``page'', 4k) memrit hasznl,
  s egyetlen msik kernel modul sem tmaszkodik r pillanatnyilag. Az
  `rmmod drv_hello' tvoltja el a modult. Figyeljk meg, hogy az rmmod
  egy modulnevet vr, nem egy fjlnevet. Az elbbit az lsmod listjbl
  lehet megtudni. A tbbi modul segdprogram is dokumentlva van a
  kziknyvoldalakon.



  9.2.  Kernellel terjesztett modulok

  A 2.0.30 verzitl kezdve majdnem minden elrhet modul formban is.
  Hasznlatuk a kvetkez: ne konfigurld bele a kernelbe, azaz ne mondj
  r `y'-t a `make config' alatt.  Fordts egy j kernelt s bootolj
  vele jra. Menj be megint az /usr/src/linux-ba s add ki a `make
  modules'  parancsot. Ez lefordtja az sszes olyan modult, amely nem
  szerepelt a kernel konfigurciban s linkeket helyez el rjuk az
  /usr/src/linux/modules knyvtrban. Lehet ket kzvetlenl innen is
  hasznlni, vagy kiadhatod a `make modules_install' parancsot, ami
  elhelyezi ket a /lib/modules/x.y.z knyvtrban, ahol x.y.z a kernel
  verzija.


  Ez klnsen a fjlrendszerek esetn lehet knyelmes. Bizonyos
  fjlrendszereket ltalban ritkn hasznlnak. Pldul ha a kezembe
  kerlne egy msdos hajlkony lemez, akkor annyit tennk, hogy insmod
  /usr/src/linux/modules/msdos.o, aztn  rmmod msdos ha vgeztem. Ez az
  eljrs kb. 50k memrit szabadt fel a szoksos mkds kzben. Egy
  megjegyzst kell tenni a minix fjlrendszerrel kapcsolatban: a
  ``mentlemeznek'' ksztett kernelbe mindig kzvetlenl bele kell
  fordtani.



  10.  Tippek s trkkk



  10.1.  A make s patch parancsok kimenetnek tirnytsa


  Ha szeretnd nyomonkvetni, hogy mit mvelnek a `make' vagy `patch'
  parancsok, tirnythatod a kimenetket egy fjlba. Elszr dertsd
  ki, milyen shellt hasznlsz: `grep root /etc/passwd' s keress valami
  olyasmit, hogy `/bin/csh'.


  Ha sh-t vagy bash-t hasznlsz, akkor a


      (command) 2>&1 | tee (output file)


  parancs fog egy msolatot kldeni a (command) parancs kimenetrl az
  `(output file)' fjlba.


  A csh vagy tcsh esetn hasznld a


      (command) |& tee (output file)


  parancsot.


  Az rc esetn (megjegyzs: nem hiszem, hogy rc-t hasznlsz):


      (command) >[2=1] | tee (output file)



  10.2.  Feltteles kernelinstallls

  A hajlkony lemezek hasznlatn kvl mg tbb mdszer van arra, hogy
  anlkl prbljuk ki az j kernelt, hogy a rgihez hozznylnnk. Sok
  ms UNIX  vltozattl eltren a LILO kpes arra, hogy brhonnan a
  merevlemezrl elindtson egy kernelt. Ha nagy (500 MB vagy nagyobb)
  merevlemezed van, olvasd el a LILO dokumentct, mert ez gondot
  okozhat. Ha az  albbiakhoz hasonlt fzl a LILO konfigurcis fjl
  vgre, akkor gy  vlaszthatsz egy frissen fordtott kernelt, hogy
  nem nylsz a rgi  /vmlinuz-hoz. (Persze elbb futtatni kell a lilo-
  t.)


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


  A legknnyebben gy lehet a LILO-t az j kernel indtsra utastani,
  hogy lenyomod a shift billentyt bootolskor, amikor csak annyi van a
  kpernyn, hogy LILO.  Megjelenik egy prompt, ekkor be lehet rni,
  hogy `uj_kernel', hogy az j kernelt indtsa.

  Ha tbb klnbz kernel forrst szeretnd megtartani a gpeden
  egyszerre, (ez nagyon sok helyet foglal, lgy vatos), akkor a
  legegyszerbb elnevezni az ket tartalmaz knyvtrakat
  /usr/src/linux-x.y.z, formban, ahol x.y.z a kernel verzija. Ekkor
  egy szimbolikus linkkel lehet vlasztani kzttk. Pldul az `ln -sf
  linux-1.2.2 /usr/src/linux' parancs az 1.2.2 verzi forrst teszi
  aktuliss. Mieltt ltrehozol egy ilyen szimbolikus linket,
  bizonyosodj meg arrl, hogy az ln utols argumentuma nem egy ltez
  valdi knyvtr (rgi szimbolikus link lehet), mivel az eredmny nem
  az lenne, amire szmtasz.



  10.3.  A kernel frisstsei

  Russell Nelson (nelson@crynwr.com) sszefoglalja az j kernelverzik
  vltozsait.  Ezek rvidek, rdemes beljk pillantani egy frissts
  eltt. Letlthet anonymous ftp-vel a

      ftp://ftp.emlist.com/pub/kchanges


  cmrl, vagy a


      http://www.crynwr.com/kchanges


  webhelyrl.



  11.  Egyb idevg HOWTO-k (HOGYAN-ok), amelyek hasznosak lehetnek



    Sound-HOWTO: hangkrtyk s segdprogramok

    SCSI-HOWTO: minden a SCSI vezrlkrl s eszkzkrl

    NET-2-HOWTO: hlzat

    PPP-HOWTO: hlzatra csatlakozs PPP-vel

    PCMCIA-HOWTO: noteszgpekhez val meghajtk

    ELF-HOWTO: ELF: mi ez egyltaln, konvertls

    Hardware-HOWTO: a tmogatott hardverek ttekintse

    Module mini-HOWTO: tovbbi informci a kernel modulokrl

    Kerneld mini-HOWTO: a kernel dmonrl

    BogoMips mini-HOWTO: ha kvncsi vagy


  12.  Egyebek



  12.1.  A szerz


  A Linux Kernel-HOGYAN angol eredetijnek szerzje s karbantartja
  Brian Ward (bri@cs.uchicago.edu). Krem, kldjetek vlemnyt,
  kiegsztseket, javtsokat. (Fleg a javtsok a legfontosabbak
  nekem).  (A fordt megjegyzse: termszetesen angolul rjatok neki,
  magyarul nem tud :-)
  Vethetsz egy pillantst a honlapomra az albbi cmek valamelyikn:


      http://www.math.psu.edu/bri/
      http://blah.math.tu-graz.ac.at/~bri/



  Br igyekszem nagyon figyelmes lenni a levelezssel, vedd figyelembe,
  hogy nagyon sokat kapok minden nap, ezrt eltarthat egy darabig, amg
  vlaszolok. Klnsen, ha krdssel keresel meg, lgy szves, prblj
  meg minl vilgosabban s rszletesebben fogalmazni.  Ha arrl rsz,
  hogy egy hardver-elem nem mkdik (vagy valami hasonl), tudnom kell,
  mi a hardver-konfigurci. Ha egy hibt jelentesz, ne csak annyit rj,
  hogy ``megprbltam ezt vagy azt, de hibt jelzett''; tudnom kell, mi
  volt a hiba.  Azt is szeretnm tudni, hogy a kernel, a gcc s a libc
  melyik verzijt hasznlod. Ha csak annyit mondasz, hogy ezt vagy azt
  a disztribcit hasznlod, az nekem nem mond sokat. Az nem baj, ha
  egyszer krdst teszel fel; ne feledd: ha nem krdezel, nem is kapsz
  vlaszt! Mindenkinek szeretnm megksznni, akitl visszajelzst
  kaptam.

  Ha a krdsednek semmi kze a kernelhez, vagy olyan nyelven van, amit
  nem rtek, akkor valsznleg nem vlaszolok.


  Ha rsz nekem s nem kapsz vlaszt elfogadhat idn bell (hrom ht
  vagy tbb), akkor lehet, hogy vletlenl letrltem a leveledet, vagy
  ilyesmi (bocs).  Krem, prbld meg jra!


  Sok levelet kapok olyasmirl, ami valjban hardver problma vagy
  tma. Ez rendben van, de ne feledd, hogy nem ismerem a vilg sszes
  hardverjt. n AMD processzorokat, Adaptec s Symbios SCSI krtykat
  s IBM SCSI merevlemezeket hasznlok.


  A 0.1 verzi 1994. oktber 3.-n kszlt. Ez a dokumentum elrhet
  SGML, PostScript, TeX, roff s sima szveges formtumban.



  12.2.  Tennivalk

  A ``Tippek s trkkk'' fejezet egy kiss rvid. Remlem ki tudom
  bvteni msok javaslatai alapjn.

  A ``Tovbbi csomagok''-ra is vonatkozik ez.

  Tbb hibakeressi s katasztrfaelhrt informci kell.



  12.3.  Hozzjrulsok

  Linus README-jnek egy kis rsze (kernel hackels) t lett vve.
  (Ksz, Linus!)


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

  quinlan@yggdrasil.com (Daniel Quinlan): sok javts s kiegszts
  tbb fejezetben


  nat@nat@nataa.fr.eu.org (Nat Makarevitch): mrproper, tar -p, s sok
  egyb dolog

  boldt@math.ucsb.edu (Axel Boldt): sszegyjttte a kernel konfigurci
  opciinak lerst a hlzaton, aztn tadta nekem a listt

  lembark@wrkhors.psyber.com (Steve Lembark): tbbszrs boot tlet

  kbriggs@earwax.pd.uwa.edu.au (Keith Briggs): nhny javts s
  javaslat

  rmcguire@freenet.columbus.oh.us (Ryan McGuire): kiegsztsek a make
  opciihoz

  dumas@excalibur.ibp.fr (Eric Dumas): francia fordts

  simazaki@ab11.yamanashi.ac.jp (Yasutada Shimazaki): japn fordts

  jjamor@lml.ls.fi.upm.es (Juan Jose Amor Iglesias): spanyol fordts

  mva@sbbs.se (Martin Wahlen): svd fordts

  jzp1218@stud.u-szeged.hu (Zoltn Vmosi): magyar fordts

  bart@mat.uni.torun.pl (Bartosz Maruszewski): lengyel fordts

  donahue@tiber.nist.gov (Michael J Donahue): sajthibk, a ``szeletelt
  kenyr verseny'' gyztese.

  rms@gnu.ai.mit.edu (Richard Stallman): ``szabad'' dokumentci
  koncepcija s a terjesztsi engedly

  dak@Pool.Informatik.RWTH-Aachen.DE (David Kastrup): NFS

  esr@snark.thyrsus.com (Eric Raymond): vegyes aprsgok


  Azok is nagy segtsgemre voltak, akik krdsekkel s problmkkal
  kapcsolatban levelet kldtek.



  12.4.  Copyright, licensz s ilyesmi

  Copyright  Brian Ward, 1994-1999.

  Hungarian translation  Vmosi Zoltn, 1997.,  Tmr Andrs 1999.


  Ez a dokumentum szabadon msolhat s terjeszthet, ha a copyright s
  az engedly szvegt minden msolaton megrzik.


  E dokumentum mdostott vltozatai a vltozatlan msolatokkal
  megegyez felttelek alapjn msolhatk s terjeszthetk, ha a
  mdostott vltozatot is az ezzel az engedllyel megegyez
  felttelekkel terjesztik. A fordtsok is a ``mdostott vltozat''
  kategrijba tartoznak.


  Garancia: Nincs.


  Ajnlsok: Az zleti cl terjeszts megengedett s tmogatott, de
  nyomatkosan ajnlott, hogy a terjeszt lpjen kapcsolatba a szerzvel
  a terjeszts eltt, a dolgok naprakszsgnek biztostsa vgett.
  (Kldhetsz egy pldnyt abbl, amit csinlsz, ha mr gyis csinlod.)
  A fordtknak is ajnlott kapcsolatba lpni a szerzvel, mieltt
  lefordtjk. A nyomtatott vltozat jobban nz ki. A paprt hasznld
  fel jra!



