alavoor[AT]yahoo.com
v7.3, 2003. okt�ber 27
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 The Linux Documentation Project �tn�z�sre bevonta ezt a dokumentumot. Hamarosan �tszerkesztett �s friss�tett form�ban jelenik meg - a lektor)
A k�vetkez� okokb�l ford�thatsz rendszermagot:
Rendszermag-fejleszt�st v�gzel
�j hardvert raksz a sz�m�t�g�pbe
Testre akarod szabni a rendszermagot, �s nem akarod a disztrib�ci�val sz�ll�tott, alap�rtelmezett verzi�t haszn�lni.
V�delmi szervezetek vagy katonai alkalmaz�sok 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).
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.
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!
Ha saj�t kez�leg ford�tod a rendszermagot, akkor az fel�r a k�d elolvas�s�val �s ellen�rz�s�vel!
Minden egyes egyetemnek, iskol�nak �s koll�giumnak a g�pek haszn�lata el�tt le kellene ford�tania az oper�ci�s rendszermagot!
A fejl�d�sed �s tud�sod n�vel�se c�lj�b�l, �s persze csak sz�rakoz�sk�ppen!
A nagyon speci�lis tudom�nyos alkalmaz�sokhoz - val�sz�n�leg - rendszermagot kell ford�tanod
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.
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.
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!
...�s m�g ezer m�s okb�l - t�l sok lenne mind felsorolni!
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.
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!!)
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).
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.
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.
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 |
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.
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
Changes: ebben olvashat�k a minim�lis k�vetelm�nyek valamint n�h�ny megjegyz�s
kernel.txt: ebben van a "Linux-rendszermag magyar�zata"
Olvasd el az �sszes *.txt f�jlt az /usr/src/linux/Documentation k�nyvt�rban, de legfontosabbak a kernel*.txt f�jlok.
Csomagold ki a forr�st
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 ??
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).
make xconfig # Szebb, de korl�tai vannak; csak "X" alatt fut
make dep
Adj egy egyedi nevet az �j rendszermagnak - szerkeszd az /usr/src/linux/Makefile f�jlt �s az EXTRAVERSION bejegyz�st
nohup make bzImage
"make modules" �s "make modules_install"
...�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.
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
�ll�tsd be a GRUB vagy a LILO rendszerbet�lt�t.
Ind�tsd �jra a g�pet, �s ellen�rizd az �j rendszermag bet�lt�d�s�t
K�sz�ts biztons�gi ment�lemezt a "bzdisk" vagy "mkbootdisk" paranccsal
Opcion�lis - make rpm # RPM csomag k�sz�t�s�hez
Opcion�lis - make clean (ha t�rhelyet akarsz felszabad�tani)
L�sd a fenti l�p�sek r�szleteit a k�vetkez� fejezetekben...
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).
Figyelem: 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 nagyon biztons�gosak �s a jelenlegi rendszermagot nem �rintik, azt nem m�dos�tj�k.
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 |
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 |
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.
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 ?? |
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 |
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 . |
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 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 !! |
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.
F�gg�s�gek: Most add ki a k�vetkez� parancsot:
bash# make dep |
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 |
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. |
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. |
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 |
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 |
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 |
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.
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
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 |
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 |
Takar�t�s: Opcion�lis: make clean (ha t�rhelyet akarsz felszabad�tani)
Olvasd el az "D" f�ggel�k - ut�lagos rendszermag ford�t�s fejezetet.
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.
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 |
bash# man insmod bash# modprobe loop bash# insmod loop bash# lsmod |
A modulok seg�deszk�zeinek RPM csomagj�t �gy telep�theted:
bash# rpm -i /mnt/cdrom/Redhat/RPMS/modutils*.rpm |
Az insmod beilleszti a modult a fut� rendszermagba. A modulok �ltal�ban a .o kiterjeszt�ssel rendelkeznek; a p�ldak�nt eml�tett neve drv_hello.o , �gy ennek beilleszt�s�hez kiadjuk az: " insmod drv_hello.o " parancsot. A rendszermag �ltal jelenleg haszn�lt modulok list�j�hoz haszn�ld az lsmod parancsot. A kimenet valami ilyesmi: blah# lsmod Module: #pages: Used by: drv_hello 1 " drv_hello " 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 " rmmod drv_hello " parancsot. Figyeld meg, hogy az rmmod egy modulnevet, nem pedig egy f�jlnevet ig�nyel; ezt kinyerheted az lsmod list�j�b�l. A t�bbi modul-seg�deszk�z c�ljait a k�zik�nyv-oldalaik �rj�k le.
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 y -el ezekre a " make config " alatt. Ford�ts egy �j rendszermagot �s ind�tsd el. Azt�n: cd az /usr/src/linux k�nyvt�rba ism�t, �s: " make modules ". 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 /usr/src/linux/modules k�nyvt�rba. Haszn�lhatod �ket egyenesen abb�l a k�nyvt�rb�l vagy hajtsd v�gre a " make modules_install " parancsot, ami telep�ti �ket a /lib/modules/x.y.z k�nyvt�rba, ahol x.y.z a rendszermag verzi�ja.
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: insmod /usr/src/linux/modules/msdos.o , �s azt�n rmmod msdos , 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: mindig k�zvetlen�l a rendszermagba �ll�tsd be, ha "ment�lemezen" akarod haszn�lni.
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:
University of Utah Makefile "http://www.math.utah.edu/docs/info/make-stds_toc.html"
University of Hawaii Makefile "http://www.eng.hawaii.edu/Tutor/Make"
A Linuxban - man make
A Linuxban - info make
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).
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.
RPM csomagot k�sz�thetsz a rendszermagb�l az rpmbuild -ba kernel*.spec paranccsal
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.
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.
Ezen fel�l a /boot k�nyvt�r m�s f�jljait is, amik nincsenek a kernel*.rpm csomagban.
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.
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.
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.
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.
Linus aj�nl egy adott verzi�j� gcc-t a README 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.
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.
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...
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.
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.
(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).
M�r n�h�ny foltoz�s ut�n a .orig 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 patch azon verzi�i, amik a # karaktert haszn�lj�k a visszautas�t�sok f�jlneveiben, a tilde (~) karakterrel jelzik a .orig f�jlokat.
Vannak jobb m�dszerek is a .orig f�jlokt�l t�rt�n� megszabadul�sra, amik f�ggnek a GNU xargs 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 --
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.
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.
Ha l�tni szeretn�d a napl�kat, amiket a " make " vagy a " patch " parancsok csin�lnak, akkor �tir�ny�thatod a kimenet�ket egy f�jlba. El�sz�r n�zd meg, milyen shellt haszn�lsz: " grep root /etc/passwd " �s keress valami ehhez hasonl�t: " /bin/csh ".
Ha sh-t vagy bash-t haszn�lsz, a (parancs) 2>&1 | tee (kimeneti f�jl) utas�t�ssor k�sz�t egy m�solatot a (parancs) kimenet�r�l a " (kimeneti f�jl) "-ba.
A csh vagy tcsh eset�n haszn�ld a (parancs) |& tee (kimenti f�jl) form�t.
Az rc eset�n (megjegyz�s: val�sz�n�leg nem ezt haszn�lod) : (parancs) >[2=1] | tee (kimeneti f�jl)
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.
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.
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.
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:
Jelentkezz be root felhaszn�l�k�nt (su - root) �s futtasd ezt a szkriptet:
#!/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:[email protected] /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 |
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.
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.
cd /mnt/ftpfs/[user:pass@]ftp_server[:port] |
Valami ilyesmit csin�lj: cd /mnt/ftpfs/ftp.kernel.org. �s mi t�rt�nik? M�r ott is vagy!
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.
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.
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:
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]
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:
mount -n -t ftpfs none /mnt/ftpfs -o ip=127.0.0.1,user=mali,pass=my_pass
A k�tet lev�laszt�s�ra haszn�lhat� az
umount mount_point |
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).
N�h�ny b�lcs sz�:
Haszn�ld a -n felcsatol�si kapcsol�t! Gondolom, nem akarod a felhaszn�l�/jelsz� inform�ci�idat az mtab-ban viszontl�tni.
Ne "t�pd ki a falb�l"! (Kit�pni a falb�l = egy tucat folyamat m�g olvassa a felcsatol�si pont alatti dolgokat)
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!).
Az IP c�mform�tum nem k�ser - haszn�ld az ftpmount-ot.
A Linux-rendszermagr�l sz�l� k�nyveket tal�lsz a k�vetkez� helyeken:
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 "http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html" honlapon is. Ez sz�mos fontos hivatkoz�st tartalmaz Linux-rendszermag tank�nyvekre �s dokument�ci�kra. El kell l�togatni erre a webhelyre.
Kernel book (Rendszermag k�nyv) a "http://kernelbook.sourceforge.net" �s a "http://sourceforge.net/projects/kernelbook" honlapon.
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 "http://www.tldp.org/guides.html" honlapon.
FreeTech k�nyvek: "http://www.tcfb.com/freetechbooks/booklinuxdev.html"
Rusty-f�le doksik: "http://www.netfilter.org/unreliable-guides"
Linux-rendszermag hivatkoz�sok: "http://www.topology.org/soft/lkernel.html"
Linux Kernel Internals: "http://www.moses.uklinux.net/patches/lki.html"
K�nyvekre mutat� hivatkoz�sok: "http://linux-mm.org/kernel-links.shtml"
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:
Bootdisk-HOWTO (Linux ind�t�lemez HOGYAN)
Sound-HOWTO : hangk�rty�k �s seg�dprogramjaik
SCSI-HOWTO: minden, amit tudni kell az SCSI vez�rl�kr�l �s eszk�z�kr�l. Olvasd a SCSI-2.4-HOWTO doksiban.
NET-2-HOWTO: h�l�zatkezel�s
PPP-HOWTO: PPP h�l�zatkezel�s �ltal�ban
PCMCIA-HOWTO: a notebook g�ped meghajt�ir�l
ELF-HOWTO: ELF: mi is ez, konvert�l�s... T�k�roldalak: ELF-HOWTO-mirror . L�sd m�g: GCC-HOWTO
Hardware-HOWTO: a t�mogatott hardverek �ttekint�se
Module mini-HOWTO: m�g t�bb inform�ci� a rendszermag-modulokr�l
Kerneld mini-HOWTO: a kerneld d�monr�l
BogoMips mini-HOWTO: ( BogoMips mini-HOGYAN: ) ha csak k�v�ncsi vagy.
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.
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.
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.
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 |
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�.
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 |
R�szletesen az "A" f�ggel�k - initrd.img f�jl k�sz�t�se fejezetben olvashatsz err�l.
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).
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 |
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 |
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.
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!
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 |
Ha a GRUB rendszerbet�lt�t haszn�lod, akkor lesz ott egy "grub" k�nyvt�r is.
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 |
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"
�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.
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.
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.
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.
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.
K�t f�jl haszn�latos szimb�lumt�blak�nt:
/proc/ksyms
System.map
Na m�rmost. M�r tudod, mi is a System.map f�jl.
Minden alkalommal, ha �j rendszermagot ford�tasz, a k�l�nb�z� szimb�lumnevek c�mei megv�ltoznak.
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.
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.
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>] |
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.
Statikus ford�t�st, ami haszn�lja a System.map f�jlt.
A dinamikus ford�t�st, amit a bet�lthet� modulokkal haszn�lnak, nem haszn�lja
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.
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:
/boot/System.map
/System.map
/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!
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,
satan# strace lsof 2>&1 1> /dev/null | grep System readlink("/proc/22711/fd/4", "/boot/System.map-2.4.18", 4095) = 23 |
�s a ps :
satan# strace ps 2>&1 1> /dev/null | grep System open("/boot/System.map-2.4.18", O_RDONLY|O_NONBLOCK|O_NOCTTY) = 6 |
valamint sz�mos egy�b szoftver is, mint a dosemu ig�nyli a megfelel� System.map-et.
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.
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:
/boot/vmlinuz-2.2.14
/boot/vmlinuz-2.2.13
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:
/boot/System.map-2.2.14 /boot/System.map-2.2.13 |
Mi van, ha k�t m�solatod van ugyanabb�l a rendszermagb�l? Mint itt:
/boot/vmlinuz-2.2.14
/boot/vmlinuz-2.2.14.nosound
A legjobb v�lasz az lehet, ha az �sszes szoftver a k�vetkez� f�jlokat n�zi meg:
/boot/System.map-2.2.14 /boot/System.map-2.2.14.nosound |
Haszn�lhatsz szimbolikus hivatkoz�sokat is:
System.map-2.2.14 System.map-2.2.14.sound ln -s System.map-2.2.14.sound System.map # Itt System.map -> System.map-2.2.14.sound |
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:
A Linuxconf megtal�lhat� a http://www.solucorp.qc.ca/linuxconf 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".
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 http://www.webmin.com webhelyen. Itt let�lthet� a Webmin csomag.
Google k�nyvt�r http://directory.google.com/Top/Computers/Software/Operating_Systems/Unix/Administration/
�me a RedHat adminisztr�ci�s eszk�z�k list�ja:
# 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 & # /usr/sbin/redhat-config-network & Majd pr�b�lkozz m�s parancsokkal. |
Vizu�lis valamint Samba seg�dprogramok �s egyebek megtal�lhat�k a http://www.ibiblio.org/pub/Linux/system/admin/frontends/!INDEX.html �s http://www.ibiblio.org/pub/Linux/system/admin/!INDEX.html honlapokon.
Rendszer, h�l�zati �s adminisztr�ci�s seg�dprogramok tal�lhat�k a http://gd.tuwien.ac.at/opsys/linux/applications/text1.html#sysad honlapon.
K�perny�-alap� adminisztr�ci�s seg�dprogramok a Linux Refresher webhelyr�l: http://linuxrefresher.com/maintenance/admgui/guiconf.htm
SuSE YAST adminisztr�ci�s seg�dprogram, Redhat /usr/sbin/redhat-conf* �s egy�b seg�dprogramok: http://freshmeat.net/browse/253/?topic_id=253 http://freshmeat.net/browse/201/?topic_id=201
Linux rendszer-adminisztr�ci�val kapcsolatos felhaszn�l�i k�zik�nyvek:
http://tldp.org/LDP/lame/LAME/linux-admin-made-easy/index.html
Linux rendszer-adminisztr�ci�val kapcsolatos gyakorlatok: http://www.yolinux.com/TUTORIALS/LinuxTutorialSysAdmin.html
Rendszer-adminisztr�ci�s System Administration magazin:
Linux rendszer-adminisztr�ci�s tanfolyamok:
Online India, Pune: http://www.nixcraft.com/services/education/redhat/
Online UK : http://www.firstalt.co.uk/courses/la2.html
Online UK : http://training.gbdirect.co.uk/courses/linux/running_linux_in_the_enterprise.html
Online USA : http://www.sgi.com/support/custeducation/courses/linux/sys_admin.html
Online USA : HOTT Training
Google directory: Google Linux System Admin education
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.
Ha RedHat Linuxot haszn�lsz, t�ltsd le az apt-get csomagot az Apt for Redhat Linux (Apt a RedHat Linuxhoz) honlapr�l.
A tov�bbi r�szletekr�l az Apt for Redhat Linux (Apt a RedHat Linuxhoz) honlapon olvashatsz.
Alaposan olvasd �t a dokument�ci�t miel�tt haszn�ln�d. Olvasd el a Debian Docs �s User's Manuals (Felhaszn�l�i k�zik�nyvek) tov�bb� APT HOWTO honlapokat �s v�laszd ki a megfelel� nyelvet, p�ld�ul English: HTML
APT for RPM Based Linux Distributions (APT az RPM-alap� Linux terjeszt�sekhez)
List of Distributions which support APT (Az APT programot t�mogat� terjszt�sek list�ja)
N�zd meg a YUM seg�dprogramot a YUM - Yellowdog Updater, Modified honlapon.
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 |
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 http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt honlapr�l.
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.
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:
Az alaplapon l�v� BIOS el�id�zi a videok�rtya BIOS inicializ�l�s�t
Az alaplapon l�v� BIOS inicializ�lja �nmag�t
Az SCSI vez�rl�n l�v� BIOS inicializ�lja �nmag�t
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).
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.
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.......... |
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. |
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.
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:
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:
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 |
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
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:
�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:
Karakteres eszk�z�k inicializ�l�sa: a k�vetkez� 3 sor a linux/drivers/char/serial.c f�jlb�l sz�rmazik:
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
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:
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.
A merevlemez-elrendez�s vizsg�lata: a k�vetkez� sorok a linux/drivers/block/genhd.c f�jlb�l sz�rmaznak:
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.
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:
N�zd meg a k�vetkez� forr�sokat:
The Linux Boot Process (A Linux bet�lt�si folyamata)
Bootdisks and Boot Process (Ind�t�lemezek �s a bet�lt�si folyamat)
Linux Boot Process - by San Gabreil LUG (Linux bet�lt�si folyamat - �rta San Gabreil LUG)
Boot Process (Netmag) (Bet�lt�si folyamat (Netmag))
Boot Process (LUG Victoria) (Bet�lt�si folyamat (LUG Victoria))
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
"http://www.tldp.org" 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.
A k�vetkez� t�k�roldalakon is megtal�lhatod ezt a dokumentumot:
Egy�b, hozz�d k�zeli t�k�roldalak (h�l�zati c�mt�l f�gg) tal�lhat�k a "http://www.tldp.org/mirrors.html" honlapon. V�lassz egy webhelyet �s l�pj be az /LDP/HOWTO/xxxxx-HOWTO.html k�nyvt�rba.
A dokumentumot egyszer� tar csomagk�nt is let�ltheted HTML, DVI, Postscript vagy SGML form�tumban a "ftp://www.tldp.org/pub/Linux/docs/HOWTO/other-formats/" �s "http://www.tldp.org/docs.html#howto" honlapokr�l.
A sima sz�veges form�tum megtal�lhat� az "ftp://www.tldp.org/pub/Linux/docs/HOWTO" t�rhelyen illetve a "http://www.tldp.org/docs.html#howto" honlapon.
Egyoldalas HTML f�jlk�nt let�ltheted a "http://www.tldp.org/docs.html#howto" 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
M�s nyelvi (mint p�ld�ul francia, n�met, spanyol, k�nai, jap�n) ford�t�sok tal�lhat�k a "ftp://www.tldp.org/pub/Linux/docs/HOWTO" �s "http://www.tldp.org/docs.html#howto" honlapokon. J�l j�n b�rmely seg�ts�g t�letek a m�s nyelvre val� ford�t�shoz (�me :) - a ford.)
sgml2html xxxxhowto.sgml (t�bboldalas HTML f�jlt k�sz�t)
sgml2html -split 0 xxxxhowto.sgml (egyoldalas HTML f�jlt k�sz�t)
sgml2rtf xxxxhowto.sgml (RTF f�jlt k�sz�t)
sgml2latex xxxxhowto.sgml (LaTeX f�jlt k�sz�t)
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 & |
(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 ld2db.sh szkriptet, valamint n�h�ny perl szkriptet. Az ld2db kimenete nem 100%-ig tiszta, ez�rt haszn�ld a clean_ld2db.pl perl szkriptet. Lehet, hogy k�zzel is kell jav�tani n�h�ny sort a doksiban.
T�ltsd le a ld2db programot a "http://www.dcs.gla.ac.uk/~rrt/docbook.html" vagy a "http://milkyway.has.it" , Milkyway Galaxy site webhelyr�l.
A cleanup_ld2db.pl perl szkriptet let�ltheted a "http://milkyway.has.it" �s Milkyway Galaxy site webhelyekr�l.
bash$ ld2db.sh file-linuxdoc.sgml db.sgml bash$ cleanup.pl db.sgml > db_clean.sgml bash$ gvim db_clean.sgml bash$ docbook2html db.sgml |
�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:
bash$ sgml2html xxxxhowto.sgml (ez HTML f�jlt k�sz�t) bash$ sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file) |
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 |
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 Windows 95, OS/2 �s egy�b oper�ci�s rendszerekhez beszerezhet� a "http://www.cs.wisc.edu/~ghost" webhelyr�l.
A postscipt dokumentum olvas�s�hoz add ki a
gv howto.ps ghostscript howto.ps |
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.
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).
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.
Olvasd el az mkinitrd k�zik�nyv oldal�t.
/sbin/mkinitrd --help # vagy egyszer�en: "mkinitrd --help" usage: mkinitrd [--version] [-v] [-f] [--preload <module>] [--omit-scsi-modules] [--omit-raid-modules] [--omit-lvm-modules] [--with=<module>] [--image-version] [--fstab=<fstab>] [--nocompress] [--builtin=<module>] [--nopivot] <initrd-image> <kernel-version> (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 |
A k�vetkez� fejezetekben olvashatsz arr�l, hogyan kell k�zzel elk�sz�teni az initrd f�jlt.
A /boot/initrd.img elk�sz�t�s�r�l sz�l az /usr/src/linux/Documentation/initrd.txt le�r�s, valamint a Loopback-Root-mini-HOWTO .
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).
A k�vetkez� dokumentumokban olvashatsz a t�m�r�l:
Olvasd a rendszereden l�v� LILO dokument�ci�t:
# 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 |
17 GRUB be�ll�t�f�jl
A csipog� (beeper) hibak�d-t�bl�zata:
T�bl�zat 1. Csipog� hibak�d-t�bl�zat
K�d | Le�r�s |
---|---|
0 | PC-hangsz�r� hiba |
1 | DRAM friss�t�si hiba |
2 | Parit�shiba (Paritykring defect) |
3 | Hiba az alap 64K RAM-ban |
4 | Rendszerid�z�t� hiba |
5 | Processzor hiba |
6 | Billenty�zet-vez�rl� hiba |
7 | Virtu�lis m�d hiba |
8 | A videomem�ria tesztje nem siker�lt |
9 | hib�s ROM-BIOS ellen�rz� �sszeg |
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.
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�:
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 |
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:
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 |
Olvasd a
"http://www.tldp.org/HOWTO/Linux+Win9x+Grub-HOWTO/intro.html" ( "http://tldp.fsf.hu/HOWTO/Linux+Win9x+Grub-HOWTO-hu.html" ) dokumentumot.
GNU GRUB "http://www.gnu.org/software/grub"
Redhat Manual (RedHat k�zik�nyv).
Grub Manual (Grub k�zik�nyv)
bash# man grub bash# man grubby # (parancssoros eszk�z a grub, lilo, �s elilo be�ll�t�s�hoz) bash# man grub-install |
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 |
# 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 |
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:
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.
N�zd meg a monitor le�r�s�t, �s keresd meg a "Technical Specifications" ("Technikai param�terek") oldalt.
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 |
Hangk�rtya be�ll�t�sa:
K�sd be a k�ls� hangsz�r�kat a hangk�rtya kiment�re.
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.)
Olvasd a hanggal foglalkoz� HOGYANokat a "http://www.tldp.org" webhelyen (tov�bb� a "HOGYAN-INDEX - MIDI, hangk�rty�k" honlapon - a lektor).
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 |
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:
Haszn�ld az /sbin/linuxconf programot
vagy a KDE vez�rl�pultot
Olvasd a h�l�zattal foglalkoz� HOGYANokat a "http://www.tldp.org" webhelyen (tov�bb� a "HOGYAN-INDEX - H�l�zat" honlapon - a lektor).
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).
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 ?? |
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
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 |
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 Telep�t�s, friss�t�s f�nysebess�ggel fejezetet.) K�zzel szinkronban tartani csomagok �s programoz�i k�nyvt�rak sz�zait fene nagy munka, haszn�ld az apt-get programot.
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.
Jelens�g: Miut�n fel�p�tetted a rendszermagot �s �jraind�tott�l, a rendszer v�rakozik �pp a LILO el�tt.
Ok: 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.
Megold�s: 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.
A k�vetkez� hib�t gyakran k�vetik el a kezd� felhaszn�l�k.
Ha az �j rendszermagod nem indul el, �s a k�vetkez�t hiba�zenetet kapod:
Warning: unable to open an initial console Kernel panic: no init found. Try passing init= option to kernel |
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.
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
bash# man init |
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.
bash# make clean && make mrproper # "K�TELEZ� KIADNOD AZ mrproper parancsot", egy�bk�nt probl�m�k sz�zai jelentkeznek! |
bash# export TERM=VT100 bash# make menuconfig # �jabb, az "ncurses"/"curses"-t haszn�lja, ha nincs telep�tve nem m�k�dik |
A depmod parancs fut�sakor "Unresolved symbols" hiba�zenetet �r ki. Az al�bbi p�lda mutatja be az esetet:
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 |
Ok: Nem ford�tottad �s telep�tetted a modulokat az �j rendszermag elk�sz�t�se ( "make bzImage" ) ut�n.
Megold�s: Az �j rendszermag elk�sz�t�se ut�n musz�j ezt tenned:
bash$ su - root bash# cd /usr/src/linux bash# make modules bash# make modules_install |
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 make clean parancs kiad�sa, majd a modulok ford�t�sa. Ezt az al�bbi parancsok kiad�s�val teheted meg:
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 & bash# tail -f nohup.out (.... to monitor the progress) bash# make modules bash# make modules_install |
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 bet�lthet� modul NEM m�k�dik �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.
Az alap�rtelmezett bet�lthet� modulokat telep�theted �gy:
Az al�bb megadott l�p�s nem sz�ks�ges, de HIBA ESET�N SZ�KS�G LEHET R� , 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.
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:
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 |
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
bash# rpm -i /mnt/cdrom/contrib/kernel-modules*.rpm ....(A r�gi Linux rendszerekhez, amikben nincs el�re telep�tve az insmod) |
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.
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 |
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 make clean 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 make dep parancsot is.
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.
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 /proc/meminfo mutat, vagy a " free " parancs.
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.
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 lp1 eszk�z�d van a r�gi rendszermag alatt, ez val�sz�n�leg lp0 az �j verzi�n�l. Haszn�ld a " dmesg parancsot , vagy n�zd meg a napl�kat a /var/log k�nyvt�rban, hogy kider�tsd az eszk�z nev�t.
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 README 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�.
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.
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 "http://www.bitwizard.nl/sig11" webhelyen.
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: " boot = /dev/hda1 " ahelyett, hogy " boot = /dev/hda " 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).
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.
Ez komoly probl�ma lehet. A rendszermag v1.0-�s verzi�j�t�l kezdve (1994. �pr. 20-k�r�l), az " update " nev� programot, ami rendszeresen �r�ti a f�jlrendszer puffereit, fejlesztett�k/kicser�lt�k. Szerezd meg a " bdflush " 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 " update " n�ven telep�ti, �s miut�n �jraind�tottad a rendszert, az �j rendszermagnak m�r nem szabad panaszkodnia.
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.
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.
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).
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.
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.
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.
Szerezd be a route program �jabb verzi�j�t �s b�rmely egy�b program�t is, ami �tv�laszt�si inform�ci�kat kezel. Az /usr/include/linux/route.h (ami igaz�b�l egy f�jl a /usr/src/linux k�nyvt�rban) megv�ltozott.
Ne haszn�ld bet�lt�f�jlk�nt a vmlinux f�jlt, ami a /usr/src/linux k�nyvt�rban van, a [..]/arch/i386/boot/bzImage a megfelel�.
V�ltoztasd meg a dumb sz�t linux -ra a konzol termcap bejegyz�s�ben, a /etc/termcap f�jlban. Ezen k�v�l egy terminfo bejegyz�st is l�tre kell hoznod.
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.
A k�vetkez� n�h�ny p�lda 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:
echo 4096 > /proc/sys/kernel/file-max echo 12288 > /proc/sys/kernel/inode-max echo 300 400 500 > /proc/sys/vm/freepages |
R�szletesen a Gyors l�p�sek - Rendszermag-ford�t�s fejezet Hov� k�ldjem a hibajelent�st? alfejezet�ben olvashatsz err�l.