<?xml version="1.0"?>
<!--
** The syntax of DOCTYPE is described in 
http://www.freebsd.cz/doc/en_US.ISO8859-1/books/fdp-primer/sgml-primer-doctype-declaration.html 
** 
<DOCTYPE	first-element-in-doc  formal-public-identifier-FPI>
** FPI is Owner//Keyword and Description//Language, -//Owner indicates 
unregisterd and +//Owner indicates registered owner. ** Keyword can be 
DTD,ELEMENT,ENTITIES or TEXT ** Description can be anything like "DocBook XML 
my version V4.2" ** Language is 2 letter like EN for english --> 
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"/usr/share/sgml/docbook/xml-dtd-4.2-1.0-19/docbookx.dtd" [ 
<!ENTITY version "0.01">
] > 
<!--
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
[ 
<!ENTITY version "0.01">
] > 
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://docbook.org/xml/4.2/docbookx.dtd" [ 
<!ENTITY version "0.01">
] > ********** *** For some reason file:/usr/share/... does not work, remove 
file: and change to '/usr/share/...' then it works 
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"/usr/share/sgml/docbook/xml-dtd-4.2-1.0-19/docbookx.dtd" [ 
<!ENTITY version "0.01">
] > 
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"file:/usr/share/sgml/docbook/xml-dtd-4.2-1.0-19/docbookx.dtd" [ 
<!ENTITY version "0.01">
] > 
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://docbook.org/xml/4.2/docbookx.dtd" [ 
<!ENTITY version "0.01">
] > 
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ 
<!ENTITY version "0.01">
] > --> 
<article lang="hu">
  <articleinfo>
    <title>Linux-rendszermag HOGYAN</title>
    <author>
      <firstname>
        Al Dev (Alavoor Vasudevan) 
      </firstname>
      <authorblurb>
        <para>
          <ulink url="mailto:       alavoor[AT]yahoo.com    ">
            alavoor[AT]yahoo.com 
          </ulink>
        </para>
      </authorblurb>
      <affiliation>
        <address format="linespecific">
          <email>
            alavoor[AT]yahoo.com 
          </email>
        </address>
      </affiliation>
    </author>
    <pubdate>
      v7.3, 2003. október 27 
    </pubdate>
    <abstract>
      <para>
        Jelen útmutató a rendszermag beállításának, fordításának, frissítésének és 
	hibaelhárításnak részletes leírása ix86-alapú rendszereken. Emellett 
	hasznos lehet más architektúrákhoz is. A dokumentum rövid és egyszerű maradt, 
	így még a nem technikai beállítottságú "otthoni felhasználók" is képesek 
	lehetnek Linux-rendszermag készítésére és futtatására. (Időközben a 
	<ulink url="http://tldp.org/">The Linux Documentation Project</ulink>
	átnézésre bevonta ezt a dokumentumot. Hamarosan átszerkesztett és frissített 
	formában jelenik meg - a lektor)
      </para>
    </abstract>
  </articleinfo>
  <sect1 id="introduction">
    <title>
      Bevezetés 
    </title>
    <para>
      A következő okokból fordíthatsz rendszermagot:
      <itemizedlist>
        <listitem>
          <para>
            Rendszermag-fejlesztést végzel 
          </para>
        </listitem>
        <listitem>
          <para>
            Új hardvert raksz a számítógépbe 
          </para>
        </listitem>
        <listitem>
          <para>
            Testre akarod szabni a rendszermagot, és nem akarod a disztribúcióval 
	    szállított, alapértelmezett verziót használni.
          </para>
        </listitem>
        <listitem>
          <para>
            
            <emphasis remap="bf">
              Védelmi szervezetek 
            </emphasis>
            vagy
            <emphasis remap="bf">
              katonai alkalmazások 
            </emphasis> 
	    esetében el kell olvasni a rendszermag forrását és saját kezűleg fordítani. 
	    Nincs kivétel! (Az Egyesült Államok Védelmi Hivatala lefordítja a rendszermagot, 
	    mielőtt szétosztja a számítógépeket).
          </para>
        </listitem>
        <listitem>
          <para>
            A világon minden ország és minden kormány helyben fordítja a rendszermagot a 
	    biztonság és sértetlenség biztosítása érdekében. Minden kormányzat illetve szervezet 
	    auditálja és ellenőrzi a rendszermag-forrás minden egyes sorát, mielőtt használná 
	    a számítógépet.
          </para>
        </listitem>
        <listitem>
          <para>
            A katonai elhárító ügynökségek világszerte tanulmányozzák és 
	    lefordítják a Linux-rendszermag forráskódját. Ők minden egyes soráról 
	    tudják, mit csinál!
          </para>
        </listitem>
        <listitem>
          <para>
            Ha saját kezűleg fordítod a rendszermagot, akkor az
            <emphasis remap="bf">
              felér a kód elolvasásával és ellenőrzésével! 
            </emphasis>
          </para>
        </listitem>
        <listitem>
          <para>
            Minden egyes egyetemnek, iskolának és kollégiumnak a gépek használata előtt 
	    le kellene fordítania az operációs rendszermagot!
          </para>
        </listitem>
        <listitem>
          <para>
            A fejlődésed és tudásod növelése céljából, és persze 
	    csak szórakozásképpen!
          </para>
        </listitem>
        <listitem>
          <para>
            A nagyon speciális tudományos alkalmazásokhoz - valószínűleg - 
	    rendszermagot kell fordítanod
          </para>
        </listitem>
        <listitem>
          <para>
            Ez egy nemzetközi törvény: "Nem használhatod a számítógépet a rendszermag 
	    saját kezű lefordítása NÉLKÜL". Ha nem engedelmeskedsz ennek a törvénynek, 
	    sokféle géphiba lehet a "büntetésed"! Önmagadnak kell lefordítani, így 
	    nem függsz másoktól, akik megcsinálnák neked.
          </para>
        </listitem>
        <listitem>
          <para>
            Illegális, törvénytelen, bűncselekmény és csalás a számítógép 
	    használata a rendszermag SAJÁT KEZŰ fordítása nélkül! 
	    1-3 havi börtön és 100-2000 USD büntetés róható ki 
	    mindazokra, akik a számítógépet a rendszermag forráskódból 
	    történő újrafordítása nélkül használják. Néhány állam/ország/kormány 
	    szigorú törvénnyel akadályozza meg a rendszermag újrafordítása 
	    nélküli számítógép-használatot. 
          </para>
        </listitem>
        <listitem>
          <para>
            Az USA-ban az összes vállalat előírja a rendszermag fordítását, 
	    mielőtt használnánk a gépet, ezért van Linux, Linux 
	    és Linux mindenhol az Egyesült Államokban!
          </para>
        </listitem>
        <listitem>
          <para>
            ...és még ezer más okból - túl sok lenne mind felsorolni! 
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <para>
      Megjegyzés: a dokumentum rövid és egyszerű maradt, így még 
      a nem technikai beállítottságú "otthoni felhasználók" is 
      képesek lehetnek a Linux-rendszermag fordítására és futtatására. 
    </para>
       <sect2 id="warnings">
       <title>
         FIGYELMEZTETÉS 
       </title>
       <para>
          A megszokott ipari gyakorlatban van egy nyomkövető/hibakereső PC, 
	  egy teszt PC és a munkára használt PC. Senki sem dolgozik egyből 
	  a munkára használt PC-n, először mindig a hibakereső, majd a teszt 
	  PC-n kísérletezünk. Erre a különböző egyéni képzettség, illetve a 
	  betanulási idő miatt van szükség. A számítógép hardvere nagyon 
	  modern technológia, akárcsak az űrsikló, a kockázatok nagyon összetettek, 
	  képes váratlanul meghibásodni. Annak ellenére, hogy törekszünk eme dokumentum 
	  frissen tartására valamint az összes parancsot ellenőrizzük, nagyon ajánlott 
	  a szakértelmedet először egy gyakorló PC-n kipróbálni, mielőtt egy "ÉLES" 
	  gépen alkalmaznád azt. Pontosítsd szakértelmed és élesítsd tudásod először 
	  egy tesztgépen futtatott Linuxon. Amikor minden működik, akkor válts át 
	  a "munkagépre", fokozott óvatossággal. Ha elrontod a tesztgépet veszélyes 
	  parancsok használatával, ezekből a hibákból is tanulni fogsz. Először nagyon 
	  beképzelten fogsz dolgozni a tesztgépen. A legtöbb vállalat régi PC-ket szerez, 
	  amiket tesztgépnek használnak. Kérünk értsd meg, nincs garancia erre 
	  a dokumentumra, viszont megteremtheted a saját garanciád azzal, hogy ellenőrzöd 
	  ezt a dokumentumot a tesztgépeden vagy az otthoni PC-n (alacsonyabb 
	  kockázati tényezők mellett). (Készítsd el a saját garanciájú dokumentumodat, 
	  és akaszd ki a falra a számítógéped közelében!!) 
       </para>
     </sect2>
     <sect2 id="hun_trans">
       <title>Magyar fordítás</title>
       <para>
         Az eredeti fordítást (v0.9) <ulink url="mailto: jzp1218@stud.u-szeged.hu_NO_SPAM">Vámosi Zoltán</ulink> készítette (1997).
         Újrafordította (v6.3) <ulink url="mailto: laca@janus.gimsz.sulinet.hu_NO_SPAM">Szíjjártó László</ulink> (2003.07.28).
         Frissítette (v7.3) és a lektorálta <ulink url="mailto:dacas@freemail.hu_NO_SPAM">Daczi László</ulink> (2003.11.21).
       </para>
    </sect2>
  </sect1>
  <sect1 id="quick_steps" >
    <title>Gyors lépések - a rendszermag fordítása</title>
    <para>
      Ennek a résznek a szerzője 
      <ulink url="mailto:alavoor[AT]yahoo.com">
        Al Dev (alavoor[AT]yahoo.com) 
      </ulink>
      (A 
      <emphasis remap="bf">
        legfrissebb verzió 
      </emphasis>
      megtalálható a 
      <ulink url="http://milkyway.has.it">
        "http://milkyway.has.it" 
      </ulink>
      és 
      <ulink url="http://www.milkywaygalaxy.freeservers.com">
        "http://www.milkywaygalaxy.freeservers.com" 
      </ulink>
      webhelyeken. Ezeken a helyeken ellenőrizheted a változásokat). A tükrözéseket megtalálod a 
      <ulink url="http://milkyway.bounceme.net">
        http://milkyway.bounceme.net 
      </ulink> 
      webhelyen. Ezek a webhelyeken sok linuxos nyalánkságot és tippet is találsz. 
    </para>
    <para>
      A rendszermag újrafordítására szükség lehet, ha kisebbé akarod tenni, 
      ez GYORSABB működésű operációs rendszert eredményez. 
      Az új eszközök támogatásához is elengedhetetlen.
    </para>
    <sect2 id="precautions">
      <title>Előkészületek</title>
      <para>
        Mielőtt lefordítanád a rendszermagot, jó ötlet a rendszer biztonsági mentése. 
	Ha még eddig nem mentetted volna el, akkor most tedd meg. 
	Kereskedelmi forgalmazású mentőprogramokat is használhatsz, mint a 
        <ulink url="http://24.221.230.253">
          BRS Backup-Recovery-Software 
        </ulink>
        (ugyanezen az oldalon nyílt forrású/szabad felhasználású mentőprogramokat is 
	találsz, a "Backup and Restore Utility" menüpont alatt felsorolva). 
	A biztonsági mentés csak egy ajánlat, nem előírás 
	annak elkészítése a Linux-rendszermag fordítása előtt. 
      </para>
    </sect2>
    <sect2 id="upgrading">
      <title>A rendszermag kisebb fejlesztése</title>
      <para>
        Ha már fordítottál rendszermagot, és fel akarod fejleszteni a következő 
	fejlesztési szintre (patch level), akkor egyszerűen másold be a 
	meglévő beállítófájlt és használd fel újra. (Például: ha a 2.4.19-es 
	rendszermagot már fordítottad, és a 2.4.20-ra akarsz fejleszteni.)
      </para>
      <para>
        <emphasis remap="bf">
          A kisebb fejlesztésekhez: 
        </emphasis>
        Ez a lépés időt spórolhat, ha fel akarod használni a régi beállításokat. 
	Amikor telepíted a rendszermagot, a konfigurációs fájlt általában a 
	/boot könyvtárba rakod. A .config fájlt ne .config.save néven mentsd el, 
	mivel a "make mrproper" ki fog törölni minden .config* fájlt! 
	Tehát használhatod a meglévő beállítófájlt:
        <programlisting format="linespecific">
	bash# mkdir /usr/src/kernelconfigs 
	bash# cp /usr/src/linux/.config  /usr/src/kernelconfigs/.config.save
	bash# cp /usr/src/linux/.config  /usr/src/linux/configs/.config.save  # Különösen biztonságos
	bash# cp /boot/config*  /usr/src/linux/configs/  # Különösen biztonságos
	bash# cp /boot/config-2.4.18-19.8.0  /usr/src/linux/.config
        </programlisting>
        Esetleg egy másik módszer - átmásolható a .config fájl a régi 
	rendszermag-forrásfából az újba. 
        <programlisting format="linespecific">
	bash# ls -l /usr/src/lin*  # You can see that /usr/src/linux is a soft link
	bash# cd /usr/src/linux 
	bash# cp ../linux-old-tree/.config .  # Például cp ../linux-2.4.19/.config .
        </programlisting>
      </para>
      <para>
        vagy még egy módszer - használható a "make oldconfig" parancs is, 
	ami alapértelmezésként felhasználja a meglévő ./.config fájlt a 
	beállítás kérdéseihez. 
      </para>
      <para>
        FIGYELEM: ha nincs elég szabad hely az /usr/src alatt, akkor bármely 
	partícióra kicsomagolható a rendszermag forrása, ahol van elég tárhely 
	(például a /home-ra). Ez azért van, mert a rendszermag fordítása sok szabad 
	helyet igényel az objektum-fájlok, mint a *.o, számára. Ezért 
	az /usr/src/linux könyvtárnak egy szimbolikus hivatkozásnak (soft link) 
	KELL lennie, ami arra a könyvtárra mutat, ahol a forrás van.
      </para>
      <para>
        Ezek után lásd a következő részt, a programfordításról és a telepítésről. 
      </para>
    </sect2>
    <sect2 id="Documentation">
      <title>Az új kiadás változásai: dokumentáció</title>
      <para>
        Ha letöltötted az új rendszermag forrását, olvasd el a következő 
	fájlokat az /usr/src/linux/Documentation könyvtárban 
        <itemizedlist>
          <listitem>
            <para>
              Changes: ebben olvashatók a minimális követelmények valamint néhány megjegyzés 
            </para>
          </listitem>
          <listitem>
            <para>
              kernel.txt: ebben van a "Linux-rendszermag magyarázata" 
            </para>
          </listitem>
          <listitem>
            <para>
              Olvasd el az összes *.txt fájlt az /usr/src/linux/Documentation könyvtárban, 
	      de legfontosabbak a kernel*.txt fájlok. 
            </para>
          </listitem>
        </itemizedlist>
      </para>
    </sect2>
    <sect2 id="impatient">
      <title>A türelmetleneknek</title>
      <para>
        <orderedlist inheritnum="ignore" continuation="restarts">
          <listitem>
            <para>
              Csomagold ki a forrást 
            </para>
          </listitem>
          <listitem>
            <para>
              cd /usr/src/linux; mkdir /usr/src/kernelconfigs ; cp 
              /usr/src/linux/.config /usr/src/kernelconfigs/.config.save; make 
              clean; make mrproper; make clean; cp 
              /usr/src/kernelconfigs/.config.save .config # Akkor, ha újra 
	      akarod használni a beállítófájlt ??
            </para>
          </listitem>
          <listitem>
            <para>
              Opcionális - másold át a konfigurációs fájlt: átmásolhatod a 
	      beállítófájlt a régi rendszermag-forrásfából az újba 
	      (időt spórolhat, ha a régi beállításokat akarod használni). 
            </para>
          </listitem>
          <listitem>
            <para>
              make xconfig # Szebb, de korlátai vannak; csak "X" alatt fut 
            </para>
          </listitem>
          <listitem>
            <para>
              make dep 
            </para>
          </listitem>
          <listitem>
            <para>
              Adj egy egyedi nevet az új rendszermagnak - szerkeszd az 
              /usr/src/linux/Makefile fájlt és az EXTRAVERSION bejegyzést 
            </para>
          </listitem>
          <listitem>
            <para>
              nohup make bzImage 
            </para>
          </listitem>
          <listitem>
            <para>
              "make modules" és "make modules_install" 
            </para>
          </listitem>
          <listitem>
            <para>
              ...és elmehetsz vacsorázni vagy le is fekhetsz (szép Linuxos álmokat!), 
	      majd amikor visszajössz a rendszer kész! Nézd meg a naplófájlt a 
	      "less nohup.out" paranccsal.
            </para>
          </listitem>
          <listitem>
            <para>
              make install # Ez "NEM ajánlott" - használd a "cp 
              /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage.myker" parancsot 
            </para>
            <para>
              Másold át a System.map fájlt a /boot könyvtárba: # cp System*.map* /boot/ 
            </para>
            <para>
              Másold át a rendszermag konfigurációs fájlt (az általad kiválasztott 
	      opciókat). Nem elengedhetetlen, de később hasznos lehet. cp .config 
              /boot/config.KERNEL_VERSION.Name 
            </para>
          </listitem>
          <listitem>
            <para>
              Állítsd be a GRUB vagy a LILO rendszerbetöltőt. 
            </para>
          </listitem>
          <listitem>
            <para>
              Indítsd újra a gépet, és ellenőrizd az új rendszermag betöltődését 
            </para>
          </listitem>
          <listitem>
            <para>
              Készíts biztonsági mentőlemezt a "bzdisk" vagy "mkbootdisk" paranccsal 
            </para>
          </listitem>
          <listitem>
            <para>
              Opcionális - make rpm # RPM csomag készítéséhez 
            </para>
          </listitem>
          <listitem>
            <para>
              Opcionális - make clean (ha tárhelyet akarsz felszabadítani) 
            </para>
          </listitem>
        </orderedlist>
      </para>
      <para>
        Lásd a fenti lépések részleteit a következő fejezetekben... 
      </para>
    </sect2>
    <sect2 id="steps">
      <title>Új rendszermag készítése - a lépések értelmezése</title>
      <para>
        <emphasis remap="bf">
          Az előző részben említett lépések részletei: 
        </emphasis>
      </para>
      <para>
        <emphasis remap="bf">
          Figyelem: 
        </emphasis>
        Az alábbiakban a "bash#" jelzi a bash készenléti jelét (prompt), 
	azokat a parancsokat kell begépelni, amiket a "bash#" jelzés után 
	következnek. A következő parancsokat RedHat Linux alatt, a 2.4.7-10 verziójú 
	rendszermaggal teszteltük, de más terjesztéseknél is (esetleg kisebb 
	eltérésekkel működnie kell. Ugyanúgy működnie kéne a régi, 2.2, 2.0 
	és 1.3 verziójú rendszermagokkal is. Szintúgy a jövőbeli vagy új 
	verziójúakkal (kis eltérésekkel - értesítsetek róla).
      </para>
      <para>
        <itemizedlist>
          <listitem>
            <para>
              <emphasis remap="bf">
                Figyelem: 
              </emphasis>
              Sok rendszermagot (kernel image) tárolhatsz a rendszereden. 
	      A következő lépéseket követve nem írod felül vagy teszed tönkre a 
	      meglévő rendszermagodat. Ezek a lépések 
	      
              <emphasis remap="bf">
                nagyon biztonságosak 
              </emphasis>
              és a jelenlegi rendszermagot nem érintik, azt nem módosítják. 
            </para>
          </listitem>
        </itemizedlist>
      </para>
      <para>
        <orderedlist inheritnum="ignore" continuation="restarts">
          <listitem>
            <para>
              <emphasis remap="bf">
                Csomagold ki a forrást: 
              </emphasis>
	      A következő lépések végrehajtása során "root" 
	      felhasználóként legyél bejelentkezve. 
	      Csatold fel a RedHat Linux CD-ROM-ot (a RedHat 9-ben Disc 2) és 
	      telepítsd a rendszermag forrás-RPM csomagját:
              <programlisting format="linespecific">
	bash$ su - root
	bash# cd /mnt/cdrom/RedHat/RPMS 
	bash# rpm -i kernel-headers*.rpm 
	bash# rpm -i kernel-source*.rpm 
	bash# rpm -i dev86*.rpm   
	bash# rpm -i bin86*.rpm   
              </programlisting>
              A bin86*.rpm és az "as86" csak a 
              <emphasis remap="bf">
                RÉGEBBI Linux 
              </emphasis>
              verziókhoz kell, mint a Redhat 5.x. Szerezd be az "as86" Intel assembler csomagot a 
              dev86*.rpm-ből a CD-ROM-ról vagy a 
              <ulink url="http://rpmfind.net/linux/RPM/mandrake/7.1/Mandrake/RPMS/bin86-0.4-12mdk.i586.html">
                bin86-mandrake 
              </ulink> honlapról
              , 
              <ulink url="http://rpmfind.net/linux/RPM/kondara/jirai/i586/bin86-0.4-8k.i586.html">
                bin86-kondara 
              </ulink>
              ). A legújabb, 9-es RedHat kernel-source.rpm csomagja tartalmazza a 
	      rendszermag fejlécfájlokat. Általában a forrás a RedHat lemezeken 
	      vagy a SRPM lemezeken található, egyébként beszerezheted a
              <ulink url="http://rpmfind.net/linux/rpm2html/search.php?query=kernel-source&amp;submit=Search+...&amp;system=&amp;arch=">
                rpmfind.net kernel-source 
              </ulink>
              (keresd a RawHide-ot a legújabb RedHat-hez) és 
              <ulink url="http://rpmfind.net/linux/rpm2html/search.php?query=kernel-headers&amp;submit=Search+...&amp;system=&amp;arch=">
                rpmfind.net kernel-headers 
              </ulink>
              honlapról. Bizonyosodj meg arról is, hogy az /usr/src/linux egy szimbolikus hivatkozás, 
	      ami a megfelelő kicsomagolt forrásra mutat.
              <programlisting format="linespecific">
	bash# cd /usr/src
	bash# ls -l    # Láthatod, hogy az /usr/src/linux egy szimbolikus hivatkozás, ami a forrásra mutat
	lrwxrwxrwx    1 root     root           19 Jan 26 11:01 linux -&gt; linux-2.4.18-19.8.0
	drwxr-xr-x   17 root     root         4096 Jan 25 21:08 linux-2.4.18-14
	drwxr-xr-x   17 root     root         4096 Mar 26 12:50 linux-2.4.18-19.8.0
	drwxr-xr-x    7 root     root         4096 Jan 14 16:32 redhat
              </programlisting>
              Ha nem szimbolikus hivatkozás, akkor nevezd át az /usr/src/linux könyvtárat 
	      /usr/src/linux-2.4.yy könyvtárra és készíts egy szimbolikus hivatkozást. 
            </para>
            <para>
              FIGYELEM: ha nincs elég szabad hely az /usr/src alatt, akkor 
	      bármelyik partícióra kicsomagolhatod a forrást, ahol van 
	      elegendő (mint a /home). Ez azért van, mert a rendszermag fordítása 
	      sok szabad helyet igényel az objektum-fájlok, mint a *.o, 
	      számára. Ezért az /usr/src/linux könyvtárnak egy szimbolikus 
	      hivatkozásnak KELL lennie, ami arra a könyvtárra mutat, ahol a 
	      forrás van.
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                Takarítás: 
              </emphasis>
              Mielőtt az "mrproper" parancsot kiadnánk, elmentheted a .config fájlt. 
              <programlisting format="linespecific">
	bash# cd /usr/src/linux 
        bash# mkdir /usr/src/kernelconfigs ;
        bash# cp /usr/src/linux/.config  /usr/src/kernelconfigs/.config.save;
	bash# cp /usr/src/linux/.config  /usr/src/linux/configs/.config.save  # Különösen biztonságos
	bash# cp /boot/config*  /usr/src/linux/configs/  # Különösen biztonságos
	bash# make clean
	bash# make mrproper  # "EL KELL VÉGEZNED ezt az mrproper-t", különben rengeteg problémával szembesülsz !!
	bash# make clean
	bash# cp /usr/src/kernelconfigs/.config.save .config  # ha újra akarod használni a beállítófájlt ??
              </programlisting>
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                Opcionális - másold át a beállítófájlt: 
              </emphasis>
              Ez a lépés időt spórolhat meg, ha fel akarod használni a régi 
	      beállításokat. Amikor telepíted a rendszermagot, akkor a beállítófájlt 
	      általában a /boot alá rakod. Van néhány alapszintű beállítófájl, 
	      az /usr/src/linux/configs/kernel-*.config, amiket felhasználhatsz. 
	      Tehát használhatod a meglévő konfigurációs fájlt:
              <programlisting format="linespecific">
        bash# mkdir /usr/src/kernelconfigs ;
        bash# cp /usr/src/linux/.config  /usr/src/kernelconfigs/.config.save;
	bash# cp /usr/src/linux/.config  /usr/src/linux/configs/.config.save  # Különösen biztonságos
	bash# cp /boot/config*  /usr/src/linux/configs/  # Különösen biztonságos
	bash# cp /boot/config-2.4.18-19.8.0  /usr/src/linux/.config
	Vagy másold át az alapértelmezett beállítófájlt az /usr/src/linux/configs könyvtárból:
	bash# cp /usr/src/linux/configs/kernel-2.4.18-i686.config  /usr/src/linux/.config
	Vagy Athlon processzorok esetében 
	bash# cp /usr/src/linux/configs/kernel-2.4.18-athlon.config  /usr/src/linux/.config
              </programlisting>
              Esetleg egy másik módszer - átmásolhatod a .config fájlt a régi 
	      rendszermag-forrásfából az újba. 
              <programlisting format="linespecific">
	bash# ls -l /usr/src/lin*  # Látható, hogy az /usr/src/linux egy szimbolikus hivatkozás
	bash# cd /usr/src/linux 
	bash# cp ../linux-old-tree/.config .  # Például cp ../linux-2.4.19/.config .
              </programlisting>
              Sőt egy másik módszer - használhatod a "make oldconfig" parancsot, 
	      ami alapértelmezésként felhasználja a meglévő ./.config fájlt 
	      a beállítás kérdéseihez.
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                Beállítás: 
              </emphasis>
              <itemizedlist>
                <listitem>
                  <para>
                    Indítsd el az X-Window rendszert a "startx" paranccsal. 
		    Ha nem tudod elindítani, lásd alább a következő lépést.
                    <programlisting format="linespecific">
	bash# man startx
	bash# startx
	bash# cd /usr/src/linux 
	bash# make xconfig  # Szebb, bár korlátozott; csak "X" alatt fut
                    </programlisting>
                    Ha hibaüzenetet kapsz, miszerint a "wish" nem található, 
		    telepítsd a tk-8.3.rpm csomagot.
                  </para>
                </listitem>
                <listitem>
                  <para>
                    Ha nem tudod elindítani az "X"-et, akkor próbáld meg a következőt: 
                    <programlisting format="linespecific">
		bash# export TERM=xterm
		bash# make menuconfig  # újabb, az ncurses/curses csomagot használja, nem működik, ha nincs telepítve
	Ha összezavarodott képernyőt kapsz, használj más terminál-emulációt, 
	mint a vt100, vt102, vt220 vagy ansi. A képernyő zavaros lesz és 
	összevissza karaktereket látsz, ha telnet-tel lépsz be egy távoli Linux
	rendszerbe. Ebben az esetben a vt100, vt220 terminál-emulátorokat használd. 
	Például:
		bash# export TERM=vt220
		bash# export TERM=ansi
	A VT alacsonyabb szintjein használd: 
		bash# export TERM=vt100
		bash# make menuconfig  # újabb, az ncurses/curses csomagot használja, nem működik, ha nincs telepítve
	Ha a "menuconfig" parancs nem működik, akkor próbáld meg:
		bash# make config   # régi, felhasználóbarát módszer !!
                    </programlisting>
                  </para>
                </listitem>
              </itemizedlist>
              A 
              <emphasis remap="bf">
                "make xconfig" vagy "make menuconfig" 
              </emphasis>
              egy felhasználóbarát GUI felületet indít el. A 
              <emphasis remap="bf">
                "make config" 
              </emphasis>
              egy parancssoros, konzolos felületet. Betöltheted a beállítófájlt az 
              <emphasis remap="it">
                /usr/src/linux/.config 
              </emphasis>
              fájlból ("pont config" fájl. Figyelj a pontra a "config" előtt). 
	      Kattints a "Load configuration from file" (Beállítások betöltése fájlból) 
	      gombra. A "make xconfig"-on belül (a problémák kivédése érdekében) a 
	      következőket kell tenned:
              <itemizedlist>
                <listitem>
                  <para>
                    <emphasis remap="bf">
                      NAGYON FONTOS !!! : 
                    </emphasis>
                    Válaszd a megfelelő CPU típust - Pentium 3, AMD K6, Cyrix, Pentium 4, 
		    Intel 386, DEC Alpha, PowerPC, egyébként a rendszermag fordítása nem 
		    sikerül, vagy ha igen, akkor nem fog elindulni!!
                  </para>
                </listitem>
                <listitem>
                  <para>
                    Válaszd az SMP támogatást - akár egy, akár több processzorod van 
                  </para>
                </listitem>
                <listitem>
                  <para>
                    Fájlrendszerek - válaszd a Windows95 VFAT, MSDOS, NTFS 
		    fájlrendszereket mint a rendszermag részeit, és ne mint betölthető 
		    modulokat. (Nekem személy szerint előnyös, de szabadon 
		    válaszd a saját rendszerednek megfelelően).
                  </para>
                </listitem>
                <listitem>
                  <para>
                    Engedélyezd a "Loadable kernel modules" (betölthető rendszermag 
		    modulok) támogatást! Ezzel az opcióval, a futó Linux rendszeren 
		    tudod az eszközmeghajtókat dinamikusan ki/be tölteni. Részletesen a 
		    <ulink url="#loadable_modules">Betölthető modulok</ulink> fejezetben 
		    olvashatsz erről. 
                  </para>
                </listitem>
              </itemizedlist>
              Ments és lépj ki a "make xconfig"-ból. Minden kiválasztott beállítási 
	      opció elmentődött az 
              <emphasis remap="it">
                /usr/src/linux/.config 
              </emphasis>
              (pont config) fájlba. 
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                Függőségek:
              </emphasis>
              Most add ki a következő parancsot: 
              <programlisting format="linespecific">
	bash# make dep
              </programlisting>
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                Adj egyedi nevet az új rendszermagodnak: 
              </emphasis>
              Nevet is adhatsz a rendszermagnak, így az egyedi lesz és 
	      nem akad össze a többivel.
              <programlisting format="linespecific">
	bash# cd /usr/src/linux
	bash# vi Makefile
              </programlisting>
              Itt keresd meg az EXTRAVERSION = -19.8.0_blabla részt és változtasd meg 
	      például így: EXTRAVERSION = -19.8.0MyKernel.26Jan2003
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                Add ki a "make" parancsot: 
              </emphasis>
              Olvasd el a következő fájlt (hogy információt gyűjts a rendszermag 
	      fordításáról/építéséről. Tipp: használd a színes
              <ulink url="http://www.tldp.org/HOWTO/Vim-HOWTO.html">
                gvim 
              </ulink>
              szövegszerkesztőt a jobb olvashatóság érdekében. 
              <programlisting format="linespecific">
	bash# gvim -R   /usr/src/linux/arch/i386/config.in 
	bash# man less 
	bash# less   /usr/src/linux/arch/i386/config.in 
	Nyomd le a "h" billentyűt a súgóért és navigálj a szövegben az i, j, k, l, h 
	vagy a nyíl-, ill. a page up/down billentyűkkel.
              </programlisting>
              Most add ki a "make" parancsot: 
              <programlisting format="linespecific">
		bash# cd /usr/src/linux
		bash# man nohup
		bash# nohup make bzImage &amp;  
		bash# man tail
		bash# tail -f nohup.out     (.... a folyamat figyeléséhez) 
	Ez a rendszermagot az /usr/src/linux/arch/i386/boot/bzImage fájlba helyezi el.
                </programlisting>
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                BETÖLTHETŐ MODULOK: 
              </emphasis>
              Most amíg a "make" végigzörög az előző rész szerint, elindíthatsz egy másik 
	      xterm-es parancsértelmezőt és kövesd a lépéseket: ez a lépés
              <emphasis remap="bf">
                CSAK AKKOR 
              </emphasis>
              szükséges, ha engedélyezted a "loadable module support"-ot a fenti 
	      "Beállítás" lépésnél. A betölthető modulok a /lib/modules alatt 
	      találhatók. EL KELL végezned ezt a lépést, ha engedélyeztél vagy 
	      letiltottál bármely modult, egyébként "unresolved symbols" hibaüzeneteket 
	      fogsz kapni a rendszermag betöltődése közben vagy azután.
              <programlisting format="linespecific">
	# indíts egy új xterm ablakot és ...
	bash# cd /usr/src/linux
	# írányítsd át a kimenetet, hogy ne írd felül a nohup.out-ot, amíg az fut...
	bash# nohup make modules 1&gt; modules.out 2&gt; modules.err  &amp;
	bash# make modules_install   # csak akkor add ki, ha a fenti "make" parancs sikeresen lefutott
              </programlisting>
              Ez bemásolja a modulokat a /lib/modules könyvtárba. 
	      Részletesen a <ulink url="#loadable_modules">Betölthető modulok</ulink> 
	      fejezetben olvashatsz erről.
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                Most menj vacsorázni vagy feküdj le: 
              </emphasis>
              Amíg mindkét "make"-ablak elzörög magában, addig elmehetsz vacsorázni 
	      (pihenj picit) vagy bújj ágyba (szép linuxos álmokat), mire felébredsz 
	      és visszajössz, a rendszer kész lesz! Ellenőrizheted a kimenet naplóját 
	      a "less nohup.out" paranccsal.
              <programlisting format="linespecific">
	bash# cd /usr/src/linux
	bash# less nohup.out
	bash# less modules.err
	bash# less modules.out
	Ha nem volt hiba:
	bash# make modules_install  
              </programlisting>
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                bzImage: 
              </emphasis>
              Miután a bzImage sikerült, másold át a rendszermagot (kernel image) 
	      a /boot könyvtárba. Át kell másolnod az új fájlt, különben az új 
	      rendszermag 
              <emphasis remap="bf">
                LEHET, HOGY NEM FOG 
              </emphasis>
              betöltődni. Ezen kívül a beállítófájlt is át kell másolnod a /boot 
	      területre, hogy tükrözze a rendszermag beállításait dokumentációs szempontból.
              <programlisting format="linespecific">
	bash# cp /usr/src/linux/arch/i386/boot/bzImage     /boot/bzImage.myker.26mar2001
	# Át KELL másolnod a beállítófájlt, hogy tükrözze a megfelelő rendszermagot
	# dokumentációs célból
	bash# cp /usr/src/linux/.config /boot/config-&lt;your_kernelversion_date&gt;
	# Példa: cp /usr/src/linux/.config /boot/config-2.4.18-19.8.0-26mar2001
              </programlisting>
              <emphasis remap="bf">
                FIGYELEM: 
              </emphasis>
              Ha az initrd használatát tervezed a LILO vagy a GRUB rendszerbetöltőben, 
	      akkor lefordíthatod és elhelyezheted azt a /boot/initrd*.img fájlban. 
	      Részletesen az 
	      <ulink url="#create_initrd">"A" függelék - initrd.img fájl készítése</ulink> 
	      fejezetben olvashatsz erről.
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                A LILO vagy a GRUB beállítása: 
              </emphasis>
              Két lehetőség van a betöltésre RedHat Linux alatt - 
	      a GRUB és a LILO. 
              <emphasis remap="bf">
                A GRUB beállítása: 
              </emphasis>
              A GRUB újabb és sokkal jobb eszköz mint a LILO, elsődlegesen 
	      ennek a használatát ajánlom. A LILO régebbi technológia. A GRUB 
	      különbözik a többi betöltőtől (mint például a LILO) abban, hogy ez 
              <emphasis remap="it">
                "képes azt hazudni a MS Windowsnak (és elhitetni vele), 
		hogy az első partícióra telepítették, akkor is ha nem így van!"
              </emphasis>
              . Így megtarthatod a jelenlegi Linux rendszeredet ott, ahol van, 
	      és telepíthetsz Windowst mellé. Részletesen a
              <ulink url="#grubconf">"C" függelék - GRUB részletesen, grub.conf mintafájl</ulink>
	       fejezetben olvashatsz erről.
              <emphasis remap="bf">
                A LILO beállítása: 
              </emphasis>
              A LILO régebbi eszköz, részletesen a 
	      <ulink url="#liloconf">"B" függelék - lilo.conf mintafájl</ulink>
              fejezetben olvashatsz róla. 
            </para>
          </listitem>
          <listitem>
            <para>
              Indítsd újra a gépet, és a lilo futásakor nyomd meg a TAB billentyűt, 
	      majd gépeld be: "myker". Ha elindul, jó munkát végeztél! Egyébként a 
	      lilo menüjében válaszd a régi rendszermagot, indítsd el és próbálj 
	      meg mindent elölről kezdeni. A régi rendszermagod még
              <emphasis remap="bf">
                mindig ÉRINTETLEN és BIZTONSÁGOS 
              </emphasis>
              , például a 
              <emphasis remap="it">
                /boot/vmlinuz-2.0.34-0.6 
              </emphasis>
            </para>
          </listitem>
          <listitem>
            <para>
              Ha az új rendszermagod betöltődik, és jól is működik, 
	      elkészítheted a indítólemezed. Tégy egy üres 
	      hajlékonylemezt a meghajtóba, majd: 
              <programlisting format="linespecific">
	bash# cd /usr/src/linux
	bash# make bzdisk
	Használható még az mkbootdisk parancs -
	bash# rpm -i mkbootdisk*.rpm
	bash# man mkbootdisk
              </programlisting>
            </para>
          </listitem>
          <listitem>
            <para>
              Opcionálisan, készíts RPM csomagot: ha több gépre is telepíteni 
	      akarod az új rendszermagot, RPM csomagot is készíthetsz belőle.
              <programlisting format="linespecific">
	make rpm   # RPM csomag építéséhez
                </programlisting>
            </para>
          </listitem>
          <listitem>
            <para>
              <emphasis remap="bf">
                Takarítás: 
              </emphasis>
              Opcionális: make clean (ha tárhelyet akarsz felszabadítani) 
            </para>
          </listitem>
        </orderedlist>
      </para>
    </sect2>
    <sect2>
      <title>Hibaelhárítás</title>
      <para>
        Problémád van? Olvasd el az 
	<ulink url="#troubleshoot">"E" függelék - a gyakori hibák elhárítása</ulink>
	fejezetet.
      </para>
    </sect2>
    <sect2 id="postkernel">
      <title>A rendszermaghoz kapcsolódó utólagos fordítások</title>
      <para>
        Olvasd el az 
	<ulink url="#post_kernel_building">"D" függelék - utólagos rendszermag fordítás</ulink>
	fejezetet. 
      </para>
    </sect2>
    <sect2 id="reportbugs">
      <title>Hová küldjem a hibajelentést?</title>
      <para>
        Ha a fenti lehetőségek mindegyikét kipróbáltad és úgy gondolod, hogy a 
	rendszermag hibás. (Ez a fejezet eredetileg az 
	<ulink url="">"E" függelék - a gyakori hibák elhárítása</ulink> fejezet végén volt, 
	tehát először az ott leírt lehetőségeket próbáljátok végig - a lektor) 
	Ebben az esetben jelentheted a hibát, így (talán)
	javítva lesz. Olvasd el az /usr/src/linux/REPORTING-BUGS fájlt, 
	majd látogass el a 
        <ulink url="http://www.kernel.org/pub/linux/docs/lkml/reporting-bugs.html">
          Reporting Bugs for the Linux Kernel 
        </ulink>
        (A Linux-rendszermag hibáinak bejelentése) honlapra. 
      </para>
    </sect2>
  </sect1>
  <sect1 id="loadable_modules">
    <title>Betölthető modulok</title>
    <para>
      Mindenki, aki használta a "betölthető modulokat", igazán "megszerette" őket! 
      Szeretem a modulokat, mivel agyafúrt dolgok, és a nagyobb feladatokat kicsi, 
      kezelhető részekre szedik szét. Ha elkezded használni, fogadok, 
      hogy megszereted őket! A modulok csak a Linuxra jellemzőek. Ez 
      volt a világ első olyan operációs rendszere, ami bemutatta a betölthető 
      modulok fogalmát. Egyetlen más operációs rendszer sem rendelkezik ezzel 
      a fogalommal, de a közeljövőben más rendszerek is megvalósíthatják.
    </para>
    <para>
      A betölthető modulok memóriát spórolhatnak, és megkönnyítik a beállítást. 
      A modulok hatóköre magában foglalja a fájlrendszereket, ethernet kártyák, 
      szalagos meghajtók, nyomtatók és mások eszközmeghajtóit.
    </para>
    <para>
      A modulok a rendszermag kódjának darabjai, amelyeket nem csatoltak 
      (foglaltak bele) közvetlenül a bele. Az ember lefordíthatja őket 
      elkülönítve is, és beillesztheti vagy eltávolíthatja a futó rendszermagból 
      majdnem bármikor. Rugalmasságából kifolyólag nem ajánlott bizonyos 
      rendszermag-jellemzőket beléjük kódolni. Sok népszerű eszközmeghajtó, 
      mint például a PCMCIA és a QIC-80/40 szalagos eszközmeghajtók, betölthető modulok.
    </para>
    <para>
      Olvasd el a Module-HOWTO (Modul HOGYAN) doksit: 
      <ulink url="http://www.tldp.org/HOWTO/Module-HOWTO">
        "http://www.tldp.org/HOWTO/Module-HOWTO" 
      </ulink>
      . 
    </para>
    <para>
      Olvasd el ezeket a kézikönyv-oldalakat is: 
      <programlisting format="linespecific">
	bash# rpm -i /mnt/cdrom/Redhat/RPMS/modutils*.rpm
	bash# man lsmod
	bash# man insmod
	bash# man rmmod
	bash# man depmod
	bash# man modprobe
      </programlisting>
      Például, ha be akarod tölteni a 
      <literal moreinfo="none" remap="tt">
        /lib/modules/2.4.2-2/kernel/drivers/block/loop.o 
      </literal>
      modult, tedd ezt: 
      <programlisting format="linespecific">
	bash# man insmod
	bash# modprobe loop
	bash# insmod loop
	bash# lsmod 
      </programlisting>
      Az insmod keresési útvonalát (PATH) az /etc/modules.conf fájlban állíthatod be. 
    </para>
    <sect2>
      <title>A modulok segédprogramjainak telepítése</title>
      <para>
        A modulok segédeszközeinek RPM csomagját így telepítheted: 
        <programlisting format="linespecific">
	bash# rpm -i /mnt/cdrom/Redhat/RPMS/modutils*.rpm
        </programlisting>
      </para>
      <para>
      Az 
        <literal moreinfo="none" remap="tt">
          insmod 
        </literal>
        beilleszti a modult a futó rendszermagba. A modulok általában a 
        <literal moreinfo="none" remap="tt">
          .o 
        </literal>
        kiterjesztéssel rendelkeznek; a példaként említett neve 
        <literal moreinfo="none" remap="tt">
          drv_hello.o 
        </literal>
        , így ennek beillesztéséhez kiadjuk az: "
        <literal moreinfo="none" remap="tt">
          insmod drv_hello.o 
        </literal>
        " parancsot. A rendszermag által jelenleg használt modulok listájához használd az 
        <literal moreinfo="none" remap="tt">
          lsmod 
        </literal>
        parancsot. A kimenet valami ilyesmi: blah# lsmod Module: #pages: Used by: 
        drv_hello 1 " 
        <literal moreinfo="none" remap="tt">
          drv_hello 
        </literal>
        " a modul neve, egy lapnyi (4k) memóriát használ, 
	és jelenleg nincs más modul, ami tőle függ. 
	Eltávolításához használd az "
        <literal moreinfo="none" remap="tt">
          rmmod drv_hello 
        </literal>
        " parancsot. Figyeld meg, hogy az 
        <literal moreinfo="none" remap="tt">
          rmmod 
        </literal>
        egy 
        <emphasis remap="it">
          modulnevet, 
        </emphasis>
        nem pedig egy fájlnevet igényel; ezt kinyerheted az 
        <literal moreinfo="none" remap="tt">
          lsmod 
        </literal>
        listájából. A többi modul-segédeszköz céljait a 
	kézikönyv-oldalaik írják le.
      </para>
    </sect2>
    <sect2>
      <title>A rendszermaggal szállított modulok</title>
      <para>
        A 2.0.30-as verziótól kezdve, majdnem minden elérhető betölthető modul 
	formájában. A használatukhoz először bizonyosodj meg, hogy nem állítod 
	be őket a rendes rendszermagban; tehát nem válaszolsz 
        <literal moreinfo="none" remap="tt">
          y 
        </literal>
        -el ezekre a "
        <literal moreinfo="none" remap="tt">
          make config 
        </literal>
        " alatt. Fordíts egy új rendszermagot és indítsd el. Aztán: 
        <literal moreinfo="none" remap="tt">
          cd 
        </literal>
        az 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux 
        </literal>
        könyvtárba ismét, és: "
        <literal moreinfo="none" remap="tt">
          make modules 
        </literal>
        ". Ez lefordítja az összes modult, amit nem adtál meg a rendszermag konfigurációjában, 
	és hivatkozást (link) készít hozzájuk az 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux/modules 
        </literal>
         könyvtárba. Használhatod őket egyenesen abból a könyvtárból vagy hajtsd végre a " 
        <literal moreinfo="none" remap="tt">
          make modules_install 
        </literal>
        " parancsot, ami telepíti őket a 
        <literal moreinfo="none" remap="tt">
          /lib/modules/x.y.z 
        </literal>
        könyvtárba, ahol 
        <literal moreinfo="none" remap="tt">
          x.y.z 
        </literal>
        a rendszermag verziója. 
      </para>
      <para>
        Ez főleg a fájlrendszereknél lehet kényelmes. Valószínűleg nem használod 
	gyakran a minix vagy a msdos fájlrendszert. Például, ha belebotlok egy 
	msdos (iszonyat!) hajlékonylemezbe, csak beírom:
        <literal moreinfo="none" remap="tt">
          insmod /usr/src/linux/modules/msdos.o 
        </literal>
        , és aztán 
        <literal moreinfo="none" remap="tt">
          rmmod msdos 
        </literal>
        , amikor végeztem. Ez az eljárás körülbelül 50k RAM-ot spórol a 
	rendszermagban a normál működés során. Egy kis megjegyzés kívánkozik 
	ide a minix fájlrendszer kapcsán:
        <emphasis remap="it">
          mindig 
        </emphasis>
        közvetlenül a rendszermagba állítsd be, ha "mentőlemezen" akarod használni.
      </para>
    </sect2>
    <sect2>
      <title>Hogyan telepítsek csak egyetlen modult?</title>
      <para>
        Tegyük fel, hogy már megcsináltad a "make modules" és "make modules_install" 
	lépéseket. Később pedig még a "make clean"-t is a helyfelszabadítás érdekében. 
	Most pedig változtatni akarsz valamelyik modul egyetlen C fájlján, és újra 
	akarod építeni azt az egy modult, és a modulfájlt bemásolni a /lib/modules 
	alá. Hogyan csinálod? Hiszen nem akarsz egy "make modules" parancsot kiadni, 
	az mindent újraépít és 2-3 óráig tart!
      </para>
      <para>
        Le tudsz fordítani egyetlen modulfájlt (mondjuk a foo.o-t) és telepítheted 
	is. Ehhez egyszerűen szerkeszd meg a Makefile-t, és változtasd meg a SUBDIRS 
	bejegyzést csakis azokra a könyvtárakra, amik érdekelnek.
      </para>
      <para>
        Egy jó példa: azt vettem észre, hogy a rendszermagom nem támogatja az 
	NTFS fájlrendszert (persze kiadtam a "make clean"-t a "make modules" után. 
	A francba!). Így elhatároztam, hogy lefordítom az NTFS betölthető modulját. 
	Nem akartam az egész készletet (mivel ez nálam 2 óráig tartana), ezért az 
	alábbi módszert követtem, és csak a fs/ntfs modult fordítottam, majd kiadtam 
	az "insmod ntfs" parancsot. Az egész 5 percig tartott!
      </para>
      <para>
        Másik példa: ha csak az fs/autofs modul érdekel, akkor a következőket 
	teszem:
        <programlisting format="linespecific">
	cd /usr/src/linux
	mv Makefile Makefile.original
	cp Makefile.original Makefile.my
	ln -s Makefile.my Makefile   # mivel néhány fájlnak még szüksége lehet a "Makefile"-ra
	vi Makefile.my
	# Megjegyzésekkel láttam el a "SUBDIRS" sorokat, és hozzáadtam azokat a könyvtárakat, amik érdekeltek
	# például a fs/autofs-hez:
		#SUBDIRS	=kernel drivers mm fs net ipc lib abi crypto
		SUBDIRS		=fs/autofs
	# Elmentettem a Makefile.my fájlt és kiadtam a következő parancsot:
	make -f Makefile.my modules
	# Ez megcsinálja az autofs.o modult
	# Most bemásoltam a modul objektumfájlt a célkönyvtárba: /lib/modules
	# VESZÉLYES: NE CSINÁLD EZT: "make -f Makefile.my modules_install" , mivel kitakaríthatja
	# a többi jót is a /lib/modules könyvtárból !! Csak másold be, így:
	cp autofs.o /lib/modules/2.4.18-19.8.0/kernel/fs/autofs
	  
	# Most állítsunk vissza mindent a normál helyzetbe
	rm Makefile  # This is a link to Makefile.my
	ln -s Makefile.original Makefile
	  
	# Rögzítsd a változtatásokat a beállítófájlban a későbbi használat érdekében
	# Szerkeszd az /usr/src/linux/.config fájlt és állítsd be modulként a szolgáltatást
	cd /usr/src/linux
        mkdir /usr/src/kernelconfigs ;
        cp /usr/src/linux/.config  /usr/src/kernelconfigs/.config.save;
	cp /usr/src/linux/.config  /usr/src/linux/configs/.config.save  # Különösen biztonságos
	cp /boot/config*  /usr/src/linux/configs/  # Különösen biztonságos
	vi /usr/src/linux/.config 
	# és változtasd meg a beállító paramétert. Például az én esetemben
	# az ntfs modulnál CONFIG_NTFS_FS=m jelzi, hogy ez modul.
        </programlisting>
      </para>
      <para>
        Többet is megtudhatsz a Makefile-ról és a make-ről, ha elolvasod a GNU 
	make kézikönyv oldat: 
        <itemizedlist>
          <listitem>
            <para>
              <ulink url="http://www.gnu.org/manual/make">
                "http://www.gnu.org/manual/make" 
              </ulink>
              . 
            </para>
          </listitem>
          <listitem>
            <para>
              University of Utah Makefile 
              <ulink url="http://www.math.utah.edu/docs/info/make-stds_toc.html">
                "http://www.math.utah.edu/docs/info/make-stds_toc.html" 
              </ulink>
            </para>
          </listitem>
          <listitem>
            <para>
              University of Hawaii Makefile 
              <ulink url="http://www.eng.hawaii.edu/Tutor/Make">
                "http://www.eng.hawaii.edu/Tutor/Make" 
              </ulink>
            </para>
          </listitem>
          <listitem>
            <para>
              A Linuxban - man make 
            </para>
          </listitem>
          <listitem>
            <para>
              A Linuxban - info make 
            </para>
          </listitem>
        </itemizedlist>
      </para>
      <para>
        Ismerkedj meg a modulokat elkészítő Makefile-al. 
	A fájlnak van egy "module" sora, mint:
        <programlisting format="linespecific">
	modules: $(patsubst %, _mod_%, $(SUBDIRS))
        </programlisting>
      </para>
      <para>
        A patsubst függvény szintaktikája  $(patsubst minta,helyettesítés,szöveg). 
	A százalékjelet ([percnt]) ugyanúgy használja, mint a mintaillesztő szabályok - 
	mint egy sztringet, ami illeszkedik a mintában és a helyettesítő szövegben 
	is. Végigkeresi a "szöveg"-et elválasztójellel tagolt szavakért, 
	amik illeszkednek a "mintá"-ra és kicseréli az előfordulásaikat a 
	"helyettesítés"-re.
      </para>
      <para>
        Ez a Makefile ugyanúgy tartalmaz szabványos shell-függvényeket, 
	mint szabványos make függvényeket. A shell-függvények szintaktikája 
	$(shell parancs). Ez a függvény kimenetét adja vissza (az új sorok kihúzásával). 
      </para>
    </sect2>
  </sect1>
  <sect1 id="cloning">
    <title>A rendszermag "klónozása"</title>
    <para>
      Lehet, hogy készíteni akarsz egy rendszermagot egy adott rendszeren, 
      majd ezt sok hasonló PC-re is akarod nagyüzemben telepíteni. 
      Az újonnan készített rendszermagnak a gépeik százaira való 
      egyszerűbb telepítése érdekében RPM (RedHat) vagy DEB (Debian) 
      csomag formájában akarod azt elkészíteni, vagy egyszerűen csak 
      tar.gz fájl formájában.
    </para>
    <para>
      <orderedlist inheritnum="ignore" continuation="restarts">
        <listitem>
          <para>
            RPM csomagot készíthetsz a rendszermagból az rpmbuild -ba kernel*.spec paranccsal
          </para>
        </listitem>
        <listitem>
          <para>
            Ellenőrizd, hogy az elkészült kernel*.rpm minden, a 
	    /lib/modules/2.x.x-y könyvtárban lévő fájlt tartalmaz. 
	    Egyébiránt össze kell csomagolnod a tar és gzip segítségével 
	    ezt a könyvtárat, és átvinni a célgépekre.
          </para>
        </listitem>
        <listitem>
          <para>
            Ellenőrizd, hogy a rendszermag-csomag tartalmazza a 
	    /boot/initrd-2.x.x-y.img fájlt, különben össze kell 
	    csomagolnod a tar és gzip segítségével, és átvinni a célgépekre.
          </para>
        </listitem>
        <listitem>
          <para>
            Ezen felül a /boot könyvtár más fájljait is, amik nincsenek a kernel*.rpm csomagban.
          </para>
        </listitem>
      </orderedlist>
    </para>
  </sect1>
  <sect1 id="important_questions">
    <title>Fontos kérdések és válaszok</title>
    <sect2>
      <title>Egyébként mit is csinál a rendszermag?</title>
      <para>
        A Unix rendszermagja közvetítőként viselkedik a programok és a 
	hardver között. Először is, elvégzi (vagy elrendezi) a memóriakezelést 
	az összes futó program (folyamat) számára, és biztosítja, hogy mindegyik 
	igazságosan (vagy éppen nem annyira igazságosan, ha engeded) osztozzon a 
	processzor ciklusain. Ezen felül egy szép, meglehetősen hordozható felületet 
	biztosít a programok felé, hogy "beszélgethessenek" a hardverrel.
      </para>
      <para>
        Biztosan van még több minden is, amit el lehet mondani a működéséről, 
	de ezek az alapvető funkciók a legfontosabbak amikről tudni kell.
      </para>
    </sect2>
    <sect2>
      <title>Miért kéne frissítenem a rendszermagomat?</title>
      <para>
        Az újabb rendszermagok általában több fajta hardver kezelését teszik 
	lehetővé (vagyis több eszközvezérlőjük van), jobb folyamatvezérlésük 
	lehet, gyorsabbak és stabilabbak lehetnek, mint a régi verziók és 
	azok buta kis hibáit kijavíthatják. A legtöbben azért frissítenek, 
	mert új eszközvezérlőket és hibajavításokat akarnak.
      </para>
    </sect2>
    <sect2>
      <title>Milyen hardvert támogatnak az új verziójú rendszermagok?</title>
      <para>
        Olvasd el a 
        <ulink url="http://www.tldp.org/HOWTO/Hardware-HOWTO">
          Hardware-HOWTO 
        </ulink>
        (Hardver HOGYAN) dokumentumban. Ezen kívül megnézheted a " 
        <literal moreinfo="none" remap="tt">
          config.in 
        </literal>
        " fájlt a Linux forráskódjában, vagy egyszerűen keresd ki a "
        <literal moreinfo="none" remap="tt">
          make config 
        </literal>
        " kiadásával. Ez megmutatja az összes, standard rendszermag által 
	támogatott hardvert, de nem az összeset, amit a Linux támogat; 
	sok elterjedt eszközvezérlőt (mint a PCMCIA vezérlők és néhány 
	szalagos meghajtó) betölthető modulként tartanak karban és külön 
	terjesztenek.
      </para>
    </sect2>
    <sect2>
      <title>Milyen verziójú gcc és libc kell?</title>
      <para>
        Linus ajánl egy adott verziójú gcc-t a
        <literal moreinfo="none" remap="tt">
          README 
        </literal>
        fájlban, ami a Linux forráskód része. Ha nincs meg ez a verzió, 
	az ajánlott verziójú gcc dokumentációja jelzi, ha frissíteni 
	kell a libc programkönyvtárat. Ez nem bonyolult eljárás, 
	de fontos az útmutatások követése. 
      </para>
    </sect2>
    <sect2>
      <title>Mi az a betölthető modul?</title>
      <para>
        Részletesen a <ulink url="#loadable_modules">Betölthető modulok</ulink> 
	fejezetben olvashatsz erről.
      </para>
    </sect2>
    <sect2>
      <title>Mennyi lemezterületre van szükségem?</title>
      <para>
        Ez függ az egyéni rendszer-beállításaidtól. Először is, a tömörített 
	Linux forrás közel 14 MB méretű, legalábbis a 2.2.9 verzió. Sok helyen 
	megtartják ezt is, miután kicsomagolták. Kicsomagolva és egy nem túl 
	bonyolult beállítással, még további 67 MB-ot foglal.
      </para>
    </sect2>
    <sect2>
      <title>Mennyi időt vesz igénybe?</title>
      <para>
        Az újabb gépekkel a fordítás drámaian kevesebb időt igényel, 
	mint a régieken; egy AMD K6-2/300 egy gyors merevlemezzel a 
	2.2.x rendszermagot elkészíti körülbelül 4 perc alatt. Viszont 
	az öreg Pentiumokkal, 486-osokkal és 386-osokkal, ha úgy tervezed, 
	hogy nekiállsz fordítani, várhatsz akár órákat, napokat...
      </para>
      <para>
        Ha ez zavar téged, és éppen van egy gyorsabb gép a közelben, amin 
	fordíthatsz, akkor lefordíthatod azon (feltéve, hogy jó adatokat 
	adsz meg, a segédprogramjaid naprakészek stb.), majd átviheted 
	a rendszermagot a lassabb gépre.
      </para>
    </sect2>
  </sect1>
  <sect1 id="patching_the_kernel">
    <title>A rendszermag foltozása (patching)</title>
    <sect2>
      <title>Egy folt alkalmazása</title>
      <para>
        A rendszermag lépésenkénti fejlesztésének eszköze a foltozás. 
	Például, ha v1.1.45-ös Linuxod van, és észreveszed, hogy létezik egy "
        <literal moreinfo="none" remap="tt">
          patch46.gz 
        </literal>
        " fájl ehhez, ez azt jelenti, hogy frissítheted az 1.1.46 verzióra a 
	folt alkalmazásával. Először biztonsági másolatot ajánlott készíteni a 
	forrásfáról ("
        <literal moreinfo="none" remap="tt">
          make clean 
        </literal>
        
	" majd ezután " 
        <literal moreinfo="none" remap="tt">
          cd /usr/src; tar zcvf old-tree.tar.gz linux 
        </literal>
        ", ami egy tömörített tar archívumot készít).
      </para>
      <para>
        Tehát folytatva a fenti példát, tegyük fel, hogy van egy "
        <literal moreinfo="none" remap="tt">
          patch46.gz 
        </literal>
        " fájl az 
        <literal moreinfo="none" remap="tt">
          /usr/src 
        </literal>
        könyvtárban. Lépj be 
        <literal moreinfo="none" remap="tt">
          cd 
        </literal>
        az 
        <literal moreinfo="none" remap="tt">
          /usr/src 
        </literal>
        könyvtárba és add ki a " 
        <literal moreinfo="none" remap="tt">
          zcat patch46.gz [verbar] patch -p0 
        </literal>
        " (vagy " 
        <literal moreinfo="none" remap="tt">
          patch -p0 [lt ] patch46 
        </literal>
        " parancsot , ha a folt nincs tömörítve). Látni fogod, ahogy a feliratok 
	elzúgnak (vagy elcsattognak, ha lassabb géped van), jelezve, hogy 
	megpróbálják a kóddarabokat beilleszteni, és hogy ez sikerült-e vagy sem. 
	Általában ez a folyamat túl gyors ahhoz, hogy elolvashasd és nem lehetsz 
	biztos benne, hogy működött-e, ezért használd a 
        <literal moreinfo="none" remap="tt">
          -s 
        </literal>
        kapcsolót a 
        <literal moreinfo="none" remap="tt">
          patch 
        </literal>
        programhoz, ami azt jelzi a 
        <literal moreinfo="none" remap="tt">
          patch 
        </literal>
        programnak, hogy csak a hibaüzeneteket írja ki (nem fogsz sokat kapni a "hé, 
	a komputerem éppen valami változtatást csinál!" érzésből, de lehet, hogy épp 
	ezt értékeled...) Azon dolgok megtekintéséért, amik nem mentek simán, 
	lépj be az 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux 
        </literal>
        könyvtárba és keress 
        <literal moreinfo="none" remap="tt">
          .rej 
        </literal>
        kiterjesztésű fájlokat. A 
        <literal moreinfo="none" remap="tt">
          patch 
        </literal>
        régebbi verziói (azok a verziók, amiket alsóbbrendű fájlrendszeren fordítottak) 
	a visszadobott dolgokat 
        <literal moreinfo="none" remap="tt">
          # 
        </literal>
        kiterjesztéssel látják el. Használhatod a "
        <literal moreinfo="none" remap="tt">
          find 
        </literal>
        " parancsot, hogy keressen helyetted; a "find . -name '*.rej' -print" 
	kiírja a standard kimenetre az összes  
        <literal moreinfo="none" remap="tt">
          .rej 
        </literal>
         kiterjesztésű fájlt, ami az aktuális könyvtárban és alkönyvtáraiban van.
      </para>
      <para>
        Ha minden rendben zajlott, adj ki egy "
        <literal moreinfo="none" remap="tt">
          make clean 
        </literal>
        ", " 
        <literal moreinfo="none" remap="tt">
          config 
        </literal>
        ", and " 
        <literal moreinfo="none" remap="tt">
          dep 
        </literal>
        " parancssorozatot, a 3. és 4. részben leírtak szerint. 
      </para>
      <para>
        Elég kevés kapcsolója van a 
        <literal moreinfo="none" remap="tt">
          patch 
        </literal>
        parancsnak. Ahogy fentebb említettem, a
        <literal moreinfo="none" remap="tt">
          patch -s 
        </literal>
        minden üzenetet elnyom, kivéve a hibaüzeneteket. Ha valahol másutt tartod a 
	rendszermag forrását, nem az 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux 
        </literal>
        könyvtárban, a 
        <literal moreinfo="none" remap="tt">
          patch -p1 
        </literal>
        (abban a könyvtárban) rendben megfoltozza a dolgokat. Egyéb 
        <literal moreinfo="none" remap="tt">
          patch 
        </literal>
        kapcsolókat a jól dokumentált kézikönyv oldalakban keress.
      </para>
    </sect2>
    <sect2>
      <title>Ha valami nem sikerül</title>
      <para>
        (Figyelem: ez a rész leginkább a meglehetősen régi rendszermagokra vonatkozik)
      </para>
      <para>
        A leggyakrabban előforduló probléma az volt, amikor egy folt módosította a "
        <literal moreinfo="none" remap="tt">
          config.in 
        </literal>
        " fájlt és az nem jól nézett ki, mivel megváltoztattad a beállításokat, 
	hogy megfeleljenek a gépednek. Ezt már javították, de még 
	belefuthatsz, ha régi rendszermagot fordítasz. A kijavításához nézd meg a 
        <literal moreinfo="none" remap="tt">
          config.in.rej 
        </literal>
        fájlt, hogy mi maradt az eredeti foltból. 
	A változásokat általában "
        <literal moreinfo="none" remap="tt">
          + 
        </literal>
        " és " 
        <literal moreinfo="none" remap="tt">
          - 
        </literal>
        " karakterek jelzik a sorok elején. Nézd meg a szomszédos sorokat, 
	és jegyezd meg, hogy "
        <literal moreinfo="none" remap="tt">
          y 
        </literal>
        "-al vagy " 
        <literal moreinfo="none" remap="tt">
          n 
        </literal>
        " betűvel vannak jelölve. Most szerkeszd a 
        <literal moreinfo="none" remap="tt">
          config.in 
        </literal>
        fájlt, és változtasd meg az " 
        <literal moreinfo="none" remap="tt">
          y 
        </literal>
        "-t " 
        <literal moreinfo="none" remap="tt">
          n 
        </literal>
        "-re és az " 
        <literal moreinfo="none" remap="tt">
          n 
        </literal>
        "-et " 
        <literal moreinfo="none" remap="tt">
          y 
        </literal>
        "-ra, amikor szükséges. Adj ki egy "patch -p0 &lt; config.in.rej" 
	parancsot és ha azt jelzi, hogy sikerült, akkor folytathatod a 
	beállítást és fordítást. A 
        <literal moreinfo="none" remap="tt">
          config.in.rej 
        </literal>
        fájl ottmarad, de törölhető.
      </para>
      <para>
        Ha további problémákba ütközöl, akkor használaton kívüli foltot telepítettél. 
	Ha azt mondja, hogy "
        <literal moreinfo="none" remap="tt">
          previously applied patch detected: Assume -R? 
        </literal>
        " (előzőleg már alkalmazott foltot észleltem), akkor valószínűleg olyan 
	foltot próbáltál alkalmazni, ami a jelenlegi verziószám alatti; ha "
        <literal moreinfo="none" remap="tt">
          y 
        </literal>
        "-t válaszolsz, megpróbálja visszaállítani a forrásodat, és nagy 
	valószínűséggel ez nem sikerül; ezért egy teljesen új forrásfára 
	van szükséged (ami nem is olyan rossz ötlet első nekifutásra).
      </para>
      <para>
        A folt visszavonásához használd a "
        <literal moreinfo="none" remap="tt">
          patch -R 
        </literal>
        " parancsot az eredeti folton.
      </para>
      <para>
        A legjobb dolog, ha a foltozás tényleg rossz irányba megy, 
	hogy újrakezdesz mindent egy tiszta, még nem használt forrásfával 
	(például az egyik
        <literal moreinfo="none" remap="tt">
          linux-x.y.z.tar.gz 
        </literal>
        fájllal). 
      </para>
    </sect2>
    <sect2>
      <title>A .orig fájloktól történő megszabadulás</title>
      <para>
        Már néhány foltozás után a 
        <literal moreinfo="none" remap="tt">
          .orig 
        </literal>
        fájlok elkezdenek szaporodni. Például, egy 1.1.51-es fámat valamikor 
	még az 1.1.48 tájékán takarítottam ki. A .orig fájlok törlésével majdnem 
	fél MB hely szabadult fel. A "find . -name '*.orig' -exec rm -f {} ';' " 
	parancs gondoskodik erről. A 
        <literal moreinfo="none" remap="tt">
          patch 
        </literal>
        azon verziói, amik a 
        <literal moreinfo="none" remap="tt">
          # 
        </literal>
        karaktert használják a visszautasítások fájlneveiben, a tilde (~) 
	karakterrel jelzik a 
        <literal moreinfo="none" remap="tt">
          .orig 
        </literal>
        fájlokat. 
      </para>
      <para>
        Vannak jobb módszerek is a 
        <literal moreinfo="none" remap="tt">
          .orig 
        </literal>
        fájloktól történő megszabadulásra, amik függnek a GNU
        <literal moreinfo="none" remap="tt">
          xargs 
        </literal>
	parancstól: "find . -name '*.orig' | xargs rm"  vagy az 
	"elég biztonságos de kicsit bőbeszédűbb" módszer: 
         find . -name '*.orig' -print0 | xargs --null rm --
      </para>
    </sect2>
    <sect2>
      <title>Egyéb foltok</title>
      <para>
        A Linus által terjesztett foltokon kívül léteznek mások is (én "nem 
	szabványos" foltoknak hívom őket). Ha ezeket használod, a Linus-félék 
	lehet, hogy nem működnek megfelelően. Elképzelhető, hogy vissza kell őket 
	vonnod, kijavítani a forrást vagy a foltot magát, telepíteni egy 
	új forrásfát vagy ezek kombinációját kell tenned. Ez nagyon bosszantó lehet, ezért 
	ha nem akarod módosítani a forrást (egy nagyon rossz végeredmény lehetőségét 
	vállalva), forgasd vissza a nem szabványos foltokat, mielőtt a Linus-féléket 
	alkalmazod, vagy telepíts egy új forrásfát. Ezután láthatod, hogy a nem 
	szabványos foltok működnek-e még. Ha nem, akkor vagy maradsz a régi 
	rendszermagnál, játszhatsz a folttal vagy a forrással, hogy működjön, 
	vagy vársz (esetleg rimánkodsz érte) a folt új verziójáig.
      </para>
      <para>
        Milyen gyakoriak azok a foltok, amik nincsenek a szabvány rendszermagban? 
	Valószínűleg hallottál róluk. Valamikor használtam a "noblink" foltot 
	a virtuális konzoljaimhoz, mert utálom a villogó kurzort. (Ezt a foltot 
	(legalábbis régen) gyakran frissítették az új verziókhoz). Azonban mióta 
	a legtöbb új eszközmeghajtót modulként fejlesztik, a "nem szabványos" 
	foltok kibocsátási üteme jelentősen csökken.
      </para>
    </sect2>
  </sect1>
  <sect1 id="tips_and_tricks">
    <title>Tippek és trükkök</title>
    <sect2>
      <title>
        A make vagy a patch parancs kimenetének átirányítása 
      </title>
      <para>
        Ha látni szeretnéd a naplókat, amiket a " 
        <literal moreinfo="none" remap="tt">
          make 
        </literal>
        " vagy a " 
        <literal moreinfo="none" remap="tt">
          patch 
        </literal>
        " parancsok csinálnak, akkor átirányíthatod a kimenetüket egy fájlba. 
	Először nézd meg, milyen shellt használsz: " 
        <literal moreinfo="none" remap="tt">
          grep root /etc/passwd 
        </literal>
        " és keress valami ehhez hasonlót: " 
        <literal moreinfo="none" remap="tt">
          /bin/csh 
        </literal>
        ". 
      </para>
      <para>
        Ha sh-t vagy bash-t használsz, a (parancs) 2&gt;&amp;1 | tee (kimeneti fájl) 
	utasítássor készít egy másolatot a 
        <literal moreinfo="none" remap="tt">
          (parancs) 
        </literal>
        kimenetéről a " 
        <literal moreinfo="none" remap="tt">
          (kimeneti fájl) 
        </literal>
        "-ba. 
      </para>
      <para>
        A csh vagy tcsh esetén használd a (parancs) |&amp; tee (kimenti fájl) formát. 
      </para>
      <para>
        Az rc esetén (megjegyzés: valószínűleg nem ezt használod) : (parancs) &gt;[2=1] | 
        tee (kimeneti fájl) 
      </para>
    </sect2>
    <sect2>
      <title>
        Feltételes rendszermag-telepítés 
      </title>
      <para>
        A hajlékonylemezre történő telepítésen kívül még egyéb módszerek is léteznek 
	az új rendszermag kipróbálására anélkül, hogy a régit bántatnánk. Sok egyéb 
	Unix változatól eltérően, a LILO képes a rendszermagot a lemez bármely részéről 
	betölteni (ha nagy méretű (500 MB vagy nagyobb) lemezed van, kérlek olvasd el a 
	LILO dokumentációját, hogy ez mennyiben okozhat problémát). Ezért, ha az 
	"image = /usr/src/linux/arch/i386/boot/bzImage label = new_kernel" sorokat 
	berakod a LILO beállítófájljának végére, akkor választhatod az újonnan 
	fordított rendszermagot is anélkül, hogy a régi 
        <literal moreinfo="none" remap="tt">
          /vmlinuz 
        </literal>
        -hoz hozzányúlnál (természetesen miután futtatod a 
        <literal moreinfo="none" remap="tt">
          lilo 
        </literal>
        parancsot). A legkönnyebben a betöltés közben a SHIFT lenyomásával 
	lehet jelezni a LILO-nak, hogy az új rendszermagot töltse be (amikor azt látod 
	a képernyőn, hogy 
        <literal moreinfo="none" remap="tt">
          LILO 
        </literal>
        , és semmi mást), ami ad egy készenléti jelet. Ennél a pontnál beírhatod: " 
        <literal moreinfo="none" remap="tt">
          new_kernel 
        </literal>
        " az új rendszermag indításához. 
      </para>
      <para>
        Ha több különböző rendszermag-forrásfát akarsz tárolni egyszerre a gépen 
	(ez azonban 
        <emphasis remap="it">
          rengeteg 
        </emphasis>
        lemezterületet fogyaszthat; légy óvatos), a legtöbbször az 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux-x.y.z 
        </literal>
        könyvtárba kerülnek, ahol az 
        <literal moreinfo="none" remap="tt">
          x.y.z 
        </literal>
        a rendszermag verziója. Ezután "kiválaszthatsz" egy forrásfát egy szimbolikus 
	hivatkozás segítségével; például "
        <literal moreinfo="none" remap="tt">
          ln -sf linux-1.2.2 /usr/src/linux 
        </literal>
        ", ez az 1.2.2-t teszi aktuálissá. Mielőtt egy hasonló szimbolikus hivatkozást 
	készítenél, bizonyosodj meg arról, hogy az 
        <literal moreinfo="none" remap="tt">
          ln 
        </literal>
        utolsó paramétere nem egy létező könyvtár (régebbi szimbolikus hivatkozás 
	elfogadható); különben az eredmény nem az lesz, amit várnál. 
      </para>
    </sect2>
    <sect2>
      <title>
        Rendszermag frissítések 
      </title>
      <para>
        Russell Nelson ( 
        <literal moreinfo="none" remap="tt">
          nelson@crynwr.com 
        </literal>
        ) foglalja össze az új rendszermag kiadásoknál a változásokat. 
	Ezek rövidek, és fejlesztés előtt átnézheted őket. Hozzáférhetők 
	anonymous FTP-vel az 
        <ulink url="ftp://ftp.emlist.com">
          "ftp://ftp.emlist.com" 
        </ulink>
        webhelyen, a 
        <literal moreinfo="none" remap="tt">
          pub/kchanges 
        </literal>
        könyvtárban, vagy a 
        <ulink url="http://www.crynwr.com/kchanges">
          "http://www.crynwr.com/kchanges" 
        </ulink>
      webhelyen. 
      </para>
    </sect2>
  </sect1>
  <sect1 id="ftpfs">
    <title>
      RPM csomagok felcsatolása (mount) az FTPFS segítségével 
    </title>
    <para>
      Mostanra lefordítódott az új rendszermagod és jól fut. Szükséged lehet arra 
      a számtalan RPM csomagra, amiket lehet, hogy a közeljövőben telepítened kell 
      majd. Ennek egyik útja, hogy fizikailag felcsatolod a LINUX CD-ROM-jait, 
      de több mint 3 CD-ről van szó, kényelmetlen leválasztani és cserélgetni 
      őket. Itt jön a képbe az FTPFS. 
    </para>
    <para>
      Ha automatizálni szeretnéd az RMP csomagok telepítését, fontold meg 
      az "apt-get" parancs használatát. Az apt-get automatikusan feloldja a 
      függőségeket, letölti és telepíti vagy frissíti a csomagokat. Részletesebben a 
      <ulink url="#apt-get">Telepítés, frissítés fénysebességgel</ulink> fejezetben 
      olvashatsz erről.
    </para>
    <para>
      Az FTP fájlrendszer (FTPFS) egy Linux-rendszermag-modul, ami kibővíti a 
      VFS hatókörét arra, hogy FTP köteteket is fel tudjon csatolni. Tehát fel 
      tudsz csatolni FTP-n megosztott könyvtárakat a saját fájlrendszeredbe, 
      és a helyi fájlok kezelésének előnyeit élvezheted. Megtalálható a 
      <ulink url="http://lufs.sourceforge.net/lufs">
        "http://lufs.sourceforge.net/lufs" 
      </ulink>
      és a 
      <ulink url="http://ftpfs.sourceforge.net">
        "http://ftpfs.sourceforge.net" 
      </ulink>
      webhelyen. 
    </para>
    <sect2>
      <title>
        Az ftpfs használata 
      </title>
      <para>
        Töltsd le az ftpfs-t, és telepítsd a rendszeredre. Az ftpfs 
	modulként települ: /lib/modules/2.4.18-19.8.0/kernel/fs/ftpfs/ftpfs.o. 
	Ezen kívül az ftpmount parancs az /usr/bin/ftpmount könyvtárba. 
	Ezután megteheted a következőt:
      </para>
      <para>
        Jelentkezz be root felhasználóként (su - root) és futtasd ezt a szkriptet:
        <programlisting format="linespecific">
	#!/bin/sh -x
	# Hasznald ezt a szkriptet a redhat cdroms rpm-konyvtar (disk1,2,3) felcsatolasahoz
	# Built rpm by name ftpfs.
	# http://lufs.sourceforge.net/main/projects.html
	# ftpmount --help
	# Probald ezt: ftpmount [user[:pass]@]host_name[:port][/root_dir] mount_point [-o]
	# [-uid=id] [gid=id] [fmask=mask] [dmask=mask]
	#ftpmount anonymous:pass@ftp.kernel.org /mnt/ftpfs
	#mkdir -p /mnt/ftpfs /mnt/ftpfs/updates /mnt/ftpfs/rpms /mnt/ftpfs/contrib
	# Redhat ftp mirror sites - http://www.redhat.com/download/mirror.html
	FTPSITE="csociety-ftp.ecn.purdue.edu"
	USER="anonymous:pass"
	ftpmount $USER@$FTPSITE/pub/redhat/redhat  /mnt/ftpfs/site
	ftpmount $USER@$FTPSITE/pub/redhat/redhat/linux/updates/8.0/en/os  /mnt/ftpfs/updates
	ftpmount $USER@$FTPSITE/pub/redhat/redhat/linux/8.0/en/os/i386/RedHat /mnt/ftpfs/rpms
	ftpmount $USER@$FTPSITE/pub/redhat-contrib /mnt/ftpfs/contrib
        </programlisting>
      </para>
    </sect2>
    <sect2>
      <title>
        Az ftpfs parancsai 
      </title>
      <para>
        Mielőtt egyáltalán elkezdenél az FTP kötetek felcsatolásának gondolatával 
	játszani, győződj meg, hogy elegendő sávszélességed van-e, különben nem 
	lesz nagy élvezet.
      </para>
      <sect3>
        <title>
          Az autofs-féle módszer - ki kell próbálnod! 
        </title>
        <para>
          Ha elég bölcs voltál, és telepítetted az autofs/automount szolgáltatást 
	  (nézd meg a telepítési feljegyzéseket), akkor nagyon fincsi módon 
	  használhatod az ftpfs-t: csak próbálj meg hozzáférni a kívánt szerveren 
	  bármelyik fájlhoz/könyvtárhoz az /mnt/ftpfs alatt. 
          <programlisting format="linespecific">
	cd /mnt/ftpfs/[user:pass@]ftp_server[:port]
          </programlisting>
        </para>
        <para>
          Valami ilyesmit csinálj: cd /mnt/ftpfs/ftp.kernel.org. 
	  És mi történik? Már ott is vagy!
        </para>
        <para>
          Normál esetben ezt csak anonymous FTP-vel használd, mivel nem akarhatod, 
	  hogy a felhasználói név/jelszó információid megjelenjenek az /mnt/ftpfs 
	  könyvtárfában. 
        </para>
      </sect3>
      <sect3>
        <title>
          Az ftpmount-féle megoldás 
        </title>
        <para>
          <emphasis remap="bf">
            ftpmount [lsqb ]user[lsqb ]:password]@]hostname[lsqb ]:port ][lsqb 
            ]/root_dir] mount_point [lsqb ]-own] [lsqb ]-uid=id] [lsqb 
            ]-gid=id] [lsqb ]-fmask=mask] [lsqb ]-dmask=mask] [lsqb ]-active] 
          </emphasis>
        </para>
        <para>
          <programlisting format="linespecific">
	A paraméterek: [alapértékek]
	    * user: A felhasználói név, amivel belépsz az FTP szerverre. [anonymous]
	    * password: A felhasználói jelszó. [user@ftpfs.sourceforge.net]
	    * hostname: Az FTP szerver.
	    * port: A port, amin a szerver figyel. [21]
	    * root_dir: Az FTP szerver felcsatolandó könyvtára. Megadható a bevezető / jel nélkül is (vagyis "home/duru", nem "/home/duru/"). [/]
	    * mount_point: A helyi könyvtár, amibe az FTP könyvtárat fel akarod csatolni.
	    * own: Jelzőbit minden távoli fájl tulajdonosi viszonyának jelzésére. Olyan FTP-knél hasznos, amik nem felhasználói neveket, hanem azonosítókat (UID) listáznak ki.
	    * uid: Annak a helyi felhasználónak az UID-je, akié lesz a felcsatolt könyvtár
	    * gid: A helyi csoport azonosítója, aki birtokolja a felcsatolt könyvtárat.
	    * fmask: A numerikus fájlmaszk, ami az összes felcsatolt fájléval VAGY kapcsolatban lesz.
	    * dmask: A numerikus könyvtármaszk, ami az összes felcsatolt könyvtáréval VAGY kapcsolatban lesz.
	    * active: Jelzőbit az aktív módú FTP forgalom jelzésére. Hasznos, ha valamilyen tűzfal mögött vagy, és nem tudsz véletlenszerűen kiválasztott portokhoz kapcsolódni.
          </programlisting>
        </para>
        <para>
          Például: ftpmount mali@ftp.linuxnet.wox.org /mnt/ftpfs -uid=500 -gid=500 
          -dmask=555 
        </para>
        <para>
          Általában jó ötlet, ha nem adod meg paraméterként a jelszavadat, 
	  mivel az ftpmount úgyis kérdezni fogja.
        </para>
      </sect3>
      <sect3>
        <title>
          A mount-féle módszer 
        </title>
        <para>
          Ha valamilyen okból nem az ftpmount-ot választod (valószínűleg 
	  valamilyen rendszermag-foltot telepítettél és lusta vagy az 
	  ftpmount-ot is telepíteni), itt egy módszer a jó öreg mount
	  paranccsal:
        </para>
        <para>
          <emphasis remap="bf">
            mount -n -t ftpfs none mount_point -o ip=server_ip [lsqb 
            ],user=user_name] [lsqb ],pass=password] [lsqb ],port=server_port] 
            [lsqb ],root= root_dir] [lsqb ],own] [lsqb ],uid=id] [lsqb 
            ],gid=id] [lsqb ],fmode=mask] [lsqb ],dmode=mask] [lsqb ],active] 
          </emphasis>
        </para>
        <para>
          Figyeld meg, hogy a szerver IP címét kell megadnod és az egyetlen 
	  lehetőség a jelszó megadására, ha egyszerűen beírod a parancssorba. 
	  Például, mialatt teszteltem, a következő parancsot használtam: 
        </para>
        <para>
          mount -n -t ftpfs none /mnt/ftpfs -o 
          ip=127.0.0.1,user=mali,pass=my_pass 
        </para>
      </sect3>
      <sect3>
        <title>
          Néhány megjegyzés 
        </title>
        <para>
          A kötet leválasztására használható az 
          <programlisting format="linespecific">
	umount mount_point
          </programlisting> 
        parancs.
	</para>
        <para>
          Az own opció (-o az ftpmount-nál) ráerőlteti az összes felcsatolt fájlra 
	  a felcsatolását végző felhasználó tulajdonosi jogát. Ez hasznos, ha ki 
	  akarjuk igazítani néhány szerver különös felhasználó/jogosultság beállítását 
	  (SERVU és hasonlók).
        </para>
        <para>
          Néhány bölcs szó: 
          <itemizedlist>
            <listitem>
              <para>
                Használd a -n felcsatolási kapcsolót! Gondolom, nem akarod a felhasználó/jelszó 
		információidat az mtab-ban viszontlátni.
              </para>
            </listitem>
            <listitem>
              <para>
                Ne "tépd ki a falból"! (Kitépni a falból = egy tucat folyamat még olvassa a 
		felcsatolási pont alatti dolgokat)
              </para>
            </listitem>
            <listitem>
              <para>
                Egyetlen folyamattal működik a legjobban! Amíg a konkurens hozzáférés 
		(normál körülmények közt) nem okoz semmilyen problémát, a kimenetet egy 
		olvasási folyamatra optimalizálták (a TCP kapcsolat életben marad). 
		Tehát ha mozit akarsz nézni, nem akarhatod, hogy másik folyamat is 
		hozzáférjen a felcsatolási ponthoz és agyonvágja a teljesítményt 
		(bízz bennem!).
              </para>
            </listitem>
            <listitem>
              <para>
                Az IP címformátum nem kóser - használd az ftpmount-ot.
              </para>
            </listitem>
          </itemizedlist>
        </para>
      </sect3>
    </sect2>
  </sect1>
  <sect1 id="kernel_textbooks">
    <title>
      A rendszermagról szóló könyvek és dokumentumok
    </title>
    <para>
      A Linux-rendszermagról szóló könyveket találsz a következő helyeken: 
      <itemizedlist>
        <listitem>
          <para>
            A Linux-rendszermag működésének megértéséhez ajánlott elolvasni az 
	    /usr/src/linux/Documentation könyvtárban lévő kernel-docs.txt fájlt, 
	    amely az interneten megtalálható a 
            <ulink url="http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html">
              "http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html" 
            </ulink>
	    honlapon is. Ez számos fontos hivatkozást tartalmaz Linux-rendszermag tankönyvekre 
	    és dokumentációkra. El kell látogatni erre a webhelyre.
          </para>
        </listitem>
        <listitem>
          <para>
            Kernel book (Rendszermag könyv) a
            <ulink url="http://kernelbook.sourceforge.net">
              "http://kernelbook.sourceforge.net" 
            </ulink>
            és a 
            <ulink url="http://sourceforge.net/projects/kernelbook">
              "http://sourceforge.net/projects/kernelbook" 
            </ulink>
	    honlapon.
          </para>
        </listitem>
        <listitem>
          <para>
            A rendszermagról szóló könyvek, mint a "The Linux Kernel Module Programming 
            Guide", "Linux Kernel 2.4 Internals", "The Linux System 
            Administrators Guide", 'The Linux Network Administrator's Guide" 
            és mások megtalálhatók a 
            <ulink url="http://www.tldp.org/guides.html">
              "http://www.tldp.org/guides.html" 
            </ulink>
          honlapon.
	  </para>
        </listitem>
        <listitem>
          <para>
            FreeTech könyvek: 
            <ulink url="http://www.tcfb.com/freetechbooks/booklinuxdev.html">
              "http://www.tcfb.com/freetechbooks/booklinuxdev.html" 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Rusty-féle doksik: 
            <ulink url="http://www.netfilter.org/unreliable-guides">
              "http://www.netfilter.org/unreliable-guides" 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Linux-rendszermag hivatkozások: 
            <ulink url="http://www.topology.org/soft/lkernel.html">
              "http://www.topology.org/soft/lkernel.html" 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Linux Kernel Internals: 
            <ulink url="http://www.moses.uklinux.net/patches/lki.html">
              "http://www.moses.uklinux.net/patches/lki.html" 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Könyvekre mutató hivatkozások: 
            <ulink url="http://linux-mm.org/kernel-links.shtml">
              "http://linux-mm.org/kernel-links.shtml" 
            </ulink>
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <para>
      A rendszermag készítésének bemutatása:
      Presentation of Kernel building process 
      <ulink url="http://mike.passwall.com/nblug/kernel-talk">
        NBLUG Linux Seminars - Kernel Building Presentation Talks 
      </ulink>
    </para>
    <para>
      Hivatkozások egyéb, a témába vágó HOGYANokra:
      <itemizedlist>
        <listitem>
          <para>
            <ulink url="http://www.tldp.org/HOWTO/Bootdisk-HOWTO/index.html">
              Bootdisk-HOWTO 
            </ulink>
          (Linux indítólemez HOGYAN)
	  </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.tldp.org/HOWTO/Sound-HOWTO/index.html">
              Sound-HOWTO : 
            </ulink>
            hangkártyák és segédprogramjaik 
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.tldp.org/HOWTO/SCSI-Generic-HOWTO/index.html">
              SCSI-HOWTO: 
            </ulink>
            minden, amit tudni kell az SCSI vezérlőkről és eszközökről. Olvasd a 
            <ulink url="http://www.tldp.org/HOWTO/SCSI-2.4-HOWTO/index.html">
              SCSI-2.4-HOWTO 
            </ulink>
          doksiban.
	  </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.tldp.org/HOWTO/Net-HOWTO/index.html">
              NET-2-HOWTO: 
            </ulink>
            hálózatkezelés 
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.tldp.org/HOWTO/PPP-HOWTO/index.html">
              PPP-HOWTO: 
            </ulink>
            PPP hálózatkezelés általában 
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.tldp.org/HOWTO/PCMCIA-HOWTO.html">
              PCMCIA-HOWTO: 
            </ulink>
            a notebook géped meghajtóiról 
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.doclib.org/Linux/docs/HOWTO/other-formats/html/ELF-HOWTO-html/ELF-HOWTO.html">
              ELF-HOWTO: 
            </ulink>
            ELF: mi is ez, konvertálás... Tüköroldalak: 
            <ulink url="http://cs.mipt.ru/docs/comp/eng/os/linux/howto/howto_english/elf/elf-howto.html">
              ELF-HOWTO-mirror 
            </ulink>
            . Lásd még: 
            <ulink url="http://www.tldp.org/HOWTO/GCC-HOWTO">
              GCC-HOWTO 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.tldp.org/HOWTO/Hardware-HOWTO/index.html">
              Hardware-HOWTO: 
            </ulink>
            a támogatott hardverek áttekintése 
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://tldp.org/HOWTO/mini/Modules/index.html">
              Module mini-HOWTO: 
            </ulink>
            még több információ a rendszermag-modulokról 
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://tldp.org/HOWTO/mini/Kerneld/index.html">
              Kerneld mini-HOWTO: 
            </ulink>
            a kerneld démonról 
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://tldp.org/HOWTO/mini/BogoMips.html">
              BogoMips mini-HOWTO: 
            </ulink>
	    (
	    <ulink url="http://tldp.fsf.hu/HOWTO/mini/BogoMips-hu.html">
              BogoMips mini-HOGYAN: 
            </ulink>
	    )
            ha csak kíváncsi vagy.
          </para>
        </listitem>
      </itemizedlist>
    </para>
  </sect1>
  <sect1 id="kernel_files_info">
    <title>
      Információk a rendszermag fájljairól 
    </title>
    <para>
      Ez a rész "rövid áttekintést" és "bemutatást" tartalmaz a Linux-rendszermag 
      egyes részeiről. Ha van időd, olvasd el.
    </para>
    <para>
      Figyelmeztetés: nagyon elővigyázatosnak kell lenned ezekkel a fájlokkal, 
      és nem szabad szerkeszteni vagy mozgatni/törölni/átnevezni őket.
    </para>
    <sect2 id="vmlinuz">
      <title>
        vmlinuz és vmlinux 
      </title>
      <para>
        A "vm" azt jelenti "Virtuális Memória" ("Virtual Memory"). A Linux
	támogatja a virtuális memória használatát, szemben az olyan 
	régi rendszerekkel mint a DOS. Annál a 640 kByte egy komoly 
	korlát volt. A Linux képes virtuális memóriaként használni a 
	merevlemezt, ezért "vm" a neve.	A vmlinuz a rendszermag végrehajtható 
	fájlja. Helye a /boot/vmlinuz könyvtár. Ez lehet egy szimbolikus 
	hivatkozás valamire, például /boot/vmlinuz-2.4.18-19.8.0.
	A "make zImage" parancs készíti el a vmlinuz fájlt, és 
	a "cp /usr/src/linux/arch/i386/linux/boot/zImage 
        /boot/vmlinuz" paranccsal rakhatod a helyére. A vmlinuz a 
	vmlinux tömörített változata. A zImage ezért visszamenőleg 
	kompatibilis (a kisebb rendszermagok esetében). Megjegyzendő, hogy a 
	közeljövőben megszűnhet a zImage, és előnyben részesül a 
	"make bzImage" (big zImage; nagy zImage). A zImage (vmlinuz) 
	nem csak egy tömörített fájl, de van benne egy beépített 
	gzip-kicsomagoló is (a fájl elejében). Tehát nem lehet 
	használni a gzip -dc és gunzip parancsokat a vmlinuz 
	kicsomagolására.
      </para>
      <para>
        A zImage és a bzImage egyaránt tömörített a gzip programmal. A 
	rendszermagban van egy mini-gunzip, ami a rendszermag kicsomagolására 
	és indítására szolgál. A különbség az, hogy a régi zImage az 
	alsó memóriába (az első 640 kByte-ra), míg a bzImage a rendszermagot 
	a felső memóriába csomagolja ki (1 MByte fölé).
      </para>
      <para>
        A vmlinux a tömörítetlen rendszermag-fájl, a vmlinuz a tömörített, 
	amit betölthetővé tettek. (Figyeld meg, hogy mindkét név hasonlóan 
	néz ki, kivéve az utolsó z betűt). Általában nem kell törődnöd a 
	vmlinux fájllal, ez csak egy közbenső lépés.
      </para>
      <para>
        A rendszermag általában egy bzImage fájlt készít, eltárolja az 
	arch/i386/boot könyvtárban, és a felhasználónak kell átmásolni azt a 
	/boot könyvtárba, majd beállítani a GRUB vagy a LILO rendszerbetöltőt. 
      </para>
    </sect2>
    <sect2 id="bootload">
      <title>
	Rendszerbetöltő (bootloader) fájlok
      </title>
      <para>
        A .b fájlok a rendszerbetöltő fájlok. Ezek szükségesek a 
	rendszermag memóriába való betöltéséhez. Lehetőleg 
	NE bántsd őket.
        <programlisting format="linespecific">
	ls -l /boot/*.b
	-rw-r--r--    1 root     root         5824 Sep  5  2002 /boot/boot.b
	-rw-r--r--    1 root     root          612 Sep  5  2002 /boot/chain.b
	-rw-r--r--    1 root     root          640 Sep  5  2002 /boot/os2_d.b
        </programlisting>
      </para>
    </sect2>
    <sect2>
      <title>
        Üzenetfájl (message file)
      </title>
      <para>
        A "message" fájl tartalmazza a bootloader által megjeleníthető üzenetet, 
	ami az operációs rendszer kiválasztására szólít fel. Ezért NE nyúlj hozzá.
        <programlisting format="linespecific">
	ls -l /boot/message*
	-rw-r--r--    1 root     root        23108 Sep  6  2002 /boot/message
	-rw-r--r--    1 root     root        21282 Sep  6  2002 /boot/message.ja
        </programlisting>
      </para>
    </sect2>
    <sect2 id="initrdimg">
      <title>
        initrd.img 
      </title>
      <para>
        Részletesen az 
	<ulink url="#create_initrd">"A" függelék - initrd.img fájl készítése</ulink> 
	fejezetben olvashatsz erről. 
      </para>
    </sect2>
    <sect2 id="bzimagelbl">
      <title>
        bzImage 
      </title>
      <para>
        A bzImage a "make bzImage" parancs által készített tömörített rendszermag-fájl, 
	ami a fordítás során jött létre. Fontos megjegyezni, hogy a bzImage 
	nincs tömörítve a 
        <emphasis remap="bf">
          bzip2 
        </emphasis>
        programmal!! A bz a bzImage nevében félrevezető!! A valódi jelentése 
	"Big Zimage". A "b" jelentése a bzImage szóban "big". A zImage és 
	a bzImage egyaránt a gzip metódusával van tömörítve. A rendszermagban 
	van egy mini-gunzip, ami a rendszermag kicsomagolására 
	és indítására szolgál. A különbség az, hogy a régi zImage az alsó 
	memóriába (az első 640 kByte-ra), míg a bzImage a rendszermagot 
	a felső memóriába csomagolja ki (1 MByte fölé). Az egyetlen ismert 
	probléma az lehet, hogy néhány gépen nem működik a bzImage 
	(mert a gép bugyuta). A bzImage jelenleg gyorsabban elindul mint a 
	zImage, de nincs különbség a rendszer *futásának* sebességében. A szabály az, 
	ha az összes meghajtóprogram (driver) nem fér bele a zImage fájlba, 
	akkor moduláris rendszermagra van szükség.
      </para>
      <para>
        Ha a rendszermag kicsi a zImage és bzImage is használható, 
	az elindított rendszer ugyanúgy fut. A nagy rendszermag mint 
	bzImage fog futni, nem mint egy zImage. Mindkét rendszerfájl 
	a gzip metódussal tömörített (a bzImage nem a bzip metódussal 
	van tömörítve, mint azt a neve sugallja), de különböző módon 
	töltődnek be a memóriába. A rendszermag a felső memóriaterületre 
	is betölthető, így nem korlátozza a memóriaméret a gyagya intel 
	architektúrán. Miért létezik két módszer? Néhány régebbi lilo és 
	loadlin rendszerbetöltő nem kezeli a bzImage formátumot. 
	Megjegyzendő, hogy a *betöltés* különböző, de a *futás* azonos. 
	Sok tévinformáció származott abból, hogy mi is a bzImage fájl 
	(a legtöbb szerint bzip2 metódussal tömörített fájl).
      </para>
    </sect2>
    <sect2 id="moduleinfo">
      <title>
        module-info 
      </title>
      <para>
        A "module-info" fájl egy szimbolikus hivatkozás: 
        <programlisting format="linespecific">
	$ uname -r
	2.4.18-19.8.0custom
	  
	# ls -l /boot/module-info*
	lrwxrwxrwx    1 root     root           25 Jan 26 10:44 /boot/module-info -> module-info-2.4.18-19.8.0
	-rw-r--r--    1 root     root        15436 Sep  4  2002 /boot/module-info-2.4.18-14
	-rw-r--r--    1 root     root        15436 Jan 26 01:29 /boot/module-info-2.4.18-19.8.0
        </programlisting>
      </para>
      <para>
        A fentiekhez hozzátéve megjegyzendő, hogy nem kötelező module-info 
	szimbolikus hivatkozást készíteni egy rendszermaghoz kapcsolódó 
	fájlhoz, mint amilyen a System-map és vmlinuz fájlokhoz szükséges. 
	Ez csak egy szöveges fájl, amely akkora, mint az aktuális module-info 
	lista. Mielőtt eltávolítanád az összes RH rendszermaghoz szükséges 
	"alapanyagot" a rendszeredről, készítened kellene egy mentést erről 
	a fájlról: 
        <programlisting format="linespecific">
# cp /boot/module-info-2.4.20-19.9 /boot/module-info-2.4.20-19.9.backup 
        </programlisting>
        Ezt biztonságosabb a module-info fájlal megtenni, ritkán változnak 
	ugyanazon RH rendszermagok változatán belül.
      </para>
      <para>
        Ez a "module-info" fájl az anaconda/utils/modlist (speciális RedHat Linux 
	Anaconda telepítőhöz) programmal készült. Egyéb Linux összeállításokban 
	létezhet ennek megfelelő parancs. Tájékozódj a Linux disztribútorod 
	kézikönyv oldalaiból.
      </para>
      <para>
        Nézd meg a szkriptet és keress rá a "module-info" szóra
	<ulink url="http://www.mit.edu/afs/sipb/system/rhlinux/redhat-6.2/misc/src/trees/updmodules">
          updmodules 
        </ulink>
        . 
      </para>
      <para>
        Következik egy részlet a szkriptből:
        <programlisting format="linespecific">
	#!/bin/bash
	# updmodules.sh
		MODLIST=$PWD/../anaconda/utils/modlist
		MODINFO=$KERNELROOT/boot/module-info-$version
	-- kivágás
	bla-bla-bla 
	-- kivágás
	    # module-info fajl elkeszitese
	    $MODLIST --modinfo-file $MODINFO --ignore-missing --modinfo \
			$(ls *.o | sed 's/\.o$//') &gt; ../modinfo
        </programlisting>
      </para>
      <para>
        Az anaconda/utils/modlist program az anaconda-runtime*.rpm csomagban van a 
	RedHat CD-ROM-on:
        <programlisting format="linespecific">
	cd /mnt/cdrom/RedHat/RPMS
	rpm -i anaconda-8.0-4.i386.rpm
	rpm -i anaconda-runtime-8.0-4.i386.rpm
	ls -l /usr/lib/anaconda-runtime/modlist
        </programlisting>
        Beszerezheted a forráskódját (anaconda/utils/modlist.c) az 
        anaconda*.src.rpm-ből a 
        <ulink url="http://www.rpmfind.net/linux/rpm2html/search.php?query=anaconda">
          "http://www.rpmfind.net/linux/rpm2html/search.php?query=anaconda" 
        </ulink>
        webhelyről. Egyből olvashatod is:
        <ulink url="http://www.trustix.net/pub/Trustix/trustix-1.5/i586/misc/src/anaconda/utils/modlist.c">
          modlist.c 
        </ulink>
        . 
      </para>
      <para>
        A "module-info" a fordítás során készül el. Ez egy információs fájl, amit 
	legalábbis akkor használnak, mialatt kitöltésre kerülnek a rendszermag 
	megfelelő Oops jelentései. Ez egy lista a modulok belépési pontjairól. 
	Ezen kívül a depmod is használja azon táblák felépítésénél, amiket az 
	insmod és rokonsága használ. Függőségi információkat tartalmaz azokról a 
	modulokról, amiket egy adott modul előtt be kell tölteni stb. 
      </para>
      <para>
        A lényeg az, hogy "Ne távolítsd el a module-info fájlt."
      </para>
      <para>
        Néhány információ a module-info fájlról:
        <itemizedlist>
          <listitem>
            <para>
              A rendszermag rpm fájlok tartalmazzák (az anaconda-runtime*.rpm építi fel)
            </para>
          </listitem>
          <listitem>
            <para>
              Egy hivatkozás a module-info-{kernel-version} fájlhoz
            </para>
          </listitem>
          <listitem>
            <para>
              Az összes hozzáférhető modulról tartalmaz információt (legalábbis azokról, 
	      amik benne vannak az alapértelmezett rendszermag beállításban).
            </para>
          </listitem>
          <listitem>
            <para>
              Fontos az anaconda számára - az anaconda/utils/modlist parancsban.
            </para>
          </listitem>
          <listitem>
            <para>
              A kudzu is használhatja, hogy felderítse a modulok alapértelmezett 
	      paramétereit, amikor elkészíti a bejegyzéseket az /etc/modules.conf
	      fájlban. Ha használaton kívül helyezed a module-info fájlt, 
	      leállítod a gépet, beraksz egy új hálózati kártyát és újraindítasz, 
	      a kudzu hangosan reklamálni fog. Nézd meg a kudzu forráskódját.
            </para>
          </listitem>
        </itemizedlist>
      </para>
    </sect2>
    <sect2 id="configfiles">
      <title>
        config 
      </title>
      <para>
        Minden alkalommal, ha új rendszermagot fordítasz és telepíted a 
	rendszermag-fájlt a /boot könyvtárba, a megfelelő beállítófájlt 
	szintén át kell másolnod a /boot könyvtárba, dokumentációs célból 
	és későbbi hivatkozás miatt. Ezeket a fájlokat NE változtasd vagy 
	szerkeszd!
        <programlisting format="linespecific">
	ls -l /boot/config-*
	-rw-r--r--    1 root     root        42111 Sep  4  2002 /boot/config-2.4.18-14
	-rw-r--r--    1 root     root        42328 Jan 26 01:29 /boot/config-2.4.18-19.8.0
	-rw-r--r--    1 root     root        51426 Jan 25 22:21 /boot/config-2.4.18-19.8.0BOOT
	-rw-r--r--    1 root     root        52328 Jan 28 03:22 /boot/config-2.4.18-19.8.0-26mar2003
        </programlisting>
      </para>
    </sect2>
    <sect2 id="grubdir">
      <title>
        grub 
      </title>
      <para>
        Ha a GRUB rendszerbetöltőt használod, akkor lesz ott egy "grub" könyvtár is.
        <programlisting format="linespecific">
	ls /boot/grub
	device.map     ffs_stage1_5  menu.lst        reiserfs_stage1_5  stage2
	e2fs_stage1_5  grub.conf     minix_stage1_5  splash.xpm.gz      vstafs_stage1_5
	fat_stage1_5   jfs_stage1_5  stage1          xfs_stage1_5
        </programlisting>
        Részletesen a
        <ulink url="#grubconf">"C" függelék - GRUB részletesen, grub.conf mintafájl</ulink>
	fejezetben olvashatsz erről. 
      </para>
    </sect2>
    <sect2 id="systemmap">
      <title>
        System.map 
      </title>
      <para>
        A System.map egy "telefonkönyv-szerű" függvénylistája egy bizonyos lefordított
	rendszermagnak. Tipikusan egy szimbolikus hivatkozás az éppen futó rendszermag 
	System.map fájljára. Ha rossz (vagy semmilyen) System.map fájlt használsz, 
	az összeomlások nyomon követése nehezebb, de más hatása nincs. A System.map 
	nélkül kisebb zavaró üzenetekkel kell szembesülnöd.
      </para>
      <para>
        NE bántsd a System.map fájlokat.
        <programlisting format="linespecific">
	ls -ld /boot/System.map*
	lrwxrwxrwx    1 root     root           30 Jan 26 19:26 /boot/System.map -&gt; System.map-2.4.18-19.8.0custom
	-rw-r--r--    1 root     root       501166 Sep  4  2002 /boot/System.map-2.4.18-14
	-rw-r--r--    1 root     root       510786 Jan 26 01:29 /boot/System.map-2.4.18-19.8.0
	-rw-r--r--    1 root     root       331213 Jan 25 22:21 /boot/System.map-2.4.18-19.8.0BOOT
	-rw-r--r--    1 root     root       503246 Jan 26 19:26 /boot/System.map-2.4.18-19.8.0custom
        </programlisting>
      </para>
      <para>
        <emphasis remap="bf">
          Hogyan készül a rendszermag szimbólumtáblája (Kernel Symbol Table)?
        </emphasis>
        A System.map fájlt az "nm vmlinux" készíti el, és a nem fontos vagy 
	érdeklődésre számot nem tartó szimbólumokat kiszedi a grep. Amikor 
	lefordítod a rendszermagot, a System.map fájl az /usr/src/linux/System.map
	fájlba kerül. Valahogy így:
        <programlisting format="linespecific">
	nm /boot/vmlinux-2.4.18-19.8.0 &gt; System.map
	# Ez egy sor az /usr/src/linux/Makefile fájlból 
	nm vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort &gt; System.map
	cp /usr/src/linux/System.map /boot/System.map-2.4.18-14   # For v2.4.18
        </programlisting>
      </para>
      <para>
        Forrás: 
        <ulink url="http://www.dirac.org/linux/systemmap.html">
          "http://www.dirac.org/linux/systemmap.html" 
        </ulink>
      </para>
      <sect3>
        <title>
          System.map 
        </title>
        <para>
          Úgy néz ki, hogy információhiány van a System.map fájlról. Tényleg semmi 
	  rendkívüli nincs benne, és a dolgok állása szerint tényleg nem olyan fontos. 
	  De az információ hiánya homályossá teszi. Olyan, mint a fülcimpa: mindenkinek 
	  van, de senki sem tudja igazán, miért. Ez egy kis weboldal, amit a "miért" 
	  leírására hoztam össze.
        </para>
        <para>
          Megjegyzem, nem vagyok 100%-ig korrekt. Példának okáért lehetséges, 
	  hogy egy rendszerben nincs /proc fájlrendszer támogatás, de a legtöbben 
	  van. Feltételezem, hogy "úszol az árral" és egy meglehetősen tipikus 
	  rendszered van.
        </para>
        <para>
          A dolgok egy része az Oops-okról az Alessandro Rubini-féle "Linux 
          Device Drivers" (Linux meghajtóprogramok) leírásból származik, 
	  amiből a legtöbbet tanultam a rendszermag programozásáról.
        </para>
      </sect3>
      <sect3>
        <title>
          Mik a szimbólumok? 
        </title>
        <para>
          Programozási környezetben a szimbólum a program építőeleme: változónév vagy 
	  függvénynév. Nem meglepetés, hogy a rendszermagnak is vannak szimbólumai, 
	  ugyanúgy, mint az általad írt programoknak. A különbség persze ott van, 
	  hogy a rendszermag nagyon bonyolult darab kódolási szempontból, és sok-sok 
	  globális szimbóluma van.
        </para>
      </sect3>
      <sect3>
        <title>
          Mi a rendszermag szimbólumtáblája (Kernel Symbol Table)? 
        </title>
        <para>
          A rendszermag nem használ szimbólumneveket. Sokkal jobban szereti tudni a 
	  változó vagy függvény nevét azok címei által. Ahelyett, hogy a size_t 
	  BytesRead formát használná, előnyben részesíti azt, ha erre a változóra 
	  (példának okáért) c0343f20 formában hivatkozhat.
        </para>
        <para>
          Másrészről, az emberek nem szeretik a c0343f20 kinézetű neveket. 
	  Jobban kedveljük azt, hogy size_t BytesRead. Normál esetben ez nem 
	  jelent problémát. A rendszermagot főleg C nyelven írták, ezért a 
	  fordító/szerkesztő megengedi, hogy szimbólumneveket használjunk 
	  kódolás közben, a rendszermagnak pedig engedi, hogy címeket használjon 
	  futás közben. Mindenki boldog lehet.
        </para>
        <para>
          Azonban vannak olyan szituációk, amikor tudnunk kell egy szimbólum címét 
	  (vagy egy címhez tartozó szimbólumot). Ez a szimbólumtábla által valósul 
	  meg, és nagyon hasonló ahhoz, ahogy a gdb (GNU debugger - a ford.) 
	  visszaadja a függvényneveket egy címről (vagy egy címet a függvénynévből). 
	  A szimbólumtábla egy lista az összes szimbólumról, a címeikkel együtt. 
	  Íme egy példa:
        </para>
        <para>
          <programlisting format="linespecific">
	   c03441a0 B dmi_broken
	   c03441a4 B is_sony_vaio_laptop
	   c03441c0 b dmi_ident
	   c0344200 b pci_bios_present
	   c0344204 b pirq_table
	   c0344208 b pirq_router
	   c034420c b pirq_router_dev
	   c0344220 b ascii_buffer
	   c0344224 b ascii_buf_bytes
          </programlisting>
        </para>
        <para>
          Látható, hogy a dmi_broken nevű változó a c03441a0 
	  rendszermag-címen van.
        </para>
      </sect3>
      <sect3>
        <title>
          Mi is a System.map fájl? 
        </title>
        <para>
          Két fájl használatos szimbólumtáblaként:
          <orderedlist inheritnum="ignore" continuation="restarts">
            <listitem>
              <para>
                /proc/ksyms 
              </para>
            </listitem>
            <listitem>
              <para>
                System.map 
              </para>
            </listitem>
          </orderedlist>
        </para>
        <para>
          Na mármost. Már tudod, mi is a System.map fájl.
        </para>
        <para>
          Minden alkalommal, ha új rendszermagot fordítasz, a különböző szimbólumnevek 
	  címei megváltoznak.
        </para>
        <para>
          A /proc/ksyms egy "folyamatfájl" és a rendszermag indulásakor 
	  menet közben készül el. Valójában ez nem fájl: egyszerűen a 
	  rendszermag adatainak megjelenítése, ami azt az illúziót adja, 
	  mintha lemezn lévő fájl lenne. Ha nem hiszel nekem, próbáld megállapítani 
	  a /proc/ksyms fájl méretét. Ezért mindig az aktuálisan futó 
	  rendszermaghoz képest lesz korrekt.
        </para>
        <para>
          A System.map azonban egy létező fájl a fájlrendszeredben. Amikor 
	  új rendszermagot fordítasz, ennek régi verziója rossz szimbólum-információkat 
	  tartalmaz. Egy új verzió készül minden egyes új fordításkor, 
	  és ki kell cserélned a régit az újjal.
        </para>
      </sect3>
      <sect3>
        <title>
          Mi az Oops?
        </title>
        <para>
          Mi a leggyakoribb hiba a házilag készült programjaiddal? 
	  A szegmentációs hiba (segfault). A jó öreg signal 11.
        </para>
        <para>
          Mi a Linux-rendszermag leggyakoribb hibája? A segfault. Itt azonban a 
	  segfault fogalma sokkal összetettebb, és ahogy az várható 
	  sokkal komolyabb. Amikor a rendszermag egy hibás mutatóra hivatkozik, 
	  azt nem segfault-nak hívjuk - ezt hívják "oops"-nak. Egy ilyen 
	  oops rendszermag-hibát jelez, mindig jelenteni és javítani kell.
        </para>
        <para>
          Figyeld meg, hogy az oops nem ugyanaz a dolog, mint a segfault. 
	  A programod nem tud kijönni egy segfault-ból. A rendszermag viszont 
	  nem szükségszerűen kerül instabil állapotba, ha egy oops fordul elő. 
	  A rendszermag nagyon robusztus; az oops csak az aktuális folyamatot 
	  öli meg, a rendszermag többi részét megfelelően jó állapotban hagyhatja.
        </para>
        <para>
          Az oops nem egyenlő a rendszermag pánikkal (kernel panic). Pánik alkalmával 
	  a rendszermag nem tud tovább futni; a rendszer halt állapotba zuhan és 
	  újra kell indítani. Egy oops akkor okozhat pánikot, ha a rendszer egy 
	  életfontosságú része semmisül meg. Egy oops valamely eszközvezérlőben 
	  például majdnem sosem okoz pánikot.
        </para>
        <para>
          Amikor egy oops előfordul, a rendszer a hibakereséshez elengedhetetlen 
	  információt nyomtat ki, mint például a CPU összes regiszterének tartalmát 
	  és az oldalleíró táblák (page descriptor tables) helyét. Főleg az EIP 
	  (utasítás mutató) tartalma íródik ki. Mint ez itt:
          <programlisting format="linespecific">
	   EIP: 0010:[&lt;00000000&gt;]
	   Call Trace: [&lt;c010b860&gt;]
          </programlisting>
        </para>
      </sect3>
      <sect3>
        <title>
          Mit köze egy oops-nak a System.map fájlhoz?
        </title>
        <para>
          Egyetérthetsz azzal, hogy az EIP-ben adott információ és a nyomkövetési 
	  adatok nem valami információgazdagok. Ennél is fontosabb, hogy még a 
	  rendszermag fejlesztőinek sem azok. Mivel a szimbólumnak nincs fix címe, 
	  a c010b860 mutathat bárhova.
        </para>
        <para>
          Ahhoz, hogy használhassuk ezeket a titkosított oops-kimeneteket, 
	  a Linux egy klogd nevű démont használ, a rendszermag naplózó démont. 
	  A klogd elfogja a rendszermag oops-ait és a syslog segítségével 
	  naplózza, kicserélve néhány haszontalan információt, mint a c010b860 
	  olyanra, amit ember is tud használni. Más szóval, a klogd egy rendszermag-üzenet 
	  naplózó, ami név-cím feloldást tud végezni. Amint átalakítja a rendszermag 
	  üzeneteit, egy olyan naplózót használ, ami a rendszerszintű üzeneteket tudja 
	  naplózni, általában a syslogd démont.
        </para>
        <para>
          A név-cím feloldáshoz a klogd a System.map fájlt használja. 
	  Most már tudod, mi az oops és mi köze a System.map fájlhoz.
        </para>
        <para>
          <emphasis remap="bf">
            Megjegyzések: 
          </emphasis>
          Jelenleg kétféle címfeloldást végez a klogd.
        </para>
        <para>
          <itemizedlist>
            <listitem>
              <para>
                Statikus fordítást, ami használja a System.map fájlt.
              </para>
            </listitem>
            <listitem>
              <para>
                A dinamikus fordítást, amit a betölthető modulokkal használnak, 
		nem használja 
              </para>
            </listitem>
          </itemizedlist>
        </para>
        <para>
          a System.map fájlt, ezért nem fontos ennek tárgyalásánál, 
	  de azért röviden ismertetem.
        </para>
        <para>
          <emphasis remap="bf">
            A klogd dinamikus fordítása 
          </emphasis>
        </para>
        <para>
          Tegyük fel, hogy betöltöttél egy rendszermag-modult, ami oops-ot 
	  idézett elő. Egy oops üzenet készült és a klogd elfogta. Azt találta, 
	  hogy az oops a d00cf810-nál fordult elő. Mivel ez a cím egy dinamikusan 
	  betöltött modulhoz tartozik, nincs bejegyzés hozzá a System.map fájlban. 
	  A klogd keresi, de nem talál semmit így arra következtet, hogy egy 
	  betölthető modul  generálta az üzenetet. A klogd ezután lekérdezi a 
	  rendszermagot olyan szimbólumokért, amiket a betölthető modulok 
	  exportáltak. Még ha a modul szerzője nem exportálta is a szimbólumokat, 
	  legalább a klogd tudni fogja, melyik modul idézte elő az oops-ot, ami 
	  jobb, mint semmit sem tudni az oops-ról.
        </para>
        <para>
          Más programok is használják a System.map fájlt és rövidesen ezzel is 
	  foglalkozom.
        </para>
      </sect3>
      <sect3>
        <title>
          Hol kellene lennie a System.map fájlnak?
        </title>
        <para>
          A System.map bárhol lehet, ahol az őt használó szoftverek keresik. 
	  Most beszéljünk arról, hogy a klogd hol keresi. 
	  Az induláskor, ha a klogd nem kapta meg argumentumként a System.map 
	  helyét, akkor három helyen keresi a következő sorrendben:
          <orderedlist inheritnum="ignore" continuation="restarts">
            <listitem>
              <para>
                /boot/System.map 
              </para>
            </listitem>
            <listitem>
              <para>
                /System.map 
              </para>
            </listitem>
            <listitem>
              <para>
                /usr/src/linux/System.map 
              </para>
            </listitem>
          </orderedlist>
        </para>
        <para>
          A System.map ezenkívül verzió-információkat is tartalmaz, és a 
	  klogd intelligens módon a megfelelő map (térkép)fájlt keresi meg. 
	  Például, ha a 2.4.18-as rendszermagot futtatod és a 
	  hozzá társított fájl a /boot/System.map. Most fordítasz egy új 
	  2.5.1-es rendszermagot az /usr/src/linux fán belül. A fordítási 
	  folyamat közben elkészül az /usr/src/linux/System.map fájl. Amikor 
	  elindítod az új rendszermagot, a klogd először megnézi a /boot/System.map-et, 
	  megállapítja, hogy ez nem a futó rendszermagnak megfelelő térképfájl, 
	  ezután megnézi az /usr/src/linux/System.map-et, megállapítja, hogy 
	  ez a megfelelő, és elkezdi olvasni a szimbólumokat.
        </para>
        <para>
          Néhány megjegyzés: 
        </para>
        <para>
          <itemizedlist>
            <listitem>
              <para>
                Valahol a 2.5.x szérián belül, a Linux-rendszermag elkezdett 
		Linux-verziószám formában kicsomagolódni a tar archívumból, 
		a sima linux helyett (kezeket fel: hányan vártuk már, hogy 
		ez megtörténjen?) Nem tudom, hogy a klogd démont módosították-e 
		már úgy, hogy az /usr/src/linux-verzió/System.map fájlt keresse. 
		TENNIVALÓ: nézd meg a klogd forrását. ?? FIXME ?? Ha valaki megver is ezért, 
		kérlek küldj e-mailt, és tudasd, hogy módosították-e a klogd-t 
		úgy, hogy a forráskód új nevű könyvtárában keressen. ??FIXME??
              </para>
            </listitem>
            <listitem>
              <para>
                A kézikönyv oldal nem ír le mindent. Nézd meg ezt:
              </para>
            </listitem>
          </itemizedlist>
        </para>
        <para>
          <programlisting format="linespecific">
	   # strace -f /sbin/klogd | grep 'System.map'
	   31208 open("/boot/System.map-2.4.18", O_RDONLY|O_LARGEFILE) = 2
          </programlisting>
        </para>
        <para>
          Kétségtelen, hogy a klogd nemcsak a 3 keresési könyvtárban nézi meg 
	  a térképfájl megfelelő verzióját, de tudja azt is, hogy a "System.map" 
	  nevet követő "-kernelverzó"-t nézze, mint a System.map-2.4.18. Ez a 
	  klogd egy nem dokumentált képessége.
        </para>
        <para>
          Néhány meghajtónak szüksége van a System.map-re a szombólumok feloldásához 
	  (mivel a rendszermag fejlécfájljaihoz lettek linkelve, és nem mondjuk a 
	  glibc-éihez). Ezek nem fognak jól működni a futó rendszermaghoz készült 
	  megfelelő System.map fájl nélkül. Ez NEM ugyanaz a dolog, mint hogy egy 
	  modul nem töltődik be a rendszermag verziószámának eltérése miatt. Ezt a 
	  rendszermag-verzió jelzésével kell megoldani, nem a szimbólumtáblával, 
	  ami változik az ugyanolyan verziójú rendszermagokon belül is!
        </para>
      </sect3>
      <sect3>
        <title>
          Mi használja még a System.map fájlt?
        </title>
        <para>
          Ne gondold, hogy a System.map csak a rendszermag oops-ok számára 
	  hasznos. Bár a rendszermag maga nem igazán használja, más programok, 
	  mint a klogd, az lsof,
        </para>
        <para>
          <programlisting format="linespecific">
	   satan# strace lsof 2&gt;&amp;1 1&gt; /dev/null | grep System
	   readlink("/proc/22711/fd/4", "/boot/System.map-2.4.18", 4095) = 23
          </programlisting>
        </para>
        <para>
          és a ps : 
        </para>
        <para>
          <programlisting format="linespecific">
	   satan# strace ps 2&gt;&amp;1 1&gt; /dev/null | grep System
	   open("/boot/System.map-2.4.18", O_RDONLY|O_NONBLOCK|O_NOCTTY) = 6
          </programlisting>
        </para>
        <para>
          valamint számos egyéb szoftver is, mint a dosemu igényli a megfelelő 
	  System.map-et.
        </para>
      </sect3>
      <sect3>
        <title>
          Mi történik, ha nem megfelelő System.map fájlom van?
        </title>
        <para>
          Tegyük fel, hogy több rendszermagod van ugyanazon a gépen. Minden 
	  egyes rendszermaghoz más-más System.map-re van szükség! Ha olyan 
	  rendszermagot indítasz, amihez nem tartozik System.map, rendszeresen 
	  látsz majd olyan üzeneteket, hogy: System.map does not match actual 
	  kernel (A System.map nem felel meg az aktuális rendszermagnak). Nem 
	  végzetes hiba, de bosszantó lehet mindig ezt látni, ha kiadsz egy 
	  "ps ax" parancsot. Néhány program, mint a dosemu, lehet, hogy nem működik 
	  megfelelően (bár nem tudok semmi biztosat erről). Végül, a klogd vagy 
	  a ksymoops kimenete nem lesz megbízható egy rendszermag oops esetén. 
	  Olvasd el a kézikönyv oldalakat, a "man ksymoops" és "man klogd" 
	  parancsok kiadása után.
        </para>
      </sect3>
      <sect3>
        <title>
          Hogyan orvosoljam a fenti szituációt?
        </title>
        <para>
          A megoldás, hogy az összes System.map fájlt a /boot-ban tárolod 
	  és átnevezed a rendszermag verziószámára. Tegyük fel hogy több 
	  rendszermagod van, mint:
        </para>
        <para>
          <itemizedlist>
            <listitem>
              <para>
                /boot/vmlinuz-2.2.14 
              </para>
            </listitem>
            <listitem>
              <para>
                /boot/vmlinuz-2.2.13 
              </para>
            </listitem>
          </itemizedlist>
        </para>
        <para>
          Ezután csak nevezd át a térképfájlokat a rendszermag verziójának 
	  megfelelően és rakd őket a /boot könyvtárba:
          <programlisting format="linespecific">
	   /boot/System.map-2.2.14
	   /boot/System.map-2.2.13
          </programlisting>
        </para>
        <para>
          Mi van, ha két másolatod van ugyanabból a rendszermagból? Mint itt:
          <itemizedlist>
            <listitem>
              <para>
                /boot/vmlinuz-2.2.14 
              </para>
            </listitem>
            <listitem>
              <para>
                /boot/vmlinuz-2.2.14.nosound 
              </para>
            </listitem>
          </itemizedlist>
        </para>
        <para>
          A legjobb válasz az lehet, ha az összes szoftver a következő fájlokat 
	  nézi meg:
          <programlisting format="linespecific">
	   /boot/System.map-2.2.14
	   /boot/System.map-2.2.14.nosound
          </programlisting>
        </para>
        <para>
          Használhatsz szimbolikus hivatkozásokat is:
          <programlisting format="linespecific">
	   System.map-2.2.14
	   System.map-2.2.14.sound
	   ln -s System.map-2.2.14.sound System.map     # Itt System.map -&gt; System.map-2.2.14.sound
          </programlisting>
        </para>
      </sect3>
    </sect2>
  </sect1>
  <sect1 id="linux_admin_tools">
    <title>
      Linux rendszer-adminisztrációs eszközök
    </title>
    <para>
      Két igazán jó adminisztrációs eszköz létezik Linuxra, ezek a Linuxconf és a Webmin.
    </para>
    <para>
      Linux rendszer-adminisztrációs eszközök: 
      <itemizedlist>
        <listitem>
          <para>
            A Linuxconf megtalálható a 
            <ulink url="http://www.solucorp.qc.ca/linuxconf">
              http://www.solucorp.qc.ca/linuxconf 
            </ulink> 
	    webhelyen. A Linuxconf egy különösen nagy projekt. A program félelmetesen jól 
	    használható, sok beállítási lehetőség van benne. A Linuxconf a 
	    LEGISMERTEBB rendszer-adminisztrációs eszköz Linuxra. Ez az összes 
	    disztribúcióban megtalálható, mint a Redhat, Debian, Suse stb. 
	    A Linuxconf egyenértékű a HPUX SAM, valamint az AIX SMITTY programjával. 
	    Egyaránt fut konzolon és az X-Window GUI felületén. Debian Linux 
	    esetén a letöltéshez és telepítéshez elég az "apt-get linuxconf". 
          </para>
        </listitem>
        <listitem>
          <para>
            A Webmin a legjobban használható és nagyon népszerű rendszer-adminisztrációs 
	    eszköz a Linuxhoz. Elég elterjedt és díjazott, mint legjobb rendszer-adminisztriciós 
	    eszköz Solaris BSD, Linux, HPUX, AIX, SCO és más rendszerekhez. A Webmin 
	    évről-évre szervezetek, konferenciák és szerkesztők által odaítélt díjakat 
	    nyert az elmúlt 5 évben. A Webmin más rendszerek alatt is használható 
	    mint például AIX, Solaris, HPUX, IRIX, BSD, SCO Unix, OSF, Darwin, 
	    Apple Macintosh Mac OS X és Cygwin. Jelenleg a leginkább támogatott 
	    rendszerek a Solaris, Linux (különösen a Redhat) és FreeBSD. Perl nyelven 
	    írták, ez hordozható akárcsak a "C", de ellentétben azzal szkript-nyelv. 
	    A Perl "unokatestvére" a "C" nyelvnek. A legfőbb hátránya, hogy szüksége van 
	    az X-Window rendszerre, az Apache webszerver és a Perl telepítése 
	    és futtatása után használható a Webmin. Ezt a hézagot tömi be a Linuxconf, 
	    nincs szükség az X-Window vagy más program telepítésére a használatához. 
	    A Linuxconf akár egy buta karakteres terminálon is futhat az ncurses-al. 
	    A Webmin megtalálható a
            <ulink url="
              http://www.webmin.com "> http://www.webmin.com 
            </ulink>
            webhelyen. Itt letölthető a Webmin csomag. 
          </para>
        </listitem>
        <listitem>
          <para>
            Google könyvtár 
            <ulink url="
              http://directory.google.com/Top/Computers/Software/Operating_Systems/Unix/Administration/ 
              "> 
              http://directory.google.com/Top/Computers/Software/Operating_Systems/Unix/Administration/ 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Íme a RedHat adminisztrációs eszközök listája: 
            <programlisting format="linespecific">
	# ls /usr/sbin/redhat-con*
	/usr/sbin/redhat-config-bind           /usr/sbin/redhat-config-packages
	/usr/sbin/redhat-config-bind-gui       /usr/sbin/redhat-config-printer
	/usr/sbin/redhat-config-kickstart      /usr/sbin/redhat-config-printer-gui
	/usr/sbin/redhat-config-network        /usr/sbin/redhat-config-printer-tui
	/usr/sbin/redhat-config-network-cmd    /usr/sbin/redhat-config-proc
	/usr/sbin/redhat-config-network-druid  /usr/sbin/redhat-config-services
	
	A program indításához -
	# /usr/sbin/redhat-config-bind &amp;
	# /usr/sbin/redhat-config-network &amp;
	  
	Majd próbálkozz más parancsokkal.
		</programlisting>
          </para>
        </listitem>
        <listitem>
          <para>
            Vizuális valamint Samba segédprogramok és egyebek megtalálhatók a 
            <ulink url="
              http://www.ibiblio.org/pub/Linux/system/admin/frontends/!INDEX.html 
              "> 
              http://www.ibiblio.org/pub/Linux/system/admin/frontends/!INDEX.html 
            </ulink>
            és 
            <ulink url="
              http://www.ibiblio.org/pub/Linux/system/admin/!INDEX.html "> 
              http://www.ibiblio.org/pub/Linux/system/admin/!INDEX.html 
            </ulink>
	    honlapokon.
          </para>
        </listitem>
        <listitem>
          <para>
            Rendszer, hálózati és adminisztrációs segédprogramok találhatók a 
            <ulink url="
              http://gd.tuwien.ac.at/opsys/linux/applications/text1.html#sysad 
              "> 
              http://gd.tuwien.ac.at/opsys/linux/applications/text1.html#sysad 
            </ulink>
	    honlapon.
          </para>
        </listitem>
        <listitem>
          <para>
            Képernyő-alapú adminisztrációs segédprogramok a Linux Refresher webhelyről: 
            <ulink url="
              http://linuxrefresher.com/maintenance/admgui/guiconf.htm "> 
              http://linuxrefresher.com/maintenance/admgui/guiconf.htm 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            SuSE YAST adminisztrációs segédprogram, Redhat /usr/sbin/redhat-conf* és egyéb 
	    segédprogramok:
            <ulink url="
              http://freshmeat.net/browse/253/?topic_id=253 "> 
              http://freshmeat.net/browse/253/?topic_id=253 
            </ulink>
            <ulink url="
              http://freshmeat.net/browse/201/?topic_id=201 "> 
              http://freshmeat.net/browse/201/?topic_id=201 
            </ulink>
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <para>
      Linux rendszer-adminisztrációval kapcsolatos felhasználói kézikönyvek:
      <itemizedlist>
        <listitem>
          <para>
            <ulink url="
              http://tldp.org/guides.html "> http://tldp.org/guides.html 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="
              http://tldp.org/LDP/lame/LAME/linux-admin-made-easy/index.html 
              "> 
              http://tldp.org/LDP/lame/LAME/linux-admin-made-easy/index.html 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="	
              http://tldp.org/LDP/nag2/index.html "> 
              http://tldp.org/LDP/nag2/index.html 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Linux rendszer-adminisztrációval kapcsolatos gyakorlatok: 
            <ulink url="
              http://www.yolinux.com/TUTORIALS/LinuxTutorialSysAdmin.html "> 
              http://www.yolinux.com/TUTORIALS/LinuxTutorialSysAdmin.html 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="
              http://www-106.ibm.com/developerworks/views/linux/tutorials.jsp 
              "> IBM Linux gyakorlatok 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="
              http://tariqnazir.tripod.com/unix.html "> 
              http://tariqnazir.tripod.com/unix.html 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="
              http://www.unixtools.com "> http://www.unixtools.com 
            </ulink>
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <para>
      Rendszer-adminisztrációs 
      System Administration magazin: 
      <itemizedlist>
        <listitem>
          <para>
            <ulink url="
              http://www.samag.com/ "> http://www.samag.com/ 
            </ulink>
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <para>
      Linux rendszer-adminisztrációs tanfolyamok: 
      <itemizedlist>
        <listitem>
          <para>
            Online India, Pune: 
            <ulink url="
              http://www.nixcraft.com/services/education/redhat/ "> 
              http://www.nixcraft.com/services/education/redhat/ 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Online UK : 
            <ulink url="
              http://www.firstalt.co.uk/courses/la2.html "> 
              http://www.firstalt.co.uk/courses/la2.html 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Online UK : 
            <ulink url="
              http://training.gbdirect.co.uk/courses/linux/running_linux_in_the_enterprise.html 
              "> 
              http://training.gbdirect.co.uk/courses/linux/running_linux_in_the_enterprise.html 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Online USA : 
            <ulink url="
              http://www.sgi.com/support/custeducation/courses/linux/sys_admin.html 
              "> 
              http://www.sgi.com/support/custeducation/courses/linux/sys_admin.html 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Online USA : 
            <ulink url="
              http://www.traininghott.com/Courses/Linux-System-Admin-Hands-On-Training-Course-Class-Seminar-NIS-DNS-DHCP-LILO.htm?source=findwhat_keyword=linux-admin-group 
              "> HOTT Training 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Google directory: 
            <ulink url="
              http://www.google.com/search?q=courses+Linux+system+admin+&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8 
              "> Google Linux System Admin education 
            </ulink>
          </para>
        </listitem>
      </itemizedlist>
    </para>
  </sect1>
  <sect1 id="apt-get">
    <title>
      Telepítés, frissítés fénysebességgel, az apt-get segítségével 
      (Redhat, Debian, Suse, Mandrake, egyéb) 
    </title>
    <para>
      Automatizálható a Linux rendszer karbantartása egy olyan használható 
      segédprogrammal, mint az apt-get. Az apt-get roppant hatékony, világszerte 
      milliónyi linuxos gépen használják. Az apt-get RedHat és Debian Linux 
      alapokon működik. Az RPM és Deb csomagokat támogató disztribúciókon használható. 
      A disztribúciók legtöbbjén használható; ha mégsem, nagyon könnyen 
      átszabhatod a forráskódját. A Mandrake-ben használt eszköznek urpmi a neve.
      <itemizedlist>
        <listitem>
          <para>
            Ha RedHat Linuxot használsz, töltsd le az apt-get csomagot az
	    <ulink url="http://apt.freshrpms.net">
              Apt for Redhat Linux 
            </ulink>
	    (Apt a RedHat Linuxhoz) honlapról.
          </para>
        </listitem>
        <listitem>
          <para>
            A további részletekről az  
            <ulink url="http://freshrpms.net/apt">
              Apt for Redhat Linux 
            </ulink>
	    (Apt a RedHat Linuxhoz) honlapon olvashatsz.
          </para>
        </listitem>
        <listitem>
          <para>
            Alaposan olvasd át a dokumentációt mielőtt használnád. 
	    Olvasd el a 
            <ulink url="http://www.debian.org/doc/ddp">
              Debian Docs 
            </ulink>
            és 
            <ulink url="http://www.debian.org/doc/user-manuals">
              User's Manuals 
            </ulink>
            (Felhasználói kézikönyvek) továbbá 
            <ulink url="http://www.debian.org/doc/user-manuals#apt-howto">
              APT HOWTO 
            </ulink>
            honlapokat és válaszd ki a megfelelő nyelvet, például 
            <ulink url="http://www.debian.org/doc/manuals/apt-howto/index.en.html">
              English: HTML 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://bazar.conectiva.com.br/~godoy/apt-howto">
              Apt+RPM howto 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://apt4rpm.sourceforge.net">
              APT for RPM Based Linux Distributions 
            </ulink>
	    (APT az RPM-alapú Linux terjesztésekhez)
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.debian.org/doc/manuals/apt-howto/ch-distros.en.html">
              List of Distributions which support APT 
            </ulink>
	    (Az APT programot támogató terjsztések listája)
          </para>
        </listitem>
        <listitem>
          <para>
            Nézd meg a YUM segédprogramot a 
            <ulink url="http://www.linux.duke.edu/projects/yum">
              YUM - Yellowdog Updater, Modified 
            </ulink>
            honlapon. 
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <para>
      Többet szeretnél tudni az apt-get parancsról? Csak nézd meg a súgóját 
      a következő bash shell-ben kiadott paranccsal: 
      <programlisting format="linespecific">
		$ apt-get -h  | more
			  
		apt 0.5.5cnc6 for linux i386 compiled on Jul 19 2003 21:23:24
		Usage: apt-get [options] command
			   apt-get [options] install|remove pkg1 [pkg2 ...]
			   apt-get [options] source pkg1 [pkg2 ...]
			  
		apt-get is a simple command line interface for downloading and
		installing packages. The most frequently used commands are update
		and install.
			  
		Commands:
		   update - Retrieve new lists of packages
		   upgrade - Perform an upgrade
		   install - Install new packages (pkg is libc6 not libc6.rpm)
		   remove - Remove packages
		   source - Download source archives
		   build-dep - Configure build-dependencies for source packages
		   dist-upgrade - Distribution upgrade, see apt-get(8)
		   clean - Erase downloaded archive files
		   autoclean - Erase old downloaded archive files
		   check - Verify that there are no broken dependencies
			  
		Options:
		  -h  This help text.
		  -q  Loggable output - no progress indicator
		  -qq No output except for errors
		  -d  Download only - do NOT install or unpack archives
		  -s  No-act. Perform ordering simulation
		  -y  Assume Yes to all queries and do not prompt
		  -f  Attempt to continue if the integrity check fails
		  -m  Attempt to continue if archives are unlocatable
		  -u  Show a list of upgraded packages as well
		  -b  Build the source package after fetching it
		  -D  When removing packages, remove dependencies as possible
		  -c=? Read this configuration file
		  -o=? Set an arbitary configuration option, eg -o dir::cache=/tmp
		See the apt-get(8), sources.list(5) and apt.conf(5) manual
		pages for more information and options.
							   This APT has Super Cow Powers.
	  </programlisting>
    </para>
    <para>
      A kézikönyv oldal a következő módon tekinthető meg: 
      <programlisting format="linespecific">
			man apt-get
	  In the bottom of manual page, look at "See Also" section
			man apt.conf
			man apt-cache
			man apt-cdrom
	  </programlisting>
    </para>
    <para>
      Egy példa az apt-get használatára: 
      <programlisting format="linespecific">
			apt-get -f  upgrade postgresql-contrib
			apt-get  upgrade postgresql-contrib
			apt-get  install postgresql-contrib
			apt-get  install gaim
			apt-get dist-upgrade
		</programlisting>
    </para>
    <sect2 id="sourcecode_apt-get">
      <title>
        Az "apt-get" forráskódja 
      </title>
      <para>
        Letöltheted és újrafordíthatod az apt-get forráskódját a 
	saját terjesztésedhez. Az apt-get forráskódja letölthető a
        <ulink url="http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt">
          http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt 
        </ulink>
        honlapról. 
      </para>
    </sect2>
    <sect2 id="rpmfind_tool">
      <title>
        Az "rpmfind" segédprogram 
      </title>
      <para>
        Az apt-get programtól függetlenül az rpmfind is használható a RedHat-ban. 
	Az rpmfind néhány dologban hasonlít az apt-get segédprogramra. Látogass el 
	az rpmfind honlapjára:
        <ulink url="http://rpmfind.net/linux/rpmfind">
          http://rpmfind.net/linux/rpmfind 
        </ulink>
        . Az rpmfind egy olyan segédprogram, amely megkeresi, telepíti és 
	önműködően frissíti a helyi gépeden lévő RPM fájlokat. Az rpmfind 
	webhelyét megtalálod a 
        <ulink url="http://rpmfind.net">
          http://rpmfind.net 
        </ulink>
        címen. 
      </para>
    </sect2>
  </sect1>
  <sect1 id="linux_boot_process">
    <title>
      Haladóknak szóló témák - A Linux rendszerindítási folyamata 
    </title>
    <para>
      Ez a rész nem igazán érdekes az átlagos "Józsi, otthoni PC-felhasználó" számára, 
      inkább irányul azok felé, akik számítógép-tudományos háttérrel rendelkeznek.
    </para>
    <para>
      A betöltési folyamat a következő: CPU-> VGA-> Power-On-Self-Test-> SCSI-> 
      Boot Manager-> Lilo boot loader-> kernel-> init-> bash. A firmware és szoftver 
      programok különböző üzeneteket adnak, amikor a számítógép és a Linux életre kel.
    </para>
    <para>
      A Linux betöltési folyamatának részletes bemutatása:
      <orderedlist inheritnum="ignore" continuation="restarts">
        <listitem>
          <para>
            Az alaplapon lévő BIOS előidézi a videokártya BIOS 
	    inicializálását
          </para>
        </listitem>
        <listitem>
          <para>
            Az alaplapon lévő BIOS inicializálja önmagát
          </para>
        </listitem>
        <listitem>
          <para>
            Az SCSI vezérlőn lévő BIOS inicializálja önmagát
          </para>
        </listitem>
        <listitem>
          <para>
            Hardveres összegzés: az alaplapi BIOS ezután kiírja a következő 
	    összegzést a hardver tartalmáról. Majd futtatja a vírusellenőrző kódját, 
	    ami megváltozott indítószektorokat (boot sector) keres (ha engedélyezve van - a lektor).
          </para>
        </listitem>
        <listitem>
          <para>
            BootManager menü : a Master Boot Record (MBR) kiolvasásra kerül az első 
	    merevlemezen, a DOS hagyományaihoz híven, a 0x00007c00 címre, és a 
	    processzor elkezdi végrehajtani az ott leírt utasításokat. Ez az MBR 
	    betöltőkód beolvassa az aktív DOS partíció első szektorában lévő kódot.
          </para>
        </listitem>
        <listitem>
          <para>
            A Lilo elindul: ha a Linuxot választottad és ha azt a LILO-val telepítetted, 
	    akkor betöltődik a 0x00007c00 címre. A Lilo kiírja a LILO üzenetet az 
	    előrehaladásáról, egyenként írva ki a betűket. Az első "L" betűt akkor írja 
	    ki, miután a Lilo átmozgatta magát egy jobb helyre, mint például a 0x0009A000 
	    címre. Az "I" jelenik meg, mielőtt elkezdené a másodszintű betöltőkódját. 
	    A másodszintű betöltő írja ki a következő "L"-t, betölti a rendszermag 
	    részeire mutató leírókat, és végül kiírja a végső "O" betűt. A leírók a 
	    0x0009d200 címen helyeződnek el. A rendszerindítási üzenet és a parancssor, 
	    ha úgy adták meg, kiíródik. A "tab" megnyomása a promptnál teszi lehetővé, 
	    hogy a felhasználó rendszert válasszon, és parancssori opciókat adjon át a 
	    rendszermagnak, a meghajtóinak és az "init" programnak. Ezen kívül környezeti 
	    változók is megadhatók ennél a pontnál. 
            <programlisting>
A következő sor a /boot/message fájlból származik:
&gt;
&gt;
&gt;
 Press  to list available boot image labels. 
 (Nyomj Tab-ot a kiválasztható rendszerindító fájlok (boot image) címkéinek megtekintéséhez)
A következő sor az /sbin/lilo promptjából származik:
boot:
Figyelem: ha a Lilo-t nem használjuk, akkor a rendszermag elejébe, 
a linux/arch/i386/boot/bootsect.S-be épített kód kiírja a "Loading" 
üzenetet és folytatja.
A Lilo kiírja a következőt, amint tölti be a rendszermag kódját. 
A "Linux-2.2.12" szöveget a "label=..." megadásából veszi a lilo.conf-ból.
Loading linux-2.2.12..........
		</programlisting>
          </para>
        </listitem>
        <listitem>
          <para>
            A /linux/arch/i386/boot/setup.S fájlban található rendszermag-kód 
	    végzi el az átkapcsolást a processzor valós (DOS) módjából a védett 
	    (teljes 32 bites) üzemmódba. A Trampoline.S és Trampoline32.S nevű 
	    kódrészek segítik az átkapcsolást. A kisebb rendszermag fájlok (zImage) 
	    kitömörítődnek, és betöltődnek a 0x00010000 címre. A nagyobb fájlok 
	    (bzImage) ehelyett a 0x00100000 címre töltődnek. Ez a kód állítja 
	    be a regisztereket, kicsomagolja a tömörített rendszermagot 
	    (aminek az elején a linux/arch/i386/head.S található), kiírja a 
	    következő két sort a linux/arch/i386/boot/compressed/misc.c 
	    fájlból:
	    <programlisting>
Uncompressing Linux... Ok. 
Booting the kernel. 
	    </programlisting>
	    Az i386-specifikus setup.S most már bevégezte dolgát, és elugrik a 
	    0x00010000 (vagy 0x00100000) címre, hogy elindítsa az általános 
	    Linux kódot.
            <itemizedlist>
              <listitem>
                <para>
                  Processzor, konzol és memória inicializálása: ez futtatja a 
		  linux/arch/i386/head.S-et, ami azonnal elugrik a 
		  linux/init/main.c fájlban lévő start_kernel(void)
		  függvényhez, ahol a megszakításokat újradefiniálják. 
		  A linux/kernel/module.c ezután betölti a konzol és a 
		  PCI busz meghajtóit. Ettől a ponttól kezdve a rendszermag 
		  üzenetei a memóriában is tárolódnak, és hozzáférhetők a 
		  /bin/dmesg használatával. Általában később átkerülnek a 
		  /var/log/message fájlba is, végső tárolásra.
                </para>
              </listitem>
              <listitem>
                <para>
                  A PCI busz inicializálása: a linux/init/main.c fájlban lévő 
		  mpci_init() függvény váltja ki a következő, 
		  a linux/arch/i386/kernel/bios32.c fájlban lévő sorok kiírását:
                </para>
              </listitem>
              <listitem>
                <para>
                  Hálózat inicializálása: a linux/init/main.c fájlban lévő 
		  socket_init() függvény végzi el a hálózat inicializálását:
                  <programlisting>
linux/net/socket.c prints:
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
linux/net/unix/af_unix.c prints:
NET4: Unix domain sockets 1.0 for Linux NET4.0.
linux/net/ipv4/af_inet.c prints:
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
linux/net/ipv4/ip_gre.c prints:
GRE over IPv4 tunneling driver
linux/net/core/dev.c prints:
early initialization of device gre0 is deferred
linux/net/core/rtnetlink.c prints:
Initializing RT netlink socket
					</programlisting>
                </para>
              </listitem>
              <listitem>
                <para>
                  A Kernel Idle Thread (üresjárati szál, a 0. folyamat) elindulása: 
		  ennél a pontnál egy rendszermag-folyamat indul el, ami az init() 
		  függvényt futtatja, ami a linux/init/main.c fájlban definiált 
		  rutinok egyike. Ez az init() nem összetévesztendő az /sbin/init 
		  programmal, ami a rendszermag elindulása után kezd el futni. 
		  A linux/init/main.c fájlban lévő mkswapd_setup() függvény váltja 
		  ki a következő, a linux/mm/vmscan.c fájlból származó sorok kiírását: 
		  Starting kswapd v1.5 
                </para>
              </listitem>
              <listitem>
                <para>
                  Eszközmeghajtók inicializálása: a linux/arch/i386/kernel/setup.c 
		  rendszermag-rutin ezek után inicializálja az eszközöket és a 
		  fájlrendszereket (beépítve a rendszermagba??). A következő sorokat 
		  állítja elő, majd elágazik (fork) az /sbin/init-re: 
                  <itemizedlist>
                    <listitem>
                      <para>
                        Általános párhuzamos port inicializálás: 
			a linux/drivers/misc/parport_pc.c párhuzamos port 
			inicializáló rutin írja ki a következőket:
                      </para>
                    </listitem>
                    <listitem>
                      <para>
                        Karakteres eszközök inicializálása: a következő 3 sor a 
			linux/drivers/char/serial.c fájlból származik: 
                      </para>
                    </listitem>
                    <listitem>
                      <para>
                        Block Device Initializations : 
                        linux/drivers/block/rd.c prints: RAM disk driver 
                        initialized: 16 RAM disks of 8192K size 
                        linux/drivers/block/loop.c prints: loop: registered 
                        device at major 7 linux/drivers/block/floppy.c prints: 
                        Floppy drive(s): fd0 is 1.44M, fd1 is 1.44M FDC 0 is a 
                        post-1991 82077 
                      </para>
                    </listitem>
                    <listitem>
                      <para>
                        SCSI busz inicializálása: a következő sorok a 
			linux/drivers/scsi alkönyvtárban lévő aic7xxx.c, 
			scsi.c, sg.c, sd.c vagy sr.c fájlokból származnak:
                      </para>
                    </listitem>
                  </itemizedlist>
                </para>
              </listitem>
              <listitem>
                <para>
                  A rendszermag Point-To-Point protokoll támogatásának 
		  inicializálása: a következő inicializálást a 
		  linux/drivers/net/ppp.c végzi.
                </para>
              </listitem>
              <listitem>
                <para>
                  A merevlemez-elrendezés vizsgálata: a következő sorok a 
		  linux/drivers/block/genhd.c fájlból származnak: 
                </para>
              </listitem>
            </itemizedlist>
          </para>
        </listitem>
        <listitem>
          <para>
            Init Program (Process 1) Startup : The program /sbin/init is 
            started by the "idle" process (Process 0) code in 
            linux/init/main.c and becomes process 1. /sbin/init then completes 
            the initialization by running scripts and forking additional 
            processes as specified in /etc/inittab. It starts by printing: 
            INIT: version 2.76 booting and reads /etc/inittab. 
          </para>
        </listitem>
        <listitem>
          <para>
            A Bash parancsértelmező indulása: a bash shell, a /bin/bash 
	    indul el ezek után. A feléledése az /etc/profile szkript 
	    végrehajtásával kezdődik, ami beállítja a rendszerszintű 
	    környezeti változókat: 
          </para>
        </listitem>
      </orderedlist>
    </para>
    <sect2 id="bootprocess_urls">
      <title>
        Hivatkozások a betöltési folyamat témájában
      </title>
      <para>
        Nézd meg a következő forrásokat: 
        <itemizedlist>
          <listitem>
            <para>
              <ulink url="http://www.tldp.org/HOWTO/Bootdisk-HOWTO/x1440.html">
                The Linux Boot Process 
              </ulink>
	      (A Linux betöltési folyamata)
            </para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://www.tldp.org/HOWTO/Bootdisk-HOWTO/x88.html">
                Bootdisks and Boot Process 
              </ulink>
	      (Indítólemezek és a betöltési folyamat)
            </para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://ourworld.compuserve.com/homepages/KanjiFlash/SGVLUG.htm">
                Linux Boot Process - by San Gabreil LUG 
              </ulink>
	      (Linux betöltési folyamat - írta San Gabreil LUG)
            </para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://www.linuxnetmag.com/en/issue4/m4boot1.html">
                Boot Process (Netmag) 
              </ulink>
	      (Betöltési folyamat (Netmag))
            </para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://oldfield.wattle.id.au/luv/boot.html">
                Boot Process (LUG Victoria) 
              </ulink>
	      (Betöltési folyamat (LUG Victoria))
            </para>
          </listitem>
        </itemizedlist>
      </para>
    </sect2>
  </sect1>
  <sect1 id="other_formats">
    <title>
      Eme dokumentum más formátumai 
    </title>
    <para>
      Ezt a fejezetet 
      <ulink url="mailto:alavoor[AT]yahoo.com">
        Al Dev 
      </ulink>
      írta, (a 
      <ulink url="http://milkyway.has.it">
        "http://milkyway.has.it" 
      </ulink>
      és a 
      <ulink url="http://www.milkywaygalaxy.freeservers.com">
        "http://www.milkywaygalaxy.freeservers.com" 
      </ulink>
      webhelyen, tükrözései megtalálhatók a 
      <ulink url="http://www.angelfire.com/country/aldev0">
        angelfire 
      </ulink>
      , 
      <ulink url="http://www.geocities.com/alavoor/index.html">
        geocities 
      </ulink>
      , 
      <ulink url="http://aldev0.virtualave.net">
        virtualave 
      </ulink>
      , 
      <ulink url="http://members.fortunecity.com/aldev">
        Fortunecity 
      </ulink>
      , 
      <ulink url="http://aldev.freewebsites.com">
        Freewebsites 
      </ulink>
      , 
      <ulink url="http://members.tripod.lycos.com/aldev">
        Tripod 
      </ulink>
      , 
      <ulink url="http://www.101xs.com/101xs/aldev">
        101xs 
      </ulink>
      és 
      <ulink url="http://aldev0.50megs.com">
        50megs 
      </ulink>
      webhelyeken) 
    </para>
    <para>
      Ezt a dokumentumot 14 különböző formátumban terjesztik, ezek a következők: DVI, 
      Postscript, Latex, Adobe Acrobat PDF, LyX, GNU-info, HTML, RTF (Rich Text 
      Format), egyszerű szöveg, Unix man oldal, egyoldalas HTML fájl, SGML (Linuxdoc 
      formátum), SGML (Docbook formátum), MS WinHelp formátum. 
    </para>
    <para>
      A dokumentum megtalálható a 
      <itemizedlist>
        <listitem>
          <para>
            <ulink url="http://www.tldp.org">
              "http://www.tldp.org" 
            </ulink>
            webhelyen, itt kattints a "HOWTO" hivatkozásra és keresd a 
	    CTRL-f vagy ALT-f segítségével a dokumentum nevét a honlapon. 
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <para>
      A következő tüköroldalakon is megtalálhatod ezt a dokumentumot: 
      <itemizedlist>
        <listitem>
          <para>
            <ulink url="http://www.caldera.com/LDP/HOWTO">
              "http://www.caldera.com/LDP/HOWTO" 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.linux.ucla.edu/LDP">
              "http://www.linux.ucla.edu/LDP" 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.cc.gatech.edu/linux/LDP">
              "http://www.cc.gatech.edu/linux/LDP" 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.redhat.com/mirrors/LDP">
              "http://www.redhat.com/mirrors/LDP" 
            </ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            Egyéb, hozzád közeli tüköroldalak (hálózati címtől függ) találhatók a 
            <ulink url="http://www.tldp.org/mirrors.html">
              "http://www.tldp.org/mirrors.html" 
            </ulink>
            honlapon. Válassz egy webhelyet és lépj be az /LDP/HOWTO/xxxxx-HOWTO.html könyvtárba. 
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <para>
      <itemizedlist>
        <listitem>
          <para>
            A dokumentumot egyszerű tar csomagként is letöltheted HTML, 
	    DVI, Postscript vagy SGML formátumban a 
            <ulink url="ftp://www.tldp.org/pub/Linux/docs/HOWTO/other-formats/">
              "ftp://www.tldp.org/pub/Linux/docs/HOWTO/other-formats/" 
            </ulink>
            és 
            <ulink url="http://www.tldp.org/docs.html#howto">
              "http://www.tldp.org/docs.html#howto" 
            </ulink>
	    honlapokról. 
          </para>
        </listitem>
        <listitem>
          <para>
            A sima szöveges formátum megtalálható az 
            <ulink url="ftp://www.tldp.org/pub/Linux/docs/HOWTO">
              "ftp://www.tldp.org/pub/Linux/docs/HOWTO" 
            </ulink>
            tárhelyen illetve a 
            <ulink url="http://www.tldp.org/docs.html#howto">
              "http://www.tldp.org/docs.html#howto" 
            </ulink>
	    honlapon. 
          </para>
        </listitem>
        <listitem>
          <para>
            Egyoldalas HTML fájlként letöltheted a 
            <ulink url="http://www.tldp.org/docs.html#howto">
              "http://www.tldp.org/docs.html#howto" 
            </ulink>
	    honlapról. Az egyoldalas HTML fájlt a következő paranccsal állítható elő 
	    (olvasd az sgml2html kézikönyvoldalát): sgml2html -split 0 xxxxhowto.sgml 
          </para>
        </listitem>
        <listitem>
          <para>
            Más nyelvi (mint például francia, német, spanyol, kínai, japán) 
	    fordítások találhatók a 
            <ulink url="ftp://www.tldp.org/pub/Linux/docs/HOWTO">
              "ftp://www.tldp.org/pub/Linux/docs/HOWTO" 
            </ulink>
            és 
            <ulink url="http://www.tldp.org/docs.html#howto">
              "http://www.tldp.org/docs.html#howto" 
            </ulink>
	    honlapokon. Jól jön bármely segítség tőletek a más nyelvre való 
	    fordításhoz (íme :) - a ford.) 
          </para>
        </listitem>
      </itemizedlist>
      (Ez a rész mára elavult - a lektor) A dokumentum az "SGML-Tools" nevű eszköz 
      segítségével készült, amely letölthető a 
      <ulink url="http://www.sgmltools.org">
        "http://www.sgmltools.org" 
      </ulink>
      webhelyről. A forrás lefordítása után a következő parancsot 
      használhatod a konvertáláshoz: 
      <itemizedlist>
        <listitem>
          <para>
            sgml2html xxxxhowto.sgml (többoldalas HTML fájlt készít) 
          </para>
        </listitem>
        <listitem>
          <para>
            sgml2html -split 0 xxxxhowto.sgml (egyoldalas HTML fájlt készít) 
          </para>
        </listitem>
        <listitem>
          <para>
            sgml2rtf xxxxhowto.sgml (RTF fájlt készít) 
          </para>
        </listitem>
        <listitem>
          <para>
            sgml2latex xxxxhowto.sgml (LaTeX fájlt készít) 
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <sect2 id="acrobatpdf">
      <title>
        Acrobat PDF formátum 
      </title>
      <para>
        PDF fájlt a postscript fájl felhasználásával lehet készíteni, vagy az acrobat 
        <emphasis remap="bf">
          distill 
        </emphasis>
        illetve 
        <emphasis remap="bf">
          Ghostscript 
        </emphasis>
        segítségével. A postscript fájlt DVI-ből lehet elkészíteni, 
	ami viszont közvetlenül LaTex fájlból készül. A distill szoftver letölthető a
        <ulink url="http://www.adobe.com">
          "http://www.adobe.com" 
        </ulink>
        webhelyről. Alább egy egyszerű példa látható: 
        <programlisting format="linespecific">
	bash$ man sgml2latex
	bash$ sgml2latex filename.sgml
	bash$ man dvips
	bash$ dvips -o filename.ps filename.dvi
	bash$ distill filename.ps
	bash$ man ghostscript
	bash$ man ps2pdf
	bash$ ps2pdf input.ps output.pdf
	bash$ acroread output.pdf &amp;
        </programlisting>
        Esetleg használhatod a következő Ghostscript parancsot: 
        <emphasis remap="bf">
          ps2pdf 
        </emphasis>
        . A ps2pdf hasonlóan működik mint az Adobe Acrobat Distiller program, 
	és majdnem minden funkcióját tudja: konvertálja a PostScript fájlokat 
	Portable Document Format (PDF) formátumba. A
        <emphasis remap="bf">
          ps2pdf 
        </emphasis>
        konvertálást egy nagyon kicsi parancsszkriptben (batch fájlban) valósították meg, 
	ami meghívja a GhostScript programot, kiválasztva egy speciális "kimeneti eszközt", 
	amely a 
        <emphasis remap="bf">
          pdfwrite 
        </emphasis>
        . A ps2pdf használatához a pdfwrite eszközt be kell szúrni a Makefile-ba, 
	a GhostScript programfordításakor; olvasd a fordítási dokumentációt továbi
	részletekért. 
      </para>
    </sect2>
    <sect2 id="linuxdoc2docbook">
      <title>
        Konvertálás Linuxdoc-ról Docbook formátumra 
      </title>
      <para>
        (Ez a fejezet mára elavult, bár bizonyos részei használhatók - a lektor)
	Ez a dokumentum Linuxdoc SGML formátumban készült. A Docbook SGML 
	formátum helyettesíti a Linuxdoc formátumot, mivel sokkal több 
	szolgáltatása van, mint annak. A Linuxdoc formátum nagyon egyszerű 
	és könnyű használni. A formátumának Docbook SGML-re való konvertálásához 
	használd a 
        <emphasis remap="bf">
          ld2db.sh 
        </emphasis>
        szkriptet, valamint néhány perl szkriptet. Az ld2db kimenete nem 100%-ig tiszta, 
	ezért használd a 
        <emphasis remap="bf">
          clean_ld2db.pl 
        </emphasis>
        perl szkriptet. Lehet, hogy kézzel is kell javítani néhány sort a 
	doksiban. 
        <itemizedlist>
          <listitem>
            <para>
              Töltsd le a ld2db programot a
              <ulink url="http://www.dcs.gla.ac.uk/~rrt/docbook.html">
                "http://www.dcs.gla.ac.uk/~rrt/docbook.html" 
              </ulink>
              vagy a 
              <ulink url="http://milkyway.has.it">
                "http://milkyway.has.it" 
              </ulink>
              , 
              <ulink url="http://www.milkywaygalaxy.freeservers.com">
                Milkyway Galaxy site 
              </ulink>
	      webhelyről.
            </para>
          </listitem>
          <listitem>
            <para>
              A cleanup_ld2db.pl perl szkriptet letöltheted a 
              <ulink url="http://milkyway.has.it">
                "http://milkyway.has.it" 
              </ulink>
              és 
              <ulink url="http://www.milkywaygalaxy.freeservers.com">
                Milkyway Galaxy site 
              </ulink>
	      webhelyekről. 
            </para>
          </listitem>
        </itemizedlist>
        Az ld2db.sh nem 100%-ig korrekt, sok hibát fogsz kapni, mikor kiadod a  
        <programlisting format="linespecific">
		bash$ ld2db.sh file-linuxdoc.sgml db.sgml
		bash$ cleanup.pl db.sgml &gt; db_clean.sgml
		bash$ gvim db_clean.sgml 
		bash$ docbook2html db.sgml
        </programlisting>
        parancsokat. Valószínűleg kézzel kell szerkesztened néhány kisebb hibát, 
	miután futtattad a szkriptet. Például a záró &lt;/Para&gt; tag-eket 
	neked kell kitenni minden &lt; Listitem&gt; után. 
      </para>
    </sect2>
    <sect2 id="mswinhelp">
      <title>
        Konvertálás MS WinHelp formátumra 
      </title>
      <para>
        Átalakíthatod a Microsoft Windows Help formátumára is az SGML dokumentumot, 
	először konvertáld át HTML formátumba a következő parancsok használatával: 
        <programlisting format="linespecific">
		bash$ sgml2html xxxxhowto.sgml     (ez HTML fájlt készít)
		bash$ sgml2html -split 0   xxxxhowto.sgml (to generate a single page html file)
        </programlisting>
        Majd használd a 
        <ulink url="http://javadocs.planetmirror.com/htmltohlpe.html">
          HtmlToHlp 
        </ulink>
        segédprogramot. Ezen kívül használható az sgml2rtf is, majd az RTF fájlokat 
	lehet a WinHelp legyártásához felhasználni. 
      </para>
    </sect2>
    <sect2 id="readformats">
      <title>
	A különböző formátumok olvasása 
      </title>
      <para>
        A dokumentum dvi formátumban történő olvasásához használd az 
	xdvi programot. Az xdvi a tetex-xdvi*.rpm csomagban van a RedHat 
	Linuxban, amit meg lehet találni a Control Panel | Applications | 
	Publishing | TeX menüpontokon keresztül. Az olvasáshoz add ki a 
        <screen format="linespecific">
          xdvi -geometry 80x90 howto.dvi man xdvi 
        </screen>
        parancsot. Méretezd át az ablakot egérrel. A navigáláshoz használd a 
	nyílbillentyűket, a Page Up/Down gombokat, de az "f", "d", "u", "c", 
	"l", "r", "p", "n" billentyűket is a fel/le mozgáshoz, középre igazításhoz, 
	következő/előző oldal kéréséhez stb. A haladó menü kikapcsolásához nyomj "x"-et.
      </para>
      <para>
        A postscript fájlt a "gv" (ghostview) vagy a "ghostscript" programmal 
	nézheted meg. A ghostscript program a ghostscript*.rpm csomagban van, 
	a gv pedig a gv*.rpm-ben a RedHat Linux alatt, ami elérhető a 
	ControlPanel | Applications | Graphics menüpontokon keresztül. 
	A gv program sokkal felhasználóbarátabb, mint a ghostscript. 
	Ezenkívül a ghostscipt és a gv is elérhető más platformokon, mint OS/2, 
	Windows 95 és NT, még ezeken is megnézheted ezt a doksit. 
      </para>
      <para>
        <itemizedlist>
          <listitem>
            <para>
              A Windows 95, OS/2 és egyéb operációs rendszerekhez beszerezhető a 
              <ulink url="http://www.cs.wisc.edu/~ghost">
                "http://www.cs.wisc.edu/~ghost" 
              </ulink>
	      webhelyről.
            </para>
          </listitem>
        </itemizedlist>
      </para>
      <para>
        A postscipt dokumentum olvasásához add ki a 
        <screen format="linespecific">
          gv howto.ps ghostscript howto.ps 
        </screen>
	parancsot. 
      </para>
      <para>
        A HTML formátumú doksit olvashatod a Netscape Navigator, Microsoft 
        Internet explorer, Redhat Baron és vagy 10 másik böngészőprogram 
	segítségével. 
      </para>
      <para>
        A latex, LyX kimenet olvasásához használd a LyX X-Window előtétprogramot a 
	latex programmal. 
      </para>
    </sect2>
  </sect1>
  <sect1 id="create_initrd">
    <title>
      "A" függelék - initrd.img fájl készítése 
    </title>
    <para>
      Az 
      <emphasis remap="bf">
        initrd 
      </emphasis>
      az "initial ramdisk" (kezdeti RAM-lemez) rövidítése. Egy RAM-lemezen elegendő 
      fájl fér el a szükséges eszközmeghajtók tárolásához. Ezek a meghajtók kellenek 
      ahhoz, hogy a rendszermag fel tudja csatolni a / könyvtárat, és el tudja 
      indítani az init-et. Az initrd-t tipikusan a hardver átmeneti 
      "beindítására" használjuk, ezután a valódi rendszermag (vmlinuz) 
      folytatja a betöltési folyamatot. Például, ha a rendszermag nem 
      tudja olvasni az scsi merevlemezt az scsi eszközmeghajtó betöltése 
      előtt. (Megoldás: tölts be egy initrd rendszermagot, amely majd 
      betölti az igazi rendszermagot és használd az initrd-t az scsi 
      betöltési problémájának megoldására.) 
    </para>
    <para>
      Megszabadulhatsz az "initrd.img" fájltól és nem szükséges akkor, 
      ha az SCSI eszközvezérlőket fixen a rendszermagba fordítod, 
      nem pedig modulba rakod. (Sokan ajánlják ezt). 
    </para>
    <sect2>
      <title>
        Az mkinitrd használata 
      </title>
      <para>
        Az mkinitrd segédprogram készíti el az initrd fájlt, egyetlen paranccsal. 
	Ez a parancs a RedHat jellegzetessége. A Linux többi terjesztéseinél 
	hasonló parancsok létezhetnek. Nagyon kényelmes program. 
      </para>
      <para>
        Olvasd el az mkinitrd kézikönyv oldalát. 
      </para>
      <para>
        <programlisting format="linespecific">
	/sbin/mkinitrd --help   # vagy egyszerűen: "mkinitrd --help"
	usage: mkinitrd [--version] [-v] [-f] [--preload &lt;module&gt;]
	       [--omit-scsi-modules] [--omit-raid-modules] [--omit-lvm-modules]
	       [--with=&lt;module&gt;] [--image-version] [--fstab=&lt;fstab&gt;] [--nocompress]
	       [--builtin=&lt;module&gt;] [--nopivot] &lt;initrd-image&gt; &lt;kernel-version&gt;
	       (example: mkinitrd /boot/initrd-2.2.5-15.img 2.2.5-15)
	# olvasd el a kezikonyv oldalt .....
	man mkinitrd
	su - root
	# Az alábbi parancs elkészíti az initrd fájlt
	mkinitrd  ./initrd-2.4.18-19.8.0custom.img   2.4.18-19.8.0custom
	ls -l initrd-2.4.18-19.8.0custom.img
	-rw-r--r--    1 root     root       127314 Mar 19 21:54 initrd-2.4.18-19.8.0custom.img
	cp  ./initrd-2.4.18-19.8.0custom.img   /boot
        </programlisting>
      </para>
      <para>
        A következő fejezetekben olvashatsz arról, 
	hogyan kell kézzel elkészíteni az initrd fájlt. 
      </para>
    </sect2>
    <sect2>
      <title>
        Rendszermag-dokumentációk 
      </title>
      <para>
        A /boot/initrd.img elkészítéséről szól az 
        /usr/src/linux/Documentation/initrd.txt leírás, valamint a 
        <ulink url="http://www.tldp.org/HOWTO/mini/Loopback-Root-FS-3.html#ss3.3">
          Loopback-Root-mini-HOWTO 
        </ulink>
        . 
      </para>
    </sect2>
    <sect2>
      <title>
        Linuxman Book 
      </title>
      <para>
        Egy részlet a 
        <ulink url="http://www.linuxman.com.cy/rute/node1.html">
          "http://www.linuxman.com.cy/rute/node1.html" 
        </ulink>
        31.7. fejezetéből.
      </para>
      <para>
        Az SCSI telepítésének buktatói és az initrd 
      </para>
      <para>
        A következő leírás némelyike nehezen lesz érthető anélkül, 
	hogy tudnál valamit a rendszermag-modulokról, amiket a 42. 
	fejezetben mutat be. Később térj vissza erre a fejezetre.
      </para>
      <para>
        Képzeljünk el egy rendszert, amiben egyetlen IDE lemez sincs, csak egy 
	SCSI lemez tartalmazza a telepített Linuxot. Vannak az SCSI lemezt 
	olvasó BIOS megszakítások, ugyanúgy, mint az IDE-hez, tehát a LILO vígan 
	hozzá tud férni egy SCSI partíción lévő rendszermaghoz. Azonban a 
	rendszermag "el fog veszni" a rendszermag-modulok nélkül [lásd 42. fejezet. 
	A rendszermag magától nem tudja az összes létező hardver elemet támogatni. 
	Ez általában egy fő részre (a rendszermag fájlra, amit ebben a fejezetben 
	tárgyalunk) és modulok százaira (betölthető részek, amik a /lib/modules alatt 
	találhatók) tagolható szét [ amik támogatják a sokféle típusú SCSI, hálózati, 
	hangeszközt stb. ], amely képes vezérelni azt a bizonyos SCSI meghajtót. 
	Így bár a rendszermag be tud töltődni és el tud indulni, de nem tudja 
	felcsatolni a gyökér fájlrendszert az SCSI modul előzetes betöltése nélkül. 
	Viszont a modul maga a gyökér fájlrendszeren foglal helyet a /lib/modules-ban. 
	Ez egy trükkös helyzet, és kétféle módon lehet megoldani: (a) vagy előre 
	engedélyezett (preenabled) SCSI támogatású rendszermagot, vagy (b) 
	egy initrd előzetes gyökér fájlrendszernek nevezett fájlt használunk. 
      </para>
      <para>
        Az első módszert ajánlom. Magától értetődő (bár időigényes) folyamat egy 
	olyan rendszermag elkészítése, ami beépített támogatást nyújt az SCSI 
	kártyádhoz (és nem egy külön modulban). A beépített SCSI és hálózati meghajtók 
	legtöbbször automatikus detektálást is végeznek, lehetővé téve az eszközhöz való 
	időközbeni hozzáférést - mindenféle kapcsoló megadása nélkül működnek. [lsqb ] 
	A 42. fejezet tárgyalja.] és ami még fontosabb, anélkül, hogy olvasnod kéne 
	a beállításukról. Ennek befordított hardvertámogatás a neve (a modulos 
	támogatással szemben). Az így készült rendszermag a modul méretével 
	lesz nagyobb. A 42. fejezet taglalja az ilyen fajta programfordítást. 
      </para>
      <para>
        A második módszer gyorsabb, de trükkösebb. A Linux támogat egy olyan dolgot, 
	amit initrd (initial RAM disk) néven ismernek. Ez egy kicsi, +1.5 MB méretű 
	fájlrendszer, amit a LILO tölt be, és a rendszermag a valódi gyökér fájlrendszer 
	helyett csatol fel. A rendszermag RAM-lemezként csatolja fel ezt a fájlrendszert, 
	végrehajtja a /linuxrc fájlt, majd felcsatolja a valódi fájlrendszert. 
      </para>
      <para>
        31.6 fejezet initrd fájl készítése 
      </para>
      <para>
        Kezdjük egy kis fájlrendszer elkészítésével. Készíts egy könyvtárat 
	[nbsp ]/initrd néven és másold át a következő fájlokat oda: 
      </para>
      <para>
        <programlisting format="linespecific">
	drwxr-xr-x    7 root     root         1024 Sep 14 20:12 initrd/
	drwxr-xr-x    2 root     root         1024 Sep 14 20:12 initrd/bin/
	-rwxr-xr-x    1 root     root       436328 Sep 14 20:12 initrd/bin/insmod
	-rwxr-xr-x    1 root     root       424680 Sep 14 20:12 initrd/bin/sash
	drwxr-xr-x    2 root     root         1024 Sep 14 20:12 initrd/dev/
	crw-r--r--    1 root     root       5,   1 Sep 14 20:12 initrd/dev/console
	crw-r--r--    1 root     root       1,   3 Sep 14 20:12 initrd/dev/null
	brw-r--r--    1 root     root       1,   1 Sep 14 20:12 initrd/dev/ram
	crw-r--r--    1 root     root       4,   0 Sep 14 20:12 initrd/dev/systty
	crw-r--r--    1 root     root       4,   1 Sep 14 20:12 initrd/dev/tty1
	crw-r--r--    1 root     root       4,   1 Sep 14 20:12 initrd/dev/tty2
	crw-r--r--    1 root     root       4,   1 Sep 14 20:12 initrd/dev/tty3
	crw-r--r--    1 root     root       4,   1 Sep 14 20:12 initrd/dev/tty4
	drwxr-xr-x    2 root     root         1024 Sep 14 20:12 initrd/etc/
	drwxr-xr-x    2 root     root         1024 Sep 14 20:12 initrd/lib/
	-rwxr-xr-x    1 root     root           76 Sep 14 20:12 initrd/linuxrc
	drwxr-xr-x    2 root     root         1024 Sep 14 20:12 initrd/loopfs/
        </programlisting>
      </para>
      <para>
        Az én rendszeremen, a initrd/bin/insmod fájl statikusan linkelt [ami azt jelenti, 
	hogy nem igényel megosztott könyvtárakat ], a /sbin/insmod.static fájlból - ez a 
	modutils-2.3.13 csomag része. Az initrd/bin/sash egy statikusan linkelt 
	parancsértelmező a sash-3.4 csomagból. Az insmod-ot újra is fordíthatod 
	forrásból, ha nincs statikus verziód. Esetleg másold be a szükséges DLL-eket a 
	/lib-ből az initrd/lib könyvtárba. (A szükséges DLL-ek listáját megkapod, 
	ha az "ldd /sbin/insmod" parancsot kiadod. Ne felejtsd el átmásolni a szimbolikus 
	linkeket sem, valamint futtatni a "strip -s {lib}" parancsot, a DLL-ek 
	méretének csökkentéséhez. 
      </para>
      <para>
        Most másold át az initrd/lib/ könyvtárba a szükséges SCSI modulokat. 
	Például, ha egy Adaptec AIC-7850 SCSI adaptered van, akkor az aic7xxx.o modul 
	kell a /lib/modules/{version}/scsi/aic7xxx.o fájlokból. Ezek után rakd be ezt a 
	initrd/lib/ könyvtárba. 
      </para>
      <para>
        <programlisting format="linespecific">
	-rw-r--r--    1 root     root       129448 Sep 27  1999 initrd/lib/aic7xxx.o
        </programlisting>
      </para>
      <para>
        Az initrd/linuxrc fájlnak egy szkriptet kell tartalmaznia, hogy betöltse az 
	összes modult a rendszermag számára, hogy hozzáférhessen az SCSI partícióhoz. 
	Ebben az esetben, csak az aic7xxx modul kell [ az insmod az eszköz IRQ-ira és 
	IO-címeire vonatkozó paramétereket is megkaphat, lásd a 42. fejezetet.]: 
      </para>
      <para>
        <programlisting format="linespecific">
	#!/bin/sash
	 
	aliasall
	 
	echo "Loading aic7xxx module"
	insmod /lib/aic7xxx.o 
        </programlisting>
      </para>
      <para>
        Alaposan ellenőrizd az összes jogosultságot, majd futtasd a chroot parancsot 
	a fájlrendszer teszteléséhez. 
      </para>
      <para>
        <programlisting format="linespecific">
	chroot ~/initrd /bin/sash
	/linuxrc
        </programlisting>
      </para>
      <para>
        Ezután készíts egy "fájlrendszer-fájlt" (file system image), hasonlóan a 19.9 fejezetben leírtakhoz: 
        <programlisting format="linespecific">
	dd if=/dev/zero of=~/file-inird count=2500 bs=1024
	losetup /dev/loop0 ~/file-inird
	mke2fs /dev/loop0
	mkdir ~/mnt
	mount /dev/loop0 ~/mnt
	cp -a initrd/* ~/mnt/
	umount ~/mnt
	losetup -d /dev/loop0
        </programlisting>
      </para>
      <para>
        Végül tömörítsd össze a fájlrendszert a gzip programmal, valamilyen néven: 
        <programlisting format="linespecific">
	gzip -c ~/file-inird &gt; initrd-&lt;kernel-version&gt;
        </programlisting>
      </para>
      <para>
        31.7 fejezet A lilo.conf módosítása az initrd használatához 
      </para>
      <para>
        A lilo.conf fájlt annak megfelelően kell megváltoztatni, hogy az initrd 
	fájlrendszert töltse be. Egyszerűen add hozzá az initrd kapcsolót. Például: 
      </para>
      <para>
        <programlisting format="linespecific">
	boot=/dev/sda
	prompt
	timeout = 50
	compact
	vga = extended
	linear
	image = /boot/vmlinuz-2.2.17
	        initrd = /boot/initrd-2.2.17
	        label = linux
	        root = /dev/sda1
	        read-only
        </programlisting>
      </para>
      <para>
        Figyeld meg a "linear" kapcsoló használatát. Ez egy BIOS trükk, amiről a 
	lilo(5) kézikönyv oldalán olvashatsz. Ez gyakran szükséges, viszont azt 
	eredményezheti, hogy az SCSI lemezek nem lesznek átvihetők különböző 
	BIOS-al rendelkező gépekre (azt jelenti, hogy újra le kell futtatni a 
	lilo-t, ha egy másik gépbe rakod át a lemezt).
      </para>
    </sect2>
  </sect1>
  <sect1 id="liloconf">
    <title>
      "B" függelék - lilo.conf mintafájl 
    </title>
    <sect2>
      <title>
        LILO forrásanyagok 
      </title>
      <para>
        A következő dokumentumokban olvashatsz a témáról: 
        <itemizedlist>
          <listitem>
            <para>
              <ulink url="http://www.tldp.org/HOWTO/mini/LILO.html">
                http://www.tldp.org/HOWTO/mini/LILO.html 
              </ulink>
            </para>
          </listitem>
          <listitem>
            <para>
              Olvasd a rendszereden lévő LILO dokumentációt: 
              <programlisting format="linespecific">
	# Használd a kghostview, ghostview vagy gv parancsot 
	kghostview /usr/share/doc/lilo-21.4.4/doc/user.ps
	  
	# A HTML formátum olvasásához tedd ezt: 
	mkdir $HOME/lilodocs
	cd $HOME/lilodocs
	cp /usr/share/doc/lilo-21.4.4/doc/user.tex  .
	latex2html user
	  
	# Ez létrehozza a html fájlokat az usr könyvtárban 
      		</programlisting>
            </para>
          </listitem>
          <listitem>
            <para>
              <xref linkend="grubconf"/>
              GRUB beállítófájl 
            </para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://www.tldp.org/HOWTO/LILO-crash-rescue-HOWTO.html">
                "http://www.tldp.org/HOWTO/LILO-crash-rescue-HOWTO.html" 
              </ulink>
              . 
            </para>
          </listitem>
        </itemizedlist>
      </para>
    </sect2>
    <sect2>
      <title>
        LILO hibaelhárítás 
      </title>
      <para>
        A csipogó (beeper) hibakód-táblázata: 
        <table frame="all">
          <title>
            Csipogó hibakód-táblázat 
          </title>
          <tgroup cols="2" align="left" colsep="1" rowsep="1">
            <colspec colname="c1"/>
            <colspec colname="c2"/>
            <thead>
              <row>
                <entry>
                  Kód 
                </entry>
                <entry>
                  Leírás 
                </entry>
              </row>
            </thead>
            <tbody>
              <row>
                <entry>
                  0 
                </entry>
                <entry>
                  PC-hangszóró hiba 
                </entry>
              </row>
              <row>
                <entry>
                  1 
                </entry>
                <entry>
                  DRAM frissítési hiba 
                </entry>
              </row>
              <row>
                <entry>
                  2 
                </entry>
                <entry>
                  Paritáshiba (Paritykring defect) 
                </entry>
              </row>
              <row>
                <entry>
                  3 
                </entry>
                <entry>
                  Hiba az alap 64K RAM-ban 
                </entry>
              </row>
              <row>
                <entry>
                  4 
                </entry>
                <entry>
                  Rendszeridőzítő hiba 
                </entry>
              </row>
              <row>
                <entry>
                  5 
                </entry>
                <entry>
                  Processzor hiba 
                </entry>
              </row>
              <row>
                <entry>
                  6 
                </entry>
                <entry>
                  Billentyűzet-vezérlő hiba 
                </entry>
              </row>
              <row>
                <entry>
                  7 
                </entry>
                <entry>
                  Virtuális mód hiba 
                </entry>
              </row>
              <row>
                <entry>
                  8 
                </entry>
                <entry>
                  A videomemória tesztje nem sikerült 
                </entry>
              </row>
              <row>
                <entry>
                  9 
                </entry>
                <entry>
                  hibás ROM-BIOS ellenőrző összeg 
                </entry>
              </row>
            </tbody>
          </tgroup>
        </table>
      </para>
      <para>
        2 rövid csipogás: a POST nem megfelelő. Hiba a hardver tesztben. 1 rövid 
	és 2 hosszú csipogás: video hiba. 1) Video ROM BIOS, paritás hiba. 
	2) Probléma a videokártya vízszintes visszatérésével. 1 hosszú és 3 
	rövid csipogás: video hiba. 1) videokártya hiba. 2) a monitor 
	hibás detektálása. 3) Video RAM hiba. 1 hosszú csipogás: a POST rendben 
	lefutott. Ha a POST-ban hiba lép fel, akkor hardverprobléma van. Ellenőrizd 
	a bővítőkártyák érintkezését 
      </para>
      <para>
        A témáról olvashatsz a 
        <ulink url="http://www.preggers.easynet.be/lilo.html">
          http://www.preggers.easynet.be/lilo.html 
        </ulink>
	honlapon.
      </para>
      <para>
        Ha a LILO-val vannak problémák, olvasd el a következő tippeket. Ha a betöltés 
	közben a "L0101010101010101 ...." hibával találkozol, akkor a következőket tedd:
        <itemizedlist>
          <listitem>
            <para>
              A kedvenc szövegszerkesztőddel nyisd meg a /etc/lilo.conf fájlt:
              <programlisting format="linespecific">
# keresd meg a következő sort:
linear
# tegyél elé megjegyzés jelet (kettős keresztet - a lektor), hogy így nézzen ki:
# linear
Mentsd el és futtasd a lilo-t.
      </programlisting>
            </para>
          </listitem>
          <listitem>
            <para>
              A boot-partíciónak a 8GB-os határon belül kell lennie. Ha problémád van, 
	      olyan programokkal, mint a Partition Magic vagy a Mandrake-féle DiskDrake, 
	      könnyen orvosolhatod. 
            </para>
          </listitem>
          <listitem>
            <para>
              A 01 a DRAM frissítési hiba. Ha csak szimplán "L 01"-et látsz, 
	      indíts újra a gépet a CTRL+ATL+DEL kombinációval (viszont ne kapcsold 
	      ki a gépet, csak CTRL+ATL+DEL-t nyomj). Ez javíthatja a problémát. 
            </para>
          </listitem>
        </itemizedlist>
      </para>
    </sect2>
    <sect2>
      <title>
        Egy LILO beállítófájl minta 
      </title>
      <para>
        Mindig adj egy dátumra vonatkozó kiterjesztést a fájlnévhez, mert ez jelzi, 
	mikor készítetted a rendszermagot, amint alább is látható: 
        <programlisting format="linespecific">
	bash# man lilo
	bash# man lilo.conf
	Szerkeszd az /etc/lilo.conf fájlt és rakd be ezeket a sorokat: 
		image=/boot/bzImage.myker.26mar2001 
		label=myker
		root=/dev/hda1 
		read-only 
	Az eszköznevet a "root=" számára a következő paranccsal ellenőrizheted: 
		bash# df   / 
	Most add ki a következő parancsokat: 
		bash# lilo 
		bash# lilo -q 
      </programlisting>
        Akkor is újra kell futtatnod a lilo-t, ha a "myker" bejegyzés létezik, 
	valahányszor új bzImage fájlt készítesz. 
      </para>
      <para>
        Alább egy példa /etc/lilo.conf látható. Az elnevezési szabályokat is követheted, 
	mint ker2217 (a 2.2.17-es rendszermaghoz), ker2214 (a 2.2.14-hez). Sok rendszermag 
	fájlod lehet ugyanabban a /boot rendszerben. Az én gépemen valami hasonló van: 
        <programlisting format="linespecific">
	boot=/dev/hda
	map=/boot/map
	install=/boot/boot.b
	prompt
	timeout=50
	default=firewall
	image=/boot/vmlinuz-2.2.14-5.0
		label=ker2214
		read-only
		root=/dev/hda9
	image=/boot/vmlinuz-2.2.17-14
		label=ker2217
		read-only
		root=/dev/hda9
	#image=/usr/src/linux/arch/i386/boot/bzImage 
	#	label=myker 
	#	root=/dev/hda7
	#	read-only 
	image=/boot/bzImage.myker.11feb2001
		label=myker11feb 
		root=/dev/hda9
		read-only 
	image=/boot/bzImage.myker.01jan2001
		label=myker01jan 
		root=/dev/hda9
		read-only 
	image=/boot/bzImage.myker-firewall.16mar2001
		label=firewall 
		root=/dev/hda9
		read-only 
      </programlisting>
      </para>
    </sect2>
  </sect1>
  <sect1 id="grubconf">
    <title>
      "C" függelék - GRUB részletesen, grub.conf mintafájl 
    </title>
    <sect2>
      <title>
        GRUB forrásanyagok 
      </title>
      <para>
        Olvasd a 
        <itemizedlist>
          <listitem>
            <para>
              <ulink url="http://www.tldp.org/HOWTO/Linux+Win9x+Grub-HOWTO/intro.html">
                "http://www.tldp.org/HOWTO/Linux+Win9x+Grub-HOWTO/intro.html" 
              </ulink>
	      (<ulink url="http://tldp.fsf.hu/HOWTO/Linux+Win9x+Grub-HOWTO-hu.html">
                "http://tldp.fsf.hu/HOWTO/Linux+Win9x+Grub-HOWTO-hu.html" 
              </ulink>)
	      dokumentumot. 
            </para>
          </listitem>
          <listitem>
            <para>
              GNU GRUB 
              <ulink url="http://www.gnu.org/software/grub">
                "http://www.gnu.org/software/grub" 
              </ulink>
            </para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://www.redhat.com/docs/manuals/linux/RHL-7.2-Manual/ref-guide/ch-grub.html">
                Redhat Manual 
              </ulink>
              (RedHat kézikönyv). 
            </para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://www.tldp.org/HOWTO/mini/Multiboot-with-GRUB.html">
                Multiboot-with-GRUB minihowto 
              </ulink>
            </para>
          </listitem>
          <listitem>
            <para>
              <ulink url="http://www.mcc.ac.uk/grub/grub_toc.html">
                Grub Manual 
              </ulink>
	      (Grub kézikönyv)
            </para>
          </listitem>
        </itemizedlist>
        <programlisting format="linespecific">
	bash# man grub
	bash# man grubby   # (parancssoros eszköz a grub, lilo, és elilo beállításához)
	bash# man grub-install
      </programlisting>
        Szerkeszd az /etc/grub.conf fájlt, az új rendszermagok bejegyzéseinek létrehozásához. 
	Lásd az alábbi mintafájlt: 
      </para>
    </sect2>
    <sect2>
      <title>
        GRUB tippek
      </title>
      <para>
        A RedHat Linuxban a grub képernyőjénél állva nyomj egy c-t a 
	parancssori kapcsolók megtekintéséhez: 
        <programlisting format="linespecific">
	A Linux betöltéséhez tedd ezt:
    grub&gt; help
	  
    grub&gt; root
        (hd1,1): Filesystem is type ext2fs, partition type 0x83
    grub&gt; root (hd1,0)
	  
    grub&gt; kernel / &lt;Nyomj-TAB-ot&gt;
    Kilistázza az összes fájlt.
	  
    grub&gt; kernel /boot &lt;Nyomj-TAB-ot&gt;
    Kilistázza a /boot könyvtár tartalmát.
	  
    grub&gt; kernel /boot/vmlinuz
	  
    grub&gt; boot
      </programlisting>
      </para>
      <para>
        Erről a 
        <ulink url="http://www.gnu.org/manual/grub/html_mono/grub.html">
          GRUB Manual 
        </ulink>
        (GRUB kézikönyv) dokumentációban is olvashatsz. A MS Windows 95/2000 stb. 
	betöltéséhez tedd ezt: ha nem támogatott operációs rendszert (például 
	Windows 95) akarsz betölteni, csinálj betöltési láncot (chain-load) az 
	operációs rendszer betöltőjéhez. Normál esetben a rendszerbetöltőt 
	annak a partíciónak a boot szektora tartalmazza, amelyikre az operációs 
	rendszert telepítettük. 
        <programlisting format="linespecific">
	grub&gt; help
	grub&gt; help rootnoverify
	grub&gt; rootnoverify (hd0,0)
	grub&gt; makeactive
	grub&gt; chainloader +1
	grub&gt; boot
      </programlisting>
      </para>
    </sect2>
    <sect2>
      <title>
        Egy GRUB beállítófájl minta 
      </title>
      <para>
        <programlisting format="linespecific">
	# grub.conf generated by anaconda
	#
	# Figyeld meg, hogy nem kell ujrafuttatni a grub-ot, ha valtoztatsz a fajlon
	# FIGYELEM: nincs /boot particiod. Ez azt jelenti, hogy minden rendszermag es
	# initrd utvonal a / könyvtárhoz viszonyitott, például: 
	#          root (hd0,8)
	#          kernel /boot/vmlinuz-version ro root=/dev/hda9
	#          initrd /boot/initrd-version.img
	#boot=/dev/hda
	# Alapertelmezesben a masodik bejegyzes inditasa.
	default=1
	# Az elso bejegyzes a biztonsagi tartalek.
	fallback 0
	# Automatikus betoltes 2 perc elteltevel.
	timeout=120
	splashimage=(hd0,8)/boot/grub/splash.xpm.gz
	title Windows 2000 
	unhide (hd0,0)
	hide (hd0,1)
	hide (hd0,2)
	rootnoverify (hd0,0)
	chainloader +1
	makeactive
	title Red Hat Linux (2.4.18-19.8.0.19mar2003)
		root (hd0,8)
		kernel /boot/bzImage.2.4.18-19.8.0.19mar2003 ro root=LABEL=/ hdd=ide-scsi
		initrd /boot/initrd-2.4.18-19.8.0custom.img.19mar03
	title Red Hat Linux (2.4.18-19.8.0custom)
		root (hd0,8)
		kernel /boot/vmlinuz-2.4.18-19.8.0custom ro root=LABEL=/ hdd=ide-scsi
		initrd /boot/initrd-2.4.18-19.8.0custom.img
	title Red Hat Linux (2.4.18-14)
		root (hd0,8)
		kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/ hdd=ide-scsi
		initrd /boot/initrd-2.4.18-14.img
	title MyKernel.26jan03 (Red Hat Linux 2.4.18-14)
		root (hd0,8)
		kernel /boot/bzImage.myker.26jan03 ro root=LABEL=/ hdd=ide-scsi
		initrd /boot/initrd-2.4.18-19.8.0.img
	title Windows 98
	hide (hd0,0)
	hide (hd0,1)
	unhide (hd0,2)
	rootnoverify (hd0,2)
	chainloader +1
	makeactive
	title DOS 6.22
	hide (hd0,0)
	unhide (hd0,1)
	hide (hd0,2)
	rootnoverify (hd0,1)
	chainloader +1
	makeactive
	title Partition 2 (floppy)
	hide (hd0,0)
	unhide (hd0,1)
	hide (hd0,2)
	chainloader (fd0)+1
	title Partition 3 (floppy)
	hide (hd0,0)
	hide (hd0,1)
	unhide (hd0,2)
	chainloader (fd0)+1
      </programlisting>
      </para>
    </sect2>
  </sect1>
  <sect1 id="post_kernel_building">
    <title>
      "D" függelék - utólagos rendszermag fordítás 
    </title>
    <para>
      Miután sikeresen felépítettük (build) és betöltöttük a Linux-rendszermagot, a 
      következő kiegészítő lépésekre azért van szükség, hogy bizonyos eszközöket 
      működésre bírjunk Linux alatt. (Az alábbi lépéseket RedHat Linuxon teszteltük, 
      de más terjesztésekkel is működnie kell.)
    </para>
    <para>
      <emphasis remap="bf">
        Videokártya/Monitor beállítása:
      </emphasis>
      <itemizedlist>
        <listitem>
          <para>
            Nézd meg a videokártya leírását, amit általában együtt szállítanak a PC-vel. 
	    Keresd meg a "Technical Specifications" ("Technikai paraméterek") oldalt. 
          </para>
        </listitem>
        <listitem>
          <para>
            Nézd meg a monitor leírását, és keresd meg a "Technical 
            Specifications" ("Technikai paraméterek") oldalt. 
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <para>
      Ha a legújabb Linuxot (2.4 vagy későbbi) használod, kattints a KDE/GNOME 
      munkaasztalon belül a Start-&gt;"System Settings"-&gt;Display menüpontra. 
    </para>
    <para>
      A Linux régebbi verzióinál kövesd az alábbi lépéseket: 
    </para>
    <para>
      A videokártyát és a monitort a következő parancsokkal állíthatod be: 
      <programlisting format="linespecific">
	bash$ su - root
	bash# man Xconfigurator
	bash# /usr/bin/X11/Xconfigurator --help
	bash# /usr/bin/X11/Xconfigurator 
	bash# /usr/bin/X11/Xconfigurator --expert
	See also:
	bash# man xf86config
	bash# /usr/bin/X11/xf86config
      </programlisting>
      Ha a kártyádat nem ismerte fel automatikusan a rendszer, akkor használhatod a 
      --expert opciót, és válaszd az "Unlisted card" (fel nem sorolt kártya) menüpontot. 
      Ha a monitorod nincs felsorolva, akkor válaszd az általános SVGA 1024x768 típust. 
    </para>
    <para>
      <emphasis remap="bf">
        Hangkártya beállítása: 
      </emphasis>
      <itemizedlist>
        <listitem>
          <para>
            Kösd be a külső hangszórókat a hangkártya kimentére. 
          </para>
        </listitem>
        <listitem>
          <para>
            Kösd össze a CD-ROM audiokábelét a hangkártya 4 tűs audio-aljzatával. 
	    (Egyébként a zenei CD-ket nem fogod hallani a kártyával.) 
          </para>
        </listitem>
        <listitem>
          <para>
            Olvasd a hanggal foglalkozó HOGYANokat a 
            <ulink url="http://www.tldp.org">
              "http://www.tldp.org" 
            </ulink>
	    webhelyen (továbbá a <ulink url="http://tldp.fsf.hu/HOWTO/HOWTO-INDEX/hardware.html#HWSOUND">
              "HOGYAN-INDEX - MIDI, hangkártyák" 
            </ulink> honlapon - a lektor). 
          </para>
        </listitem>
      </itemizedlist>
      Ha a legújabb Linuxot (2.4 vagy későbbi) használod, kattints a KDE/GNOME 
      munkaasztalon belül a Start-&gt;"System Settings"-&gt;Soundcard Detection menüpontra.
    </para>
    <para>
      A régebbi Linux verzióknál kövesd az alábbi lépéseket: 
    </para>
    <para>
      <programlisting format="linespecific">
	bash$ su - root
	bash# man sndconfig
	bash# /usr/sbin/sndconfig
      </programlisting>
      Majd indítsd el az X-Window rendszer "KDE-munkaasztalát" a "startx" paranccsal. 
      Kattints a "K Start-&gt;ControlCenter-&gt;SoundServer-&gt;General-&gt;Test Sound" 
      menüpontra. Ennek le kell játszania a teszthangot. Aztán kattints a 
      "K Start-&gt;MultiMedia-&gt;SoundMixer-&gt;SoundVolumeSlider" menüpontra és állítsd be 
      a hangerőt. 
    </para>
    <para>
      <emphasis remap="bf">
        Hálózati kártya beállítása: 
      </emphasis>
      Ha a legújabb Linuxot (2.4 vagy későbbi) használod, kattints a KDE/GNOME 
      munkaasztalon belül a Start-&gt;"System Settings"-&gt;Network menüpontra. 
    </para>
    <para>
      A régebbi Linux verzióknál kövesd az alábbi lépéseket: 
    </para>
    <para>
      <itemizedlist>
        <listitem>
          <para>
            Használd az /sbin/linuxconf programot 
          </para>
        </listitem>
        <listitem>
          <para>
            vagy a KDE vezérlőpultot 
          </para>
        </listitem>
        <listitem>
          <para>
            Olvasd a hálózattal foglalkozó HOGYANokat a 
            <ulink url="http://www.tldp.org">
              "http://www.tldp.org" 
            </ulink>
	    webhelyen (továbbá a <ulink url="http://tldp.fsf.hu/HOWTO/HOWTO-INDEX/networking.html">
              "HOGYAN-INDEX - Hálózat" 
            </ulink> honlapon - a lektor). 
          </para>
        </listitem>
      </itemizedlist>
    </para>
    <para>
      <emphasis remap="bf">
        Tűzfal és IP-álcázás beállítása: 
      </emphasis>
      A rendszermag 2.4-es és a feletti verzióinál a tűzfal és az IP-álcázás a NetFilter 
      csomaggal lett megvalósítva. Ezért a rendszermag beállítása közben engedélyezned 
      kell a Netfilter-t és futtatni a tűzfal/IPmaszk szkripteket. Töltsd le a szkripteket a 
      <ulink url="http://www.BoingWorld.com/workshops/linux/iptables-tutorial">
        Firewall-IPMasq scripts 
      </ulink>
      honlapról, a NetFilter címoldalát a 
      <ulink url="http://netfilter.samba.org">
        "http://netfilter.samba.org" 
      </ulink>
      webhelyen találod. Idevágó anyagokat találsz a 
      <ulink url="http://www.linuxsecurity.com/feature_stories/kernel-netfilter.html">
        firewalling-matures 
      </ulink>
      és 
      <ulink url="http://netfilter.filewatcher.org/netfilter-faq.html">
        Netfilter-FAQ 
      </ulink>
      honlapokon (valamint magyarul, a 
      <ulink url="http://doc.skylinux.org/">
        Firewall LDP Team 
      </ulink> webhelyén - a lektor). 
    </para>
    <para>
      
      A 2.4 alatti verziókhoz telepítheted a tűzfal rpm csomagjait a 
      <ulink url="http://rpmfind.net/linux/rpm2html/search.php?query=firewall">
        rpmfind.net 
      </ulink>
      vagy a
      <ulink url="http://rpmfind.net/linux/RPM/contrib/noarch//SRPMS//firewall-2.2-3.src.html">
        firewall.src.rpm 
      </ulink>
      honlapról. 
    </para>
    <para>
      <emphasis remap="bf">
        Egyéb eszközök beállítása: 
      </emphasis>
      Olvasd az ezzel foglalkozó HOGYANokat a 
      <ulink url="http://www.tldp.org">
        "http://www.tldp.org" 
      </ulink>
      webhelyen (továbbá a <ulink url="http://tldp.fsf.hu/HOWTO/HOWTO-INDEX/hardware.html">
      "HOGYAN-INDEX - Hardver"</ulink> honlapon - a lektor). 
    </para>
  </sect1>
  <sect1 id="troubleshoot">
    <title>
      "E" függelék - a gyakori hibák elhárítása 
    </title>
    <sect2>
      <title>
        A rendszermag rendben elkészül, de a "make modules" nem sikerül 
      </title>
      <para>
        Jelenség: A rendszermag elkészül, és elkészül a bzImage, de a "make modules" 
	már nem sikerül. 
      </para>
      <para>
        Megoldás: Ez a legtrükkösebb probléma, számos oka lehet. Ilyenek 
	például a Linux terjesztés maga, nem frissített csomagfüggőségek. 
	Ez nagyon jellemző a RedHat terjesztésre, de másiknál is előfordulhat. 
	Okozhatja továbbá néhány "ott felejtett" fájl is, amelyek felfüggesztik 
	a programfordítási folyamatot, ezáltal problémát okoznak. Ennek ellenszere 
	a "make mrproper" és "make clean", majd a "make modules" parancs kiadása. 
	Szükséged lehet a beállítási fájlok mentésére, alább látható ennek menete: 
        <programlisting format="linespecific">
bash# cd /usr/src/linux 
bash# mkdir /usr/src/kernelconfigs ;
bash# cp /usr/src/linux/.config  /usr/src/kernelconfigs/.config.save;
bash# cp /usr/src/linux/.config  /usr/src/linux/configs/.config.save  # Különösen biztonságos
bash# cp /boot/config*  /usr/src/linux/configs/  # Különösen biztonságos
bash# make clean
bash# make mrproper  # "EL KELL VÉGEZNED ezt az mrproper-t", különben pokolian sok problémával 
                     # kell szembenézned
bash# make clean
bash# cp /usr/src/kernelconfigs/.config.save .config  # abban az esetben, ha újra fel akarod 
                                                      # használni a beállítófájlt ??
	  	</programlisting>
      </para>
      <sect3>
        <title>
          Nem megfelelő beállítófájl 
        </title>
        <para>
          Ha az előző bekezdésben ajánlott "make mrproper" nem oldja meg a 
	  problémát, egyéb körmönfont probléma ejtett csapdájába. Talán 
	  valami komoly hiba van a beállítófájlban. Talán nem a processzorodnak 
	  megfelelő beállítófájlból indultál ki (talán ATHLON CPU típust 
	  választottál Pentium vagy Cyrix CPU típust Athlon processzoros 
	  gépedhez) Kezdd elölről az egészet, ha Athlon CPU-s az athlon.config 
	  vagy ha Intel 696 CPU-s géped géped van az i686.config fájlt másold le. 
	  Töltsd le az aktuális beállítófájlt az /usr/src/linux/configs könyvtárból 
          <programlisting format="linespecific">
	bash# cp /usr/src/linux/configs/kernel-2.4.18-i686.config  /usr/src/linux/.config
	Vagy Athlon processzorok esetében 
	bash# cp /usr/src/linux/configs/kernel-2.4.18-athlon.config  /usr/src/linux/.config
			  </programlisting>
          Kövesd a <ulink url="#quick_steps">Gyors lépések - a rendszermag fordítása</ulink>
	  fejezetben leírtakat. 
        </para>
      </sect3>
      <sect3>
        <title>
          A csomagok nincsenek szinkronban 
        </title>
        <para>
          Még mindig problémáid vannak? Ha a fenti bekezdésben leírtak nem oldották 
	  meg a problémát, egyéb körmönfont probléma ejtett csapdájába. Biztos vagy 
	  benne, hogy az összes csomagfüggőség rendben van? Az összes függő csomag 
	  szinkronban van a többivel? Telepítettél csomagot a "--nodeps" kapcsolóval? 
	  Automatizálhatod a csomagfüggőségek feloldását egy olyan nagyszerű 
	  eszközzel, mint az apt-get (Olvasd el a <ulink url="#apt-get">Telepítés, frissítés fénysebességgel</ulink> 
	  fejezetet.) Kézzel szinkronban tartani csomagok és programozói könyvtárak 
	  százait fene nagy munka, használd az apt-get programot. 
        </para>
      </sect3>
    </sect2>
    <sect2>
      <title>
        A programfordítás rendben megtörténik, de a rendszermag nem indul 
      </title>
      <para>
        Jelenség: ha a rendszermag rendben lefordul, de nem töltődik be és mindig 
	rendszermag pánikra panaszkodik valahol az /sbin/modprobe körül. 
      </para>
      <para>
        Megoldás: nem készítetted el az initrd fájlt. Olvasd el az 
	<ulink url="#create_initrd">"A" függelék - initrd.img fájl készítése</ulink>
	fejezetet. 
      </para>
      <para>
        Az initrd elkészítésén kívül, ki kell adnod egy "make modules" és "make modules_install" 
	parancsot. Még ha ki is adtad a "make modules" parancsot előtte, próbáld meg másodszor 
	is lefuttatni (nem árthat). Add ki a "make modules" és "make modules_install" parancsokat 
	még egyszer, hogy teljesen megbizonyosodj arról, miszerint a betölthető modulok a 
	helyükre kerültek. 
      </para>
    </sect2>
    <sect2>
      <title>
        A rendszer működése felfüggesztődik a LILO-nál 
      </title>
      <para>
        <emphasis remap="bf">
          Jelenség: 
        </emphasis>
        Miután felépítetted a rendszermagot és újraindítottál, a rendszer várakozik épp a 
	LILO előtt. 
      </para>
      <para>
        <emphasis remap="bf">
          Ok: 
        </emphasis>
        Valószínűleg nem állítottad be a BIOS-ban a megfelelő elsődleges mester 
	IDE és másodlagos szolga IDE merevlemez partíciót. 
      </para>
      <para>
        <emphasis remap="bf">
          Megoldás: 
        </emphasis>
        Kapcsold be a gépet és nyomd meg a DEL gombot a BIOS (Basic Input 
	Output System) Setup menübe történő belépéshez. Válaszd az IDE 
	beállításokat és állítsd be a megfelelő elsődleges merevlemez 
	partíciót és a szolga-meghajtókat. Amikor a rendszer indul, 
	megkeresi az elsődleges IDE merevlemezt és a Master Boot Record 
	partíciót. Kiolvassa az MBR-t és elkezdi betölteni a Linux-rendszermagját 
	a merevlemez partíciójáról. 
      </para>
    </sect2>
    <sect2>
      <title>
        No init found (nem található init) 
      </title>
      <para>
        A következő hibát gyakran követik el a kezdő felhasználók. 
      </para>
      <para>
        Ha az új rendszermagod nem indul el, és a következőt hibaüzenetet kapod: 
        <programlisting format="linespecific">
	Warning: unable to open an initial console
	Kernel panic: no init found. Try passing init= option to kernel
        </programlisting>
        Az a probléma, hogy 
        <emphasis remap="bf">
          nem állítottad be megfelelően 
        </emphasis>
        a "root=" paramétert az /etc/lilo.conf fájlban. Az én esetemben, a 
	root=/dev/hda1 partíciót használom, amin a gyökér "/" partíció van. 
	Jól kell beállítanod a root-eszközt, olyasminek kell lennie, mint 
	/dev/hdb2 vagy /dev/hda7. 
      </para>
      <para>
        Lehetnek hibák ez előtt a rendszermag pánik előtt is. Nézd meg és 
	olvasd el a lehetséges hibaüzeneteket a "Kernel panic:" felirat előtt. 
	A hibát okozhatja bármely ez előtti hiba is (összegződő hatás). 
	Például a "Kernel panic:" hibaüzenet előtt láthatsz olyat is, hogy 
	"kernel-module version mismatch" (a rendszermag-modul verzió nem egyezik) 
	vagy "ilyen-olyan-egyéb-hibaüzenet"-eket is. Próbáld meg az ELSŐ, 
	rendszer által jelzett hibát kijavítani. 
      </para>
      <para>
        A rendszermag az init parancsot az /sbin/init alatt keresi. Az /sbin könyvtár 
	pedig a gyökér-partíción van. További részleteket a 
        <programlisting format="linespecific">
	bash# man init
        </programlisting>
        parancs kiadásával, valamint a 
        <ulink url="#grubconf">"C" függelék - GRUB részletesen, grub.conf mintafájl</ulink>
        és 
        <ulink url="#liloconf">"B" függelék - lilo.conf mintafájl</ulink>
        fejezetek olvasásával tudhatsz meg. 
      </para>
    </sect2>
    <sect2>
      <title>
        Csomó fordítási hiba (compile error) 
      </title>
      <para>
        A "make", "make bzImage", "make modules" vagy "make modules_install" 
        fordítási hibákat jelez. Add ki a "make mrproper" parancsot a "make" 
	parancs kiadása előtt. 
        <programlisting format="linespecific">
	bash# make clean &amp;&amp; make mrproper # "KÖTELEZŐ KIADNOD AZ mrproper parancsot", egyébként problémák százai jelentkeznek! 
        </programlisting>
        Ha a probléma változatlanul fennáll, próbáld ki a "menuconfig"-ot 
	az "xconfig" helyett. Néha a GUI adott verziója problémázik az "xconfig"-al:
        <programlisting format="linespecific">
	bash# export TERM=VT100
	bash# make menuconfig  # Újabb, az "ncurses"/"curses"-t használja, ha nincs telepítve nem működik 
        </programlisting>
      </para>
    </sect2>
    <sect2>
      <title>
        A "depmod" parancs "Unresolved symbol error messages" hibaüzenetet ír ki 
      </title>
      <para>
        A 
        <literal moreinfo="none" remap="tt">
          depmod 
        </literal>
        parancs futásakor "Unresolved symbols" hibaüzenetet ír ki. Az alábbi példa 
	mutatja be az esetet: 
        <programlisting format="linespecific">
	bash$ su - root
	bash# man depmod
	bash# depmod
	depmod: *** Unresolved symbols in /lib/modules/version/kernel/drivers/md/linear.o
	depmod: *** Unresolved symbols in /lib/modules/version/kernel/drivers/md/multipath.o
	depmod: *** Unresolved symbols in /lib/modules/version/kernel/drivers/md/raid0.o
	depmod: *** Unresolved symbols in /lib/modules/version/kernel/drivers/md/raid1.o
	depmod: *** Unresolved symbols in /lib/modules/version/kernel/drivers/md/raid5.o
        </programlisting>
      </para>
      <para>
        <emphasis remap="bf">
          Ok: 
        </emphasis>
        Nem fordítottad és telepítetted a modulokat az új 
	rendszermag elkészítése (
        <literal moreinfo="none" remap="tt">
          "make bzImage" 
        </literal>
         ) után. 
      </para>
      <para>
        <emphasis remap="bf">
          Megoldás: 
        </emphasis>
        Az új rendszermag elkészítése után muszáj ezt tenned: 
        <programlisting format="linespecific">
	bash$ su - root
	bash# cd /usr/src/linux
	bash# make modules
	bash# make modules_install
        </programlisting>
      </para>
    </sect2>
    <sect2>
      <title>
        A rendszermag nem tölti be a modult, "Unresolved symbols" hibaüzenetet ír ki 
      </title>
      <para>
        Amikor betöltöd a rendszert, és az bármely modult megpróbálva betölteni a 
	"Unresolved symbol : __some_function_name" üzenetet ír ki, akkor ez azt jelenti, 
	hogy nem "tiszta helyzetből kiindulva" fordítottad a modulokat és 
	a rendszermagot. Elengedhetetlen, a 
        <emphasis remap="bf">
          make clean 
        </emphasis>
        parancs kiadása, majd a modulok fordítása. Ezt az 
	alábbi parancsok kiadásával teheted meg: 
        <programlisting format="linespecific">
		bash# cd /usr/src/linux
		bash# make dep
		bash# make clean
		bash# make mrproper  # "MUST DO THIS mrproper", otherwise you will face hell lot of problems !!
		bash# make clean
		bash# nohup make bzImage &amp;  
		bash# tail -f nohup.out     (.... to monitor the progress) 
		bash# make modules
		bash# make modules_install
        </programlisting>
      </para>
    </sect2>
    <sect2>
      <title>
        A rendszermag nem tud betölteni egy modult 
      </title>
      <para>
        Ha a rendszermag nem tud betölteni egy modult (mondjuk egy hálózati 
	kártyáét vagy más eszközét), akkor megpróbálhatod az eszközt közvetlenül 
	a rendszermagba fordítani. Néha a 
        <emphasis remap="it">
          <emphasis remap="bf">
            betölthető modul NEM működik 
          </emphasis>
        </emphasis>
        és a meghajtót fixen a rendszermagba kell fordítani. 
	Például - néhány hálózati kártya nem támogatja a betölthető modul 
	szolgáltatást - egyből a rendszermagba KELL fordítanod. Ezért a 
	"make xconfig"-ban NEM SZABAD a betölthető modul opciót választani 
	ehhez az eszközhöz. 
      </para>
    </sect2>
    <sect2>
      <title>
        Betölthető modulok 
      </title>
      <para>
        Az alapértelmezett betölthető modulokat telepítheted így: 
      </para>
      <para>
        Az alább megadott lépés nem szükséges, de 
        <emphasis remap="bf">
          HIBA ESETÉN SZÜKSÉG LEHET RÁ 
        </emphasis>
        , amikor a /lib/modules fájljai megsérültek. Ha már létezik a /lib/modules 
	könyvtár, és ki akarod cserélni a tartalmát, használd a "--force" kapcsolót 
	a csomag lecseréléséhez és válaszd a megfelelő CPU architektúrát. 
      </para>
      <para>
        A RedHat Linux új verzióiban (mint a 6.0 vagy későbbi) a rendszermag-modulokat 
	a kernel-2.2*.rpm tartalmazza. Telepítsd a rendszermagot és a modulokat: 
        <programlisting format="linespecific">
		Ez kilistázza a már telepített csomagokat. 
	bash# rpm -qa | grep -i kernel
		
	bash# rpm -U --force  /mnt/cdrom/Redhat/RPMS/kernel-2.2.14-5.0.i686.rpm
	(or)
	bash# rpm -U --force  /mnt/cdrom/Redhat/RPMS/kernel-2.2.14-5.0.i586.rpm
	(or)
	bash# rpm -U --force  /mnt/cdrom/Redhat/RPMS/kernel-2.2.14-5.0.i386.rpm
        </programlisting>
      </para>
      <para>
        Ez csak a régi, 5.2 és az előtti verziókhoz szól. Indíts az új rendszermaggal 
	és telepítsd a betölthető modulokat a RedHat "contrib" CD-ROM-ról: 
        cdrom 
        <programlisting format="linespecific">
	bash# rpm -i /mnt/cdrom/contrib/kernel-modules*.rpm 
	....(A régi Linux rendszerekhez, amikben nincs előre telepítve az insmod) 
        </programlisting>
      </para>
    </sect2>
    <sect2>
      <title>
        Olvasd el a dokumentációt 
      </title>
      <para>
        Ha további problémák vannak, elolvashatod az /usr/src/linux/README 
	(legalább egyszer), valamint az /usr/src/linux/Documentation  fájlt is. 
        <programlisting format="linespecific">
	bash [/] # cd /usr/src/linux/Documentation

	bash [/usr/src/linux/Documentation] # ls *.txt

	binfmt_misc.txt  ioctl-number.txt           nbd.txt               serial-console.txt
	cachetlb.txt     IO-mapping.txt             nfsroot.txt           sgi-visws.txt
	cciss.txt        IRQ-affinity.txt           nmi_watchdog.txt      smart-config.txt
	computone.txt    isapnp.txt                 oops-tracing.txt      smp.txt
	cpqarray.txt     java.txt                   paride.txt            sonypi.txt
	devices.txt      kernel-doc-nano-HOWTO.txt  parport-lowlevel.txt  specialix.txt
	digiboard.txt    kernel-docs.txt            parport.txt           spinlocks.txt
	digiepca.txt     kernel-parameters.txt      pci.txt               stallion.txt
	DMA-mapping.txt  kmod.txt                   pcwd-watchdog.txt     svga.txt
	dnotify.txt      locks.txt                  pm.txt                swsusp.txt
	exception.txt    logo.txt                   ramdisk.txt           sx.txt
	floppy.txt       magic-number.txt           riscom8.txt           sysrq.txt
	ftape.txt        mandatory.txt              rtc.txt               unicode.txt
	hayes-esp.txt    mca.txt                    SAK.txt               VGA-softcursor.txt
	highuid.txt      md.txt                     sched-coding.txt      watchdog-api.txt
	i810_rng.txt     memory.txt                 sched-design.txt      watchdog.txt
	ide.txt          modules.txt                scsi-generic.txt      zorro.txt
	initrd.txt       mtrr.txt                   scsi.txt
        </programlisting>
      </para>
    </sect2>
    <sect2>
      <title>
        make clean 
      </title>
      <para>
        Ha az új rendszermag valóban furcsa dolgokat csinál egy rutinszerű frissítés 
	után, esélye van annak, hogy elfelejtetted kiadni a 
        <literal moreinfo="none" remap="tt">
          make clean 
        </literal>
        parancsot az új rendszermag fordítása előtt. A jelenségek kiterjedhetnek 
	bármire az egybőli lefagyástól, a különös I/O hibákon át a csapnivaló 
	teljesítményig. Bizonyosodj meg, hogy kiadtad a 
        <literal moreinfo="none" remap="tt">
          make dep 
        </literal>
        parancsot is. 
      </para>
    </sect2>
    <sect2>
      <title>
        Óriási vagy lassú rendszermag 
      </title>
      <para>
        Ha a rendszermagod sok memóriát zabál, túl nagy, és/vagy örökké tart a 
	programfordítása még az új Quadbazillium-III/4400-as gépeden is, 
	akkor valószínűleg sok felesleges cuccot (eszközmeghajtót, fájlrendszert stb.) 
	tettél bele. Ha nem használod, ne állítsd be, mivel memóriát foglal. 
	A legkézenfekvőbb jelenség a rendszermag felfúvódására a memória állandó 
	oda- visszatöltése a lemezről; ha a lemezed sok zajt bocsát ki, és nem egyike 
	a régi Fujitsu Eagles-eknek (ami kikapcsoláskor olyan hangot ad ki, 
	mint egy leszálló repülőgép), akkor nézd át a beállításaidat. 
      </para>
      <para>
        Megállapíthatod, hogy mennyi memóriát használ a rendszermag, 
	ha veszed a teljes memóriamennyiséget és kivonod belőle a 
	"total mem" értékét, amit a 
        <literal moreinfo="none" remap="tt">
          /proc/meminfo 
        </literal>
        mutat, vagy a "
        <literal moreinfo="none" remap="tt">
          free 
        </literal>
        " parancs. 
      </para>
    </sect2>
    <sect2>
      <title>
        A párhuzamos port/nyomtató nem működik 
      </title>
      <para>
        A PC-k beállítási lépései: először is, a "General Setup" kategóriában válaszd a "
	Parallel port support" és "PC-style hardware" beállításokat. 
	Aztán a "Character devices" alatt, válaszd a "Parallel printer support"-ot. 
      </para>
      <para>
        Ezután következnek a nevek. A Linux 2.2 máshogy nevezi a nyomtatóeszközöket, 
	mint a korábbi kiadások. Ennek az a következménye, hogy ha
        <literal moreinfo="none" remap="tt">
          lp1 
        </literal>
        eszközöd van a régi rendszermag alatt, ez valószínűleg 
        <literal moreinfo="none" remap="tt">
          lp0 
        </literal>
        az új verziónál. Használd a " 
        <literal moreinfo="none" remap="tt">
          dmesg 
        </literal>
        parancsot , vagy nézd meg a naplókat a 
        <literal moreinfo="none" remap="tt">
          /var/log 
        </literal>
        könyvtárban, hogy kiderítsd az eszköz nevét. 
      </para>
    </sect2>
    <sect2>
      <title>
        A rendszermag nem fordul le 
      </title>
      <para>
        Ha nem fordul le, akkor lehetséges, hogy egy foltozás nem sikerült, 
	vagy a forrásod valamiért nem jó. A gcc verziód szintén nem biztos, 
	hogy megfelelő, vagy szintén nem jó (például az include fájlok 
	lehetnek hibásak). Győződj meg, hogy a Linus által leírt szimbolikus 
	linkek, amiket a 
        <literal moreinfo="none" remap="tt">
          README 
        </literal>
        fájlban ír le, jól vannak beállítva. Általánosan, ha egy hagyományos 
	rendszermag nem fordul le, akkor valami komoly gond van a rendszerben, 
	és bizonyos eszközök újbóli telepítése válhat szükségessé. 
      </para>
      <para>
        Néhány esetben, a gcc hardver problémák miatt szállhat el. A hibaüzenet 
	olyasmi lehet, hogy "xxx exited with signal 15" és ez általában nagyon 
	rejtélyesen néz ki. Valószínűleg nem említettem volna, de megtörtént velem, 
	egyszer volt egy kevés rossz cache-memóriám, és időnként a fordító 
	véletlenszerűen elhányta magát. Először próbáld meg a gcc-t kicserélni, 
	ha problémád van. Kisakkozhatod, hogy lefordul-e a rendszermag a 
	külső gyorsítótár kikapcsolásával, csökkentett méretű RAM-mal stb. 
      </para>
      <para>
        Fel tudja zaklatni az embereket, ha azt mondják nekik, hogy rossz a hardverük. 
	Nos, én nem adom fel. Létezik egy GYIK is erről, ezen a 
        <ulink url="http://www.bitwizard.nl/sig11">
          "http://www.bitwizard.nl/sig11" 
        </ulink>
        webhelyen. 
      </para>
    </sect2>
    <sect2>
      <title>
        A rendszermag új verziója nem töltődik be 
      </title>
      <para>
        Nem futtattad a LILO-t, vagy nincs rendesen beállítva. Egy dolog, 
	ami "megfogott" engem egyszer, egy konfigurációs fájl problémája volt: 
	ez volt benne: "
        <literal moreinfo="none" remap="tt">
          boot = /dev/hda1 
        </literal>
        " ahelyett, hogy " 
        <literal moreinfo="none" remap="tt">
          boot = /dev/hda 
        </literal>
        " lett volna. (Ez először tényleg zavaró lehet, de ha egyszer van egy működő 
	beállítófájlod, nem kell megváltoztatnod). 
      </para>
    </sect2>
    <sect2>
      <title>
        Elfelejtetted futtatni a LILO-t, vagy a rendszered egyáltalán nem indul el 
      </title>
      <para>
        Hoppá! A legjobb dolog, amit ekkor tehetsz, hogy hajlékonylemezről vagy 
	CD-ROM-ról indítasz, és készítesz egy másik indítólemezt (amit a " 
        <literal moreinfo="none" remap="tt">
          make zdisk 
        </literal>
        " paranccsal is megtehetsz). Tudnod kell, hol van a gyökér ( 
        <literal moreinfo="none" remap="tt">
          / 
        </literal>
        ) fájlrendszered és milyen típusú (tehát például ext2, minix). Az alábbi 
	példában azt is tudnod kell, milyen fájlrendszeren van a 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux 
        </literal>
        forrásfád, ennek típusát, és normál esetben hova csatolódik fel. 
      </para>
      <para>
        A következő példában a 
        <literal moreinfo="none" remap="tt">
          / 
        </literal>
        a 
        <literal moreinfo="none" remap="tt">
          /dev/hda1 
        </literal>
        , és a fájlrendszer, ami tartalmazza a 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux 
        </literal>
        könyvtárat, a 
        <literal moreinfo="none" remap="tt">
          /dev/hda3 
        </literal>
        , normál esetben a 
        <literal moreinfo="none" remap="tt">
          /usr 
        </literal>
        alá van felcsatolva. Mindkettő second extended (ext2) fájlrendszer. 
	A működő rendszermag helye a 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux/arch/i386/boot 
        </literal>
        könyvtár, és 
        <literal moreinfo="none" remap="tt">
          bzImage 
        </literal>
        a neve. 
      </para>
      <para>
        Az ötlet az, hogy ha van egy működő 
        <literal moreinfo="none" remap="tt">
          bzImage 
        </literal>
        , akkor azt használhatod egy új hajlékonylemez készítéséhez. Egy másik lehetőséget, 
	ami vagy jobban működik, vagy nem (attól az egyedi módszertől függ, amivel 
	szétbarmoltad a rendszered) beszélünk meg a példa után. 
      </para>
      <para>
        Először indíts egy boot/root lemezpárosról vagy mentőlemezről, 
	és csatold fel a működő rendszermagot tartalmazó fájlrendszert: 
      </para>
      <para>
        mkdir /mnt mount -t ext2 /dev/hda3 /mnt 
      </para>
      <para>
        Ha az 
        <literal moreinfo="none" remap="tt">
          mkdir 
        </literal>
        azt írja ki, hogy a könyvtár már létezik, ne törődj vele. Most a
        <literal moreinfo="none" remap="tt">
          cd 
        </literal>
        paranccsal lépj be arra a helyre, ahol a működő rendszermag van. 
	Figyeld meg, hogy  /mnt + /usr/src/linux/arch/i386/boot - /usr = 
	/mnt/src/linux/arch/i386/boot. Helyezz egy formázott lemezt az 
	"A" meghajtóba (ne a boot vagy root lemezed!), másold ki a fájlt a 
	lemezre, és állítsd be a gyökér fájlrendszeredhez: 
      </para>
      <para>
        cd /mnt/src/linux/arch/i386/boot dd if=bzImage of=/dev/fd0 rdev 
        /dev/fd0 /dev/hda1 
      </para>
      <para>
        A 
	<literal moreinfo="none" remap="tt">
          cd 
        </literal>
        paranccsal lépj be a 
        <literal moreinfo="none" remap="tt">
          / 
        </literal>
        könyvtárba és válaszd le a normál 
        <literal moreinfo="none" remap="tt">
          /usr 
        </literal>
	fájlrendszert: 
      </para>
      <para>
        cd / umount /mnt 
      </para>
      <para>
        Most már képesnek kell lenned normál módon újraindítani a rendszert erről a 
	hajlékonylemezről. Ne felejtsd el futtatni a lilo-t (vagy bármi volt, amit 
	elrontottál) az újraindítás után! 
      </para>
      <para>
        Amint fentebb említettük, van egy másik általános lehetőség. Ha véletlenül 
	van egy működő rendszermag a
        <literal moreinfo="none" remap="tt">
          / 
        </literal>
        könyvtárban ( 
        <literal moreinfo="none" remap="tt">
          /vmlinuz 
        </literal>
        például), használhatod azt is a indítólemezhez. Feltéve, hogy teljesül az 
	összes fenti feltétel, és a rendszermagod a 
        <literal moreinfo="none" remap="tt">
          /vmlinuz 
        </literal>
        , csak ezeket a változásokat tedd meg a fenti példához képest: 
	változtasd meg a 
        <literal moreinfo="none" remap="tt">
          /dev/hda3 
        </literal>
        -at 
        <literal moreinfo="none" remap="tt">
          /dev/hda1 
        </literal>
        -re (a 
        <literal moreinfo="none" remap="tt">
          / 
        </literal>
        fájlrendszerre), az 
        <literal moreinfo="none" remap="tt">
          /mnt/src/linux 
        </literal>
        -ot a 
        <literal moreinfo="none" remap="tt">
          /mnt 
        </literal>
        -re, és a 
        <literal moreinfo="none" remap="tt">
          if=bzImage 
        </literal>
        -et 
        <literal moreinfo="none" remap="tt">
          if=vmlinuz 
        </literal>
        -ra. A jegyzet arról, hogyan származtatjuk a 
        <literal moreinfo="none" remap="tt">
          /mnt/src/linux 
        </literal>
        -ot, figyelmen kívül hagyható. 
      </para>
      <para>
        A LILO használata nagy meghajtókkal (több mint 1024 cilinderrel) 
	problámákat okozhat. Olvasd a LILO mini-HOWTO (LILO mini HOGYAN) 
	, vagy egyéb dokumetációt ennek a kivédéséről. 
      </para>
    </sect2>
    <sect2>
      <title>
        Azt írja ki: "warning: bdflush not running" 
      </title>
      <para>
        Ez komoly probléma lehet. A rendszermag v1.0-ás verziójától kezdve 
	(1994. ápr. 20-körül), az "
        <literal moreinfo="none" remap="tt">
          update 
        </literal>
        " nevű programot, ami rendszeresen üríti a fájlrendszer puffereit, 
	fejlesztették/kicserélték. Szerezd meg a "
        <literal moreinfo="none" remap="tt">
          bdflush 
        </literal>
        " forrását (ott találod, ahol a rendszermag forrását), és telepítsd fel 
	(valószínűleg a régi rendszermaggal futtatod a rendszert, amíg ezt teszed.) 
	Ez önmagát "
        <literal moreinfo="none" remap="tt">
          update 
        </literal>
        " néven telepíti, és miután újraindítottad a rendszert, az új rendszermagnak 
	már nem szabad panaszkodnia. 
      </para>
    </sect2>
    <sect2>
      <title>
        Nem tudom működésre bírni az IDE/ATAPI CD-ROM-ot 
      </title>
      <para>
        Különös módon sokan nem tudják működésre bírni az ATAPI meghajtóikat, 
	valószínűleg mert több dolog sem stimmel. 
      </para>
      <para>
        Ha a CD-ROM az egyetlen eszköz egy bizonyos IDE csatolón, akkor 
	"master"-ként és nem "slave"-ként kell beállítani. Meglepő, de ez a 
	legáltalánosabb hiba. 
      </para>
      <para>
        A Creative Labs (elsőként) IDE csatolót rakott a hangkártyáira. 
	Ez azonban ahhoz az érdekes problémához vezetett, hogy míg néhányan 
	csak egy csatolóval rendelkeztek, sokan viszont  kettővel, beépítve 
	az alaplapon (általában a 15-ös IRQ-n), így egy általános megoldás 
	lett a SoundBlaster csatolóját a harmadik IDE portnak venni 
	(IRQ11, legalábbis így mondták). 
      </para>
      <para>
        Ez a régi, 1.3-as és az alatti Linux-verzióknál gondot okozott. 
	Ezekben a verziókban a Linux nem támogatta a harmadik IDE csatolót. 
	Ennek megkerülésére kevés lehetőség van. 
      </para>
      <para>
        Ha már van egy második IDE port, van esély rá, hogy nem használod, 
	vagy nincs még rajta két eszköz. Vedd le az ATAPI meghajtót a 
	hangkártyáról és rakd a második csatolóra. Ezek után le tudod 
	tiltani a hangkártya csatolóját, ami egyébként egy IRQ-t is megspórol. 
      </para>
      <para>
        Ha nincs második csatolód, jumperrel állítsd be a hangkártya csatolóját 
	(ne a kártya hang-részét) az IRQ15-re, a második csatolóra. Ennek működni 
	kell. 
      </para>
    </sect2>
    <sect2>
      <title>
        Furcsa dolgokat jelez elavult útválasztási kérésekről (routing requests)
      </title>
      <para>
        Szerezd be a 
        <literal moreinfo="none" remap="tt">
          route 
        </literal>
        program újabb verzióját és bármely egyéb programét is, ami útválasztási 
	információkat kezel. Az 
        <literal moreinfo="none" remap="tt">
          /usr/include/linux/route.h 
        </literal>
        (ami igazából egy fájl a 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux 
        </literal>
        könyvtárban) megváltozott. 
      </para>
    </sect2>
    <sect2>
      <title>
        "Not a compressed kernel Image file" (nem tömörített rendszermag) 
      </title>
      <para>
        Ne használd betöltőfájlként a 
        <literal moreinfo="none" remap="tt">
          vmlinux 
        </literal>
        fájlt, ami a 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux 
        </literal>
        könyvtárban van, a
        <literal moreinfo="none" remap="tt">
          [..]/arch/i386/boot/bzImage 
        </literal>
        a megfelelő. 
      </para>
    </sect2>
    <sect2>
      <title>
        Problémák a konzolos terminállal, miután 1.3.x-re frissítettünk 
      </title>
      <para>
        Változtasd meg a 
        <literal moreinfo="none" remap="tt">
          dumb 
        </literal>
        szót 
        <literal moreinfo="none" remap="tt">
          linux 
        </literal>
        -ra a konzol termcap bejegyzésében, a 
        <literal moreinfo="none" remap="tt">
          /etc/termcap 
        </literal>
        fájlban. Ezen kívül egy terminfo bejegyzést is létre kell hoznod. 
      </para>
    </sect2>
    <sect2>
      <title>
        Úgy néz ki, hogy nem fordíthatók le dolgok a rendszermag frissítése után 
      </title>
      <para>
        A Linux-rendszermag forrása tartalmaz számos ún. include fájlt 
	(azok a dolgok, amik 
        <literal moreinfo="none" remap="tt">
          .h 
        </literal>
        -val végződnek), amikre a standard 
        <literal moreinfo="none" remap="tt">
          /usr/include 
        </literal>
        könyvtárban lévő fájlok is hivatkoznak. Általában a következő módon 
	hivatkoznak rájuk (ahol a 
        <literal moreinfo="none" remap="tt">
          xyzzy.h 
        </literal>
        valamilyen fájl a 
        <literal moreinfo="none" remap="tt">
          /usr/include/linux 
        </literal>
        könyvtárban): #include &lt;linux/xyzzy.h&gt; Normál esetben van egy 
        <literal moreinfo="none" remap="tt">
          linux 
        </literal>
        nevű link a 
        <literal moreinfo="none" remap="tt">
          /usr/include 
        </literal>
        könyvtárban az 
        <literal moreinfo="none" remap="tt">
          include/linux 
        </literal>
        könyvtárra, ami a forráson belül van ( 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux/include/linux 
        </literal>
        egy tipikus rendszeren). Ha ez a link nincs ott, vagy rossz helyre mutat, 
	a legtöbb dolog egyáltalán nem fordítódik le. Ha úgy döntesz, hogy a 
	rendszermag forrása túl sok helyet foglal és letörlöd, ez bizony probléma 
	lehet. Egy másik dolog, ami rossz lehet, a fájlok tulajdonjogai; ha a 
        <literal moreinfo="none" remap="tt">
          root 
        </literal>
        felhasználónak olyan fájlmaszkja van, ami nem engedi meg alapértelmezésben 
	a többi felhasználónak, hogy lássa a fájljait, és a rendszermag forrását a 
        <literal moreinfo="none" remap="tt">
          p 
        </literal>
        (preserve filemodes) opció nélkül csomagoltad ki, ezek a felhasználók nem 
	tudják használni a C fordítót sem. Bár használhatod a 
        <literal moreinfo="none" remap="tt">
          chmod 
        </literal>
        parancsot ennek kijavítására, valószínűleg egyszerűbb újra kicsomagolni 
	az include fájlokat. Ezt ugyanúgy teheted meg, ahogy a teljes forrást az 
	elején, csak egy kiegészítő argumentummal: 
      </para>
      <para>
        blah# tar zxvpf linux.x.y.z.tar.gz linux/include Figyelem: a " 
        <literal moreinfo="none" remap="tt">
          make config 
        </literal>
        " újra létrehozza a 
        <literal moreinfo="none" remap="tt">
          /usr/src/linux 
        </literal>
        linket, ha az nincs ott. 
      </para>
    </sect2>
    <sect2>
      <title>
        Korlátok kitolása 
      </title>
      <para>
        A következő néhány 
        <emphasis remap="it">
          példa 
        </emphasis>
        parancs hasznos lehet azoknak, akik kíváncsiak arra, hogyan kell megemelni néhány 
	változtatható korlátot, amit a rendszermag ránk kényszerít: 
        <programlisting format="linespecific">
			echo 4096 &gt; /proc/sys/kernel/file-max 
			echo 12288 &gt; /proc/sys/kernel/inode-max 
			echo 300 400 500 &gt; /proc/sys/vm/freepages 
        </programlisting>
      </para>
    </sect2>
    <sect2>
      <title>
        Hová küldjem a hibajelentést? 
      </title>
      <para>
        Részletesen a 
	<ulink url="#quick_steps">Gyors lépések - Rendszermag-fordítás</ulink>
	fejezet 
        <ulink url="#reportbugs">Hová küldjem a hibajelentést?</ulink>
        alfejezetében olvashatsz erről. 
      </para>
    </sect2>
  </sect1>
</article>