Linux-rendszermag HOGYAN

Al Dev (Alavoor Vasudevan)


           alavoor[AT]yahoo.com
        

v7.3, 2003. okt�ber 27


Tartalomjegyz�k
1. Bevezet�s
1.1. FIGYELMEZTET�S
1.2. Magyar ford�t�s
2. Gyors l�p�sek - a rendszermag ford�t�sa
2.1. El�k�sz�letek
2.2. A rendszermag kisebb fejleszt�se
2.3. Az �j kiad�s v�ltoz�sai: dokument�ci�
2.4. A t�relmetleneknek
2.5. �j rendszermag k�sz�t�se - a l�p�sek �rtelmez�se
2.6. Hibaelh�r�t�s
2.7. A rendszermaghoz kapcsol�d� ut�lagos ford�t�sok
2.8. Hov� k�ldjem a hibajelent�st?
3. Bet�lthet� modulok
3.1. A modulok seg�dprogramjainak telep�t�se
3.2. A rendszermaggal sz�ll�tott modulok
3.3. Hogyan telep�tsek csak egyetlen modult?
4. A rendszermag "kl�noz�sa"
5. Fontos k�rd�sek �s v�laszok
5.1. Egy�bk�nt mit is csin�l a rendszermag?
5.2. Mi�rt k�ne friss�tenem a rendszermagomat?
5.3. Milyen hardvert t�mogatnak az �j verzi�j� rendszermagok?
5.4. Milyen verzi�j� gcc �s libc kell?
5.5. Mi az a bet�lthet� modul?
5.6. Mennyi lemezter�letre van sz�ks�gem?
5.7. Mennyi id�t vesz ig�nybe?
6. A rendszermag foltoz�sa (patching)
6.1. Egy folt alkalmaz�sa
6.2. Ha valami nem siker�l
6.3. A .orig f�jlokt�l t�rt�n� megszabadul�s
6.4. Egy�b foltok
7. Tippek �s tr�kk�k
7.1. A make vagy a patch parancs kimenet�nek �tir�ny�t�sa
7.2. Felt�teles rendszermag-telep�t�s
7.3. Rendszermag friss�t�sek
8. RPM csomagok felcsatol�sa (mount) az FTPFS seg�ts�g�vel
8.1. Az ftpfs haszn�lata
8.2. Az ftpfs parancsai
9. A rendszermagr�l sz�l� k�nyvek �s dokumentumok
10. Inform�ci�k a rendszermag f�jljair�l
10.1. vmlinuz �s vmlinux
10.2. Rendszerbet�lt� (bootloader) f�jlok
10.3. �zenetf�jl (message file)
10.4. initrd.img
10.5. bzImage
10.6. module-info
10.7. config
10.8. grub
10.9. System.map
11. Linux rendszer-adminisztr�ci�s eszk�z�k
12. Telep�t�s, friss�t�s f�nysebess�ggel, az apt-get seg�ts�g�vel (Redhat, Debian, Suse, Mandrake, egy�b)
12.1. Az "apt-get" forr�sk�dja
12.2. Az "rpmfind" seg�dprogram
13. Halad�knak sz�l� t�m�k - A Linux rendszerind�t�si folyamata
13.1. Hivatkoz�sok a bet�lt�si folyamat t�m�j�ban
14. Eme dokumentum m�s form�tumai
14.1. Acrobat PDF form�tum
14.2. Konvert�l�s Linuxdoc-r�l Docbook form�tumra
14.3. Konvert�l�s MS WinHelp form�tumra
14.4. A k�l�nb�z� form�tumok olvas�sa
15. "A" f�ggel�k - initrd.img f�jl k�sz�t�se
15.1. Az mkinitrd haszn�lata
15.2. Rendszermag-dokument�ci�k
15.3. Linuxman Book
16. "B" f�ggel�k - lilo.conf mintaf�jl
16.1. LILO forr�sanyagok
16.2. LILO hibaelh�r�t�s
16.3. Egy LILO be�ll�t�f�jl minta
17. "C" f�ggel�k - GRUB r�szletesen, grub.conf mintaf�jl
17.1. GRUB forr�sanyagok
17.2. GRUB tippek
17.3. Egy GRUB be�ll�t�f�jl minta
18. "D" f�ggel�k - ut�lagos rendszermag ford�t�s
19. "E" f�ggel�k - a gyakori hib�k elh�r�t�sa
19.1. A rendszermag rendben elk�sz�l, de a "make modules" nem siker�l
19.2. A programford�t�s rendben megt�rt�nik, de a rendszermag nem indul
19.3. A rendszer m�k�d�se felf�ggeszt�dik a LILO-n�l
19.4. No init found (nem tal�lhat� init)
19.5. Csom� ford�t�si hiba (compile error)
19.6. A "depmod" parancs "Unresolved symbol error messages" hiba�zenetet �r ki
19.7. A rendszermag nem t�lti be a modult, "Unresolved symbols" hiba�zenetet �r ki
19.8. A rendszermag nem tud bet�lteni egy modult
19.9. Bet�lthet� modulok
19.10. Olvasd el a dokument�ci�t
19.11. make clean
19.12. �ri�si vagy lass� rendszermag
19.13. A p�rhuzamos port/nyomtat� nem m�k�dik
19.14. A rendszermag nem fordul le
19.15. A rendszermag �j verzi�ja nem t�lt�dik be
19.16. Elfelejtetted futtatni a LILO-t, vagy a rendszered egy�ltal�n nem indul el
19.17. Azt �rja ki: "warning: bdflush not running"
19.18. Nem tudom m�k�d�sre b�rni az IDE/ATAPI CD-ROM-ot
19.19. Furcsa dolgokat jelez elavult �tv�laszt�si k�r�sekr�l (routing requests)
19.20. "Not a compressed kernel Image file" (nem t�m�r�tett rendszermag)
19.21. Probl�m�k a konzolos termin�llal, miut�n 1.3.x-re friss�tett�nk
19.22. �gy n�z ki, hogy nem ford�that�k le dolgok a rendszermag friss�t�se ut�n
19.23. Korl�tok kitol�sa
19.24. Hov� k�ldjem a hibajelent�st?

1. Bevezet�s

A k�vetkez� okokb�l ford�thatsz rendszermagot:

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.


1.1. FIGYELMEZTET�S

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!!)


1.2. Magyar ford�t�s

Az eredeti ford�t�st (v0.9) V�mosi Zolt�n k�sz�tette (1997). �jraford�totta (v6.3) Sz�jj�rt� L�szl� (2003.07.28). Friss�tette (v7.3) �s a lektor�lta Daczi L�szl� (2003.11.21).


2. Gyors l�p�sek - a rendszermag ford�t�sa

Ennek a r�sznek a szerz�je Al Dev (alavoor[AT]yahoo.com) (A legfrissebb verzi� megtal�lhat� a "http://milkyway.has.it" �s "http://www.milkywaygalaxy.freeservers.com" webhelyeken. Ezeken a helyeken ellen�rizheted a v�ltoz�sokat). A t�kr�z�seket megtal�lod a http://milkyway.bounceme.net webhelyen. Ezek a webhelyeken sok linuxos nyal�nks�got �s tippet is tal�lsz.

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.


2.1. El�k�sz�letek

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 BRS Backup-Recovery-Software (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.


2.2. A rendszermag kisebb fejleszt�se

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

A kisebb fejleszt�sekhez: 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:

	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
        
Esetleg egy m�sik m�dszer - �tm�solhat� a .config f�jl a r�gi rendszermag-forr�sf�b�l az �jba.

	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 .
        

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.

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.

Ezek ut�n l�sd a k�vetkez� r�szt, a programford�t�sr�l �s a telep�t�sr�l.


2.4. A t�relmetleneknek

  1. Csomagold ki a forr�st

  2. 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 ??

  3. 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).

  4. make xconfig # Szebb, de korl�tai vannak; csak "X" alatt fut

  5. make dep

  6. Adj egy egyedi nevet az �j rendszermagnak - szerkeszd az /usr/src/linux/Makefile f�jlt �s az EXTRAVERSION bejegyz�st

  7. nohup make bzImage

  8. "make modules" �s "make modules_install"

  9. ...�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.

  10. make install # Ez "NEM aj�nlott" - haszn�ld a "cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage.myker" parancsot

    M�sold �t a System.map f�jlt a /boot k�nyvt�rba: # cp System*.map* /boot/

    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

  11. �ll�tsd be a GRUB vagy a LILO rendszerbet�lt�t.

  12. Ind�tsd �jra a g�pet, �s ellen�rizd az �j rendszermag bet�lt�d�s�t

  13. K�sz�ts biztons�gi ment�lemezt a "bzdisk" vagy "mkbootdisk" paranccsal

  14. Opcion�lis - make rpm # RPM csomag k�sz�t�s�hez

  15. Opcion�lis - make clean (ha t�rhelyet akarsz felszabad�tani)

L�sd a fenti l�p�sek r�szleteit a k�vetkez� fejezetekben...


2.5. �j rendszermag k�sz�t�se - a l�p�sek �rtelmez�se

Az el�z� r�szben eml�tett l�p�sek r�szletei:

Figyelem: 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).

  1. Csomagold ki a forr�st: 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:
    
	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   
                  
    A bin86*.rpm �s az "as86" csak a R�GEBBI Linux 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
    bin86-mandrake honlapr�l , bin86-kondara ). 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 rpmfind.net kernel-source (keresd a RawHide-ot a leg�jabb RedHat-hez) �s rpmfind.net kernel-headers honlapr�l. Bizonyosodj meg arr�l is, hogy az /usr/src/linux egy szimbolikus hivatkoz�s, ami a megfelel� kicsomagolt forr�sra mutat.
    
	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 -> 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
                  
    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.

    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.

  2. Takar�t�s: Miel�tt az "mrproper" parancsot kiadn�nk, elmentheted a .config f�jlt.
    
	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 ??
                  

  3. Opcion�lis - m�sold �t a be�ll�t�f�jlt: 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:
    
        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
                  
    Esetleg egy m�sik m�dszer - �tm�solhatod a .config f�jlt a r�gi rendszermag-forr�sf�b�l az �jba.
    
	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 .
                  
    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.

  4. Be�ll�t�s:

    • 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.
      
	bash# man startx
      	bash# startx
      	bash# cd /usr/src/linux 
      	bash# make xconfig  # Szebb, b�r korl�tozott; csak "X" alatt fut
                          
      Ha hiba�zenetet kapsz, miszerint a "wish" nem tal�lhat�, telep�tsd a tk-8.3.rpm csomagot.

    • Ha nem tudod elind�tani az "X"-et, akkor pr�b�ld meg a k�vetkez�t:
      
		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 !!
                          

    A "make xconfig" vagy "make menuconfig" egy felhaszn�l�bar�t GUI fel�letet ind�t el. A "make config" egy parancssoros, konzolos fel�letet. Bet�ltheted a be�ll�t�f�jlt az /usr/src/linux/.config 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:

    • NAGYON FONTOS !!! : 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!!

    • V�laszd az SMP t�mogat�st - ak�r egy, ak�r t�bb processzorod van

    • 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).

    • 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 Bet�lthet� modulok fejezetben olvashatsz err�l.

    Ments �s l�pj ki a "make xconfig"-b�l. Minden kiv�lasztott be�ll�t�si opci� elment�d�tt az /usr/src/linux/.config (pont config) f�jlba.

  5. F�gg�s�gek: Most add ki a k�vetkez� parancsot:
    
	bash# make dep
                  

  6. Adj egyedi nevet az �j rendszermagodnak: Nevet is adhatsz a rendszermagnak, �gy az egyedi lesz �s nem akad �ssze a t�bbivel.
    
	bash# cd /usr/src/linux
    	bash# vi Makefile
                  
    Itt keresd meg az EXTRAVERSION = -19.8.0_blabla r�szt �s v�ltoztasd meg p�ld�ul �gy: EXTRAVERSION = -19.8.0MyKernel.26Jan2003

  7. Add ki a "make" parancsot: 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 gvim sz�vegszerkeszt�t a jobb olvashat�s�g �rdek�ben.
    
	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.
                  
    Most add ki a "make" parancsot:
    
		bash# cd /usr/src/linux
    		bash# man nohup
    		bash# nohup make bzImage &  
    		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.
                    

  8. BET�LTHET� MODULOK: 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 CSAK AKKOR 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.
    
	# 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> modules.out 2> modules.err  &
    	bash# make modules_install   # csak akkor add ki, ha a fenti "make" parancs sikeresen lefutott
                  
    Ez bem�solja a modulokat a /lib/modules k�nyvt�rba. R�szletesen a Bet�lthet� modulok fejezetben olvashatsz err�l.

  9. Most menj vacsor�zni vagy fek�dj le: 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.
    
	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  
                  

  10. bzImage: 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 LEHET, HOGY NEM FOG 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.
    
	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-<your_kernelversion_date>
    	# P�lda: cp /usr/src/linux/.config /boot/config-2.4.18-19.8.0-26mar2001
                  
    FIGYELEM: 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 "A" f�ggel�k - initrd.img f�jl k�sz�t�se fejezetben olvashatsz err�l.

  11. A LILO vagy a GRUB be�ll�t�sa: K�t lehet�s�g van a bet�lt�sre RedHat Linux alatt - a GRUB �s a LILO. A GRUB be�ll�t�sa: 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 "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!" . �gy megtarthatod a jelenlegi Linux rendszeredet ott, ahol van, �s telep�thetsz Windowst mell�. R�szletesen a "C" f�ggel�k - GRUB r�szletesen, grub.conf mintaf�jl fejezetben olvashatsz err�l. A LILO be�ll�t�sa: A LILO r�gebbi eszk�z, r�szletesen a "B" f�ggel�k - lilo.conf mintaf�jl fejezetben olvashatsz r�la.

  12. 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 mindig �RINTETLEN �s BIZTONS�GOS , p�ld�ul a /boot/vmlinuz-2.0.34-0.6

  13. 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:
    
	bash# cd /usr/src/linux
    	bash# make bzdisk
    	Haszn�lhat� m�g az mkbootdisk parancs -
    	bash# rpm -i mkbootdisk*.rpm
    	bash# man mkbootdisk
                  

  14. 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.
    
	make rpm   # RPM csomag �p�t�s�hez
                    

  15. Takar�t�s: Opcion�lis: make clean (ha t�rhelyet akarsz felszabad�tani)


2.8. Hov� k�ldjem a hibajelent�st?

Ha a fenti lehet�s�gek mindegyik�t kipr�b�ltad �s �gy gondolod, hogy a rendszermag hib�s. (Ez a fejezet eredetileg az "E" f�ggel�k - a gyakori hib�k elh�r�t�sa 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 Reporting Bugs for the Linux Kernel (A Linux-rendszermag hib�inak bejelent�se) honlapra.


3. Bet�lthet� modulok

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.

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.

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.

Olvasd el a Module-HOWTO (Modul HOGYAN) doksit: "http://www.tldp.org/HOWTO/Module-HOWTO" .

Olvasd el ezeket a k�zik�nyv-oldalakat is:

	bash# rpm -i /mnt/cdrom/Redhat/RPMS/modutils*.rpm
	bash# man lsmod
	bash# man insmod
	bash# man rmmod
	bash# man depmod
	bash# man modprobe
      
P�ld�ul, ha be akarod t�lteni a /lib/modules/2.4.2-2/kernel/drivers/block/loop.o modult, tedd ezt:

	bash# man insmod
	bash# modprobe loop
	bash# insmod loop
	bash# lsmod 
      
Az insmod keres�si �tvonal�t (PATH) az /etc/modules.conf f�jlban �ll�thatod be.


3.3. Hogyan telep�tsek csak egyetlen modult?

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!

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.

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!

M�sik p�lda: ha csak az fs/autofs modul �rdekel, akkor a k�vetkez�ket teszem:

	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.
        

T�bbet is megtudhatsz a Makefile-r�l �s a make-r�l, ha elolvasod a GNU make k�zik�nyv oldat:

Ismerkedj meg a modulokat elk�sz�t� Makefile-al. A f�jlnak van egy "module" sora, mint:

	modules: $(patsubst %, _mod_%, $(SUBDIRS))
        

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.

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


4. A rendszermag "kl�noz�sa"

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.

  1. RPM csomagot k�sz�thetsz a rendszermagb�l az rpmbuild -ba kernel*.spec paranccsal

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

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

  4. Ezen fel�l a /boot k�nyvt�r m�s f�jljait is, amik nincsenek a kernel*.rpm csomagban.


5. Fontos k�rd�sek �s v�laszok


5.3. Milyen hardvert t�mogatnak az �j verzi�j� rendszermagok?

Olvasd el a Hardware-HOWTO (Hardver HOGYAN) dokumentumban. Ezen k�v�l megn�zheted a " config.in " f�jlt a Linux forr�sk�dj�ban, vagy egyszer�en keresd ki a " make config " 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.


6. A rendszermag foltoz�sa (patching)

6.1. Egy folt alkalmaz�sa

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 " patch46.gz " 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 (" make clean " majd ezut�n " cd /usr/src; tar zcvf old-tree.tar.gz linux ", ami egy t�m�r�tett tar arch�vumot k�sz�t).

Teh�t folytatva a fenti p�ld�t, tegy�k fel, hogy van egy " patch46.gz " f�jl az /usr/src k�nyvt�rban. L�pj be cd az /usr/src k�nyvt�rba �s add ki a " zcat patch46.gz [verbar] patch -p0 " (vagy " patch -p0 [lt ] patch46 " 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 -s kapcsol�t a patch programhoz, ami azt jelzi a patch 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 /usr/src/linux k�nyvt�rba �s keress .rej kiterjeszt�s� f�jlokat. A patch r�gebbi verzi�i (azok a verzi�k, amiket als�bbrend� f�jlrendszeren ford�tottak) a visszadobott dolgokat # kiterjeszt�ssel l�tj�k el. Haszn�lhatod a " find " parancsot, hogy keressen helyetted; a "find . -name '*.rej' -print" ki�rja a standard kimenetre az �sszes .rej kiterjeszt�s� f�jlt, ami az aktu�lis k�nyvt�rban �s alk�nyvt�raiban van.

Ha minden rendben zajlott, adj ki egy " make clean ", " config ", and " dep " parancssorozatot, a 3. �s 4. r�szben le�rtak szerint.

El�g kev�s kapcsol�ja van a patch parancsnak. Ahogy fentebb eml�tettem, a patch -s minden �zenetet elnyom, kiv�ve a hiba�zeneteket. Ha valahol m�sutt tartod a rendszermag forr�s�t, nem az /usr/src/linux k�nyvt�rban, a patch -p1 (abban a k�nyvt�rban) rendben megfoltozza a dolgokat. Egy�b patch kapcsol�kat a j�l dokument�lt k�zik�nyv oldalakban keress.


6.2. Ha valami nem siker�l

(Figyelem: ez a r�sz legink�bb a meglehet�sen r�gi rendszermagokra vonatkozik)

A leggyakrabban el�fordul� probl�ma az volt, amikor egy folt m�dos�totta a " config.in " 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 config.in.rej f�jlt, hogy mi maradt az eredeti foltb�l. A v�ltoz�sokat �ltal�ban " + " �s " - " karakterek jelzik a sorok elej�n. N�zd meg a szomsz�dos sorokat, �s jegyezd meg, hogy " y "-al vagy " n " bet�vel vannak jel�lve. Most szerkeszd a config.in f�jlt, �s v�ltoztasd meg az " y "-t " n "-re �s az " n "-et " y "-ra, amikor sz�ks�ges. Adj ki egy "patch -p0 < config.in.rej" parancsot �s ha azt jelzi, hogy siker�lt, akkor folytathatod a be�ll�t�st �s ford�t�st. A config.in.rej f�jl ottmarad, de t�r�lhet�.

Ha tov�bbi probl�m�kba �tk�z�l, akkor haszn�laton k�v�li foltot telep�tett�l. Ha azt mondja, hogy " previously applied patch detected: Assume -R? " (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 " y "-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).

A folt visszavon�s�hoz haszn�ld a " patch -R " parancsot az eredeti folton.

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 linux-x.y.z.tar.gz f�jllal).


7. Tippek �s tr�kk�k


7.2. Felt�teles rendszermag-telep�t�s

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 /vmlinuz -hoz hozz�ny�ln�l (term�szetesen miut�n futtatod a lilo 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 LILO , �s semmi m�st), ami ad egy k�szenl�ti jelet. Enn�l a pontn�l be�rhatod: " new_kernel " az �j rendszermag ind�t�s�hoz.

Ha t�bb k�l�nb�z� rendszermag-forr�sf�t akarsz t�rolni egyszerre a g�pen (ez azonban rengeteg lemezter�letet fogyaszthat; l�gy �vatos), a legt�bbsz�r az /usr/src/linux-x.y.z k�nyvt�rba ker�lnek, ahol az x.y.z a rendszermag verzi�ja. Ezut�n "kiv�laszthatsz" egy forr�sf�t egy szimbolikus hivatkoz�s seg�ts�g�vel; p�ld�ul " ln -sf linux-1.2.2 /usr/src/linux ", 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 ln 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.


7.3. Rendszermag friss�t�sek

Russell Nelson ( [email protected] ) 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 "ftp://ftp.emlist.com" webhelyen, a pub/kchanges k�nyvt�rban, vagy a "http://www.crynwr.com/kchanges" webhelyen.


8. RPM csomagok felcsatol�sa (mount) az FTPFS seg�ts�g�vel

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.

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 Telep�t�s, friss�t�s f�nysebess�ggel fejezetben olvashatsz err�l.

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 "http://lufs.sourceforge.net/lufs" �s a "http://ftpfs.sourceforge.net" webhelyen.


8.2. Az ftpfs parancsai

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.


8.2.2. Az ftpmount-f�le megold�s

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]


	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�. [[email protected]]
	    * 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.
          

P�ld�ul: ftpmount [email protected] /mnt/ftpfs -uid=500 -gid=500 -dmask=555

�ltal�ban j� �tlet, ha nem adod meg param�terk�nt a jelszavadat, mivel az ftpmount �gyis k�rdezni fogja.


9. A rendszermagr�l sz�l� k�nyvek �s dokumentumok

A Linux-rendszermagr�l sz�l� k�nyveket tal�lsz a k�vetkez� helyeken:

A rendszermag k�sz�t�s�nek bemutat�sa: Presentation of Kernel building process NBLUG Linux Seminars - Kernel Building Presentation Talks

Hivatkoz�sok egy�b, a t�m�ba v�g� HOGYANokra:


10. Inform�ci�k a rendszermag f�jljair�l

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.

Figyelmeztet�s: nagyon el�vigy�zatosnak kell lenned ezekkel a f�jlokkal, �s nem szabad szerkeszteni vagy mozgatni/t�r�lni/�tnevezni �ket.


10.1. vmlinuz �s vmlinux

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.

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�).

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.

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.


10.5. bzImage

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

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


10.6. module-info

A "module-info" f�jl egy szimbolikus hivatkoz�s:

	$ 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
        

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:

# cp /boot/module-info-2.4.20-19.9 /boot/module-info-2.4.20-19.9.backup 
        
Ezt biztons�gosabb a module-info f�jlal megtenni, ritk�n v�ltoznak ugyanazon RH rendszermagok v�ltozat�n bel�l.

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.

N�zd meg a szkriptet �s keress r� a "module-info" sz�ra updmodules .

K�vetkezik egy r�szlet a szkriptb�l:

	#!/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$//') > ../modinfo
        

Az anaconda/utils/modlist program az anaconda-runtime*.rpm csomagban van a RedHat CD-ROM-on:

	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
        
Beszerezheted a forr�sk�dj�t (anaconda/utils/modlist.c) az anaconda*.src.rpm-b�l a "http://www.rpmfind.net/linux/rpm2html/search.php?query=anaconda" webhelyr�l. Egyb�l olvashatod is: modlist.c .

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.

A l�nyeg az, hogy "Ne t�vol�tsd el a module-info f�jlt."

N�h�ny inform�ci� a module-info f�jlr�l:

  • A rendszermag rpm f�jlok tartalmazz�k (az anaconda-runtime*.rpm �p�ti fel)

  • Egy hivatkoz�s a module-info-{kernel-version} f�jlhoz

  • 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).

  • Fontos az anaconda sz�m�ra - az anaconda/utils/modlist parancsban.

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


10.9. System.map

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.

NE b�ntsd a System.map f�jlokat.

	ls -ld /boot/System.map*
	lrwxrwxrwx    1 root     root           30 Jan 26 19:26 /boot/System.map -> 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
        

Hogyan k�sz�l a rendszermag szimb�lumt�bl�ja (Kernel Symbol Table)? 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:

	nm /boot/vmlinux-2.4.18-19.8.0 > 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 > System.map
	cp /usr/src/linux/System.map /boot/System.map-2.4.18-14   # For v2.4.18
        

Forr�s: "http://www.dirac.org/linux/systemmap.html"


10.9.3. Mi a rendszermag szimb�lumt�bl�ja (Kernel Symbol Table)?

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.

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.

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:


	   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
          

L�that�, hogy a dmi_broken nev� v�ltoz� a c03441a0 rendszermag-c�men van.


10.9.5. Mi az Oops?

Mi a leggyakoribb hiba a h�zilag k�sz�lt programjaiddal? A szegment�ci�s hiba (segfault). A j� �reg signal 11.

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.

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.

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.

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:

	   EIP: 0010:[<00000000>]
	   Call Trace: [<c010b860>]
          


10.9.6. Mit k�ze egy oops-nak a System.map f�jlhoz?

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.

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.

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.

Megjegyz�sek: Jelenleg k�tf�le c�mfelold�st v�gez a klogd.

a System.map f�jlt, ez�rt nem fontos ennek t�rgyal�s�n�l, de az�rt r�viden ismertetem.

A klogd dinamikus ford�t�sa

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.

M�s programok is haszn�lj�k a System.map f�jlt �s r�videsen ezzel is foglalkozom.


10.9.7. Hol kellene lennie a System.map f�jlnak?

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:

  1. /boot/System.map

  2. /System.map

  3. /usr/src/linux/System.map

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.

N�h�ny megjegyz�s:

  • 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??

  • A k�zik�nyv oldal nem �r le mindent. N�zd meg ezt:


	   # strace -f /sbin/klogd | grep 'System.map'
	   31208 open("/boot/System.map-2.4.18", O_RDONLY|O_LARGEFILE) = 2
          

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.

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!


11. Linux rendszer-adminisztr�ci�s eszk�z�k

K�t igaz�n j� adminisztr�ci�s eszk�z l�tezik Linuxra, ezek a Linuxconf �s a Webmin.

Linux rendszer-adminisztr�ci�s eszk�z�k:

Linux rendszer-adminisztr�ci�val kapcsolatos felhaszn�l�i k�zik�nyvek:

Rendszer-adminisztr�ci�s System Administration magazin:

Linux rendszer-adminisztr�ci�s tanfolyamok:


12. Telep�t�s, friss�t�s f�nysebess�ggel, az apt-get seg�ts�g�vel (Redhat, Debian, Suse, Mandrake, egy�b)

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.

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:

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

A k�zik�nyv oldal a k�vetkez� m�don tekinthet� meg:

			man apt-get
	  In the bottom of manual page, look at "See Also" section
			man apt.conf
			man apt-cache
			man apt-cdrom
	  

Egy p�lda az apt-get haszn�lat�ra:

			apt-get -f  upgrade postgresql-contrib
			apt-get  upgrade postgresql-contrib
			apt-get  install postgresql-contrib
			apt-get  install gaim
			apt-get dist-upgrade
		


12.2. Az "rpmfind" seg�dprogram

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: http://rpmfind.net/linux/rpmfind . 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 http://rpmfind.net c�men.


13. Halad�knak sz�l� t�m�k - A Linux rendszerind�t�si folyamata

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.

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.

A Linux bet�lt�si folyamat�nak r�szletes bemutat�sa:

  1. Az alaplapon l�v� BIOS el�id�zi a videok�rtya BIOS inicializ�l�s�t

  2. Az alaplapon l�v� BIOS inicializ�lja �nmag�t

  3. Az SCSI vez�rl�n l�v� BIOS inicializ�lja �nmag�t

  4. 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).

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

  6. 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.
    
A k�vetkez� sor a /boot/message f�jlb�l sz�rmazik:
    >
    >
    >
     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..........
    		

  7. 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:
    
Uncompressing Linux... Ok. 
    Booting the kernel. 
    	    
    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.

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

  9. 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:


13.1. Hivatkoz�sok a bet�lt�si folyamat t�m�j�ban

N�zd meg a k�vetkez� forr�sokat:


14. Eme dokumentum m�s form�tumai

Ezt a fejezetet Al Dev �rta, (a "http://milkyway.has.it" �s a "http://www.milkywaygalaxy.freeservers.com" webhelyen, t�kr�z�sei megtal�lhat�k a angelfire , geocities , virtualave , Fortunecity , Freewebsites , Tripod , 101xs �s 50megs webhelyeken)

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.

A dokumentum megtal�lhat� a

A k�vetkez� t�k�roldalakon is megtal�lhatod ezt a dokumentumot:

(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 "http://www.sgmltools.org" webhelyr�l. A forr�s leford�t�sa ut�n a k�vetkez� parancsot haszn�lhatod a konvert�l�shoz:


14.1. Acrobat PDF form�tum

PDF f�jlt a postscript f�jl felhaszn�l�s�val lehet k�sz�teni, vagy az acrobat distill illetve Ghostscript 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 "http://www.adobe.com" webhelyr�l. Al�bb egy egyszer� p�lda l�that�:

	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 &
        
Esetleg haszn�lhatod a k�vetkez� Ghostscript parancsot: ps2pdf . 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 ps2pdf 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 pdfwrite . 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.


14.4. A k�l�nb�z� form�tumok olvas�sa

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

          xdvi -geometry 80x90 howto.dvi man xdvi 
        
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.

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.

A postscipt dokumentum olvas�s�hoz add ki a

          gv howto.ps ghostscript howto.ps 
        
parancsot.

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.

A latex, LyX kimenet olvas�s�hoz haszn�ld a LyX X-Window el�t�tprogramot a latex programmal.


15. "A" f�ggel�k - initrd.img f�jl k�sz�t�se

Az initrd 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.)

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


15.3. Linuxman Book

Egy r�szlet a "http://www.linuxman.com.cy/rute/node1.html" 31.7. fejezet�b�l.

Az SCSI telep�t�s�nek buktat�i �s az initrd

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.

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.

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.

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.

31.6 fejezet initrd f�jl k�sz�t�se

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:


	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/
        

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.

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.


	-rw-r--r--    1 root     root       129448 Sep 27  1999 initrd/lib/aic7xxx.o
        

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.]:


	#!/bin/sash
	 
	aliasall
	 
	echo "Loading aic7xxx module"
	insmod /lib/aic7xxx.o 
        

Alaposan ellen�rizd az �sszes jogosults�got, majd futtasd a chroot parancsot a f�jlrendszer tesztel�s�hez.


	chroot ~/initrd /bin/sash
	/linuxrc
        

Ezut�n k�sz�ts egy "f�jlrendszer-f�jlt" (file system image), hasonl�an a 19.9 fejezetben le�rtakhoz:

	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
        

V�g�l t�m�r�tsd �ssze a f�jlrendszert a gzip programmal, valamilyen n�ven:

	gzip -c ~/file-inird > initrd-<kernel-version>
        

31.7 fejezet A lilo.conf m�dos�t�sa az initrd haszn�lat�hoz

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:


	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
        

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


16. "B" f�ggel�k - lilo.conf mintaf�jl

16.1. LILO forr�sanyagok

A k�vetkez� dokumentumokban olvashatsz a t�m�r�l:


16.2. LILO hibaelh�r�t�s

A csipog� (beeper) hibak�d-t�bl�zata:

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

A t�m�r�l olvashatsz a http://www.preggers.easynet.be/lilo.html honlapon.

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:

  • A kedvenc sz�vegszerkeszt�ddel nyisd meg a /etc/lilo.conf f�jlt:
    
# 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.
          

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

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


17. "C" f�ggel�k - GRUB r�szletesen, grub.conf mintaf�jl

17.1. GRUB forr�sanyagok

Olvasd a


	bash# man grub
	bash# man grubby   # (parancssoros eszk�z a grub, lilo, �s elilo be�ll�t�s�hoz)
	bash# man grub-install
      
Szerkeszd az /etc/grub.conf f�jlt, az �j rendszermagok bejegyz�seinek l�trehoz�s�hoz. L�sd az al�bbi mintaf�jlt:


17.2. GRUB tippek

A RedHat Linuxban a grub k�perny�j�n�l �llva nyomj egy c-t a parancssori kapcsol�k megtekint�s�hez:

	A Linux bet�lt�s�hez tedd ezt:
    grub> help
	  
    grub> root
        (hd1,1): Filesystem is type ext2fs, partition type 0x83
    grub> root (hd1,0)
	  
    grub> kernel / <Nyomj-TAB-ot>
    Kilist�zza az �sszes f�jlt.
	  
    grub> kernel /boot <Nyomj-TAB-ot>
    Kilist�zza a /boot k�nyvt�r tartalm�t.
	  
    grub> kernel /boot/vmlinuz
	  
    grub> boot
      

Err�l a GRUB Manual (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.

	grub> help
	grub> help rootnoverify
	grub> rootnoverify (hd0,0)
	grub> makeactive
	grub> chainloader +1
	grub> boot
      


17.3. Egy GRUB be�ll�t�f�jl minta


	# 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
      


18. "D" f�ggel�k - ut�lagos rendszermag ford�t�s

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

Videok�rtya/Monitor be�ll�t�sa:

Ha a leg�jabb Linuxot (2.4 vagy k�s�bbi) haszn�lod, kattints a KDE/GNOME munkaasztalon bel�l a Start->"System Settings"->Display men�pontra.

A Linux r�gebbi verzi�in�l k�vesd az al�bbi l�p�seket:

A videok�rty�t �s a monitort a k�vetkez� parancsokkal �ll�thatod be:

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

Hangk�rtya be�ll�t�sa:

Ha a leg�jabb Linuxot (2.4 vagy k�s�bbi) haszn�lod, kattints a KDE/GNOME munkaasztalon bel�l a Start->"System Settings"->Soundcard Detection men�pontra.

A r�gebbi Linux verzi�kn�l k�vesd az al�bbi l�p�seket:


	bash$ su - root
	bash# man sndconfig
	bash# /usr/sbin/sndconfig
      
Majd ind�tsd el az X-Window rendszer "KDE-munkaasztal�t" a "startx" paranccsal. Kattints a "K Start->ControlCenter->SoundServer->General->Test Sound" men�pontra. Ennek le kell j�tszania a teszthangot. Azt�n kattints a "K Start->MultiMedia->SoundMixer->SoundVolumeSlider" men�pontra �s �ll�tsd be a hanger�t.

H�l�zati k�rtya be�ll�t�sa: Ha a leg�jabb Linuxot (2.4 vagy k�s�bbi) haszn�lod, kattints a KDE/GNOME munkaasztalon bel�l a Start->"System Settings"->Network men�pontra.

A r�gebbi Linux verzi�kn�l k�vesd az al�bbi l�p�seket:

T�zfal �s IP-�lc�z�s be�ll�t�sa: 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 Firewall-IPMasq scripts honlapr�l, a NetFilter c�moldal�t a "http://netfilter.samba.org" webhelyen tal�lod. Idev�g� anyagokat tal�lsz a firewalling-matures �s Netfilter-FAQ honlapokon (valamint magyarul, a Firewall LDP Team webhely�n - a lektor).

A 2.4 alatti verzi�khoz telep�theted a t�zfal rpm csomagjait a rpmfind.net vagy a firewall.src.rpm honlapr�l.

Egy�b eszk�z�k be�ll�t�sa: Olvasd az ezzel foglalkoz� HOGYANokat a "http://www.tldp.org" webhelyen (tov�bb� a "HOGYAN-INDEX - Hardver" honlapon - a lektor).


19. "E" f�ggel�k - a gyakori hib�k elh�r�t�sa

19.1. A rendszermag rendben elk�sz�l, de a "make modules" nem siker�l

Jelens�g: A rendszermag elk�sz�l, �s elk�sz�l a bzImage, de a "make modules" m�r nem siker�l.

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:

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 ??
	  	


19.2. A programford�t�s rendben megt�rt�nik, de a rendszermag nem indul

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.

Megold�s: nem k�sz�tetted el az initrd f�jlt. Olvasd el az "A" f�ggel�k - initrd.img f�jl k�sz�t�se fejezetet.

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.


19.16. Elfelejtetted futtatni a LILO-t, vagy a rendszered egy�ltal�n nem indul el

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 " make zdisk " paranccsal is megtehetsz). Tudnod kell, hol van a gy�k�r ( / ) 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 /usr/src/linux forr�sf�d, ennek t�pus�t, �s norm�l esetben hova csatol�dik fel.

A k�vetkez� p�ld�ban a / a /dev/hda1 , �s a f�jlrendszer, ami tartalmazza a /usr/src/linux k�nyvt�rat, a /dev/hda3 , norm�l esetben a /usr al� van felcsatolva. Mindkett� second extended (ext2) f�jlrendszer. A m�k�d� rendszermag helye a /usr/src/linux/arch/i386/boot k�nyvt�r, �s bzImage a neve.

Az �tlet az, hogy ha van egy m�k�d� bzImage , 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.

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:

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

Ha az mkdir azt �rja ki, hogy a k�nyvt�r m�r l�tezik, ne t�r�dj vele. Most a cd 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:

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

A cd paranccsal l�pj be a / k�nyvt�rba �s v�laszd le a norm�l /usr f�jlrendszert:

cd / umount /mnt

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!

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 / k�nyvt�rban ( /vmlinuz 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 /vmlinuz , csak ezeket a v�ltoz�sokat tedd meg a fenti p�ld�hoz k�pest: v�ltoztasd meg a /dev/hda3 -at /dev/hda1 -re (a / f�jlrendszerre), az /mnt/src/linux -ot a /mnt -re, �s a if=bzImage -et if=vmlinuz -ra. A jegyzet arr�l, hogyan sz�rmaztatjuk a /mnt/src/linux -ot, figyelmen k�v�l hagyhat�.

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.


19.22. �gy n�z ki, hogy nem ford�that�k le dolgok a rendszermag friss�t�se ut�n

A Linux-rendszermag forr�sa tartalmaz sz�mos �n. include f�jlt (azok a dolgok, amik .h -val v�gz�dnek), amikre a standard /usr/include k�nyvt�rban l�v� f�jlok is hivatkoznak. �ltal�ban a k�vetkez� m�don hivatkoznak r�juk (ahol a xyzzy.h valamilyen f�jl a /usr/include/linux k�nyvt�rban): #include <linux/xyzzy.h> Norm�l esetben van egy linux nev� link a /usr/include k�nyvt�rban az include/linux k�nyvt�rra, ami a forr�son bel�l van ( /usr/src/linux/include/linux 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 root 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 p (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 chmod 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:

blah# tar zxvpf linux.x.y.z.tar.gz linux/include Figyelem: a " make config " �jra l�trehozza a /usr/src/linux linket, ha az nincs ott.