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:
Ha saját kezűleg fordítod a rendszermagot, akkor az felér a kód elolvasásával és ellenőrzésével!
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
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.
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.
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 . |
Ezek után lásd a következő részt, a programfordításról és a telepítésről.
make xconfig # Szebb, de korlátai vannak; csak "X" alatt fut
Másold át a System.map fájlt a /boot könyvtárba: # cp System*.map* /boot/
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 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:
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.
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 |
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).
RPM csomagot készíthetsz a rendszermagból az rpmbuild -ba kernel*.spec paranccsal
Ezen felül a /boot könyvtár más fájljait is, amik nincsenek a kernel*.rpm csomagban.
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.
(Figyelem: ez a rész leginkább a meglehetősen régi rendszermagokra vonatkozik)
A folt visszavonásához használd a " patch -R " parancsot az eredeti folton.
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)
Russell Nelson ( nelson@crynwr.com ) 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.
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.
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:pass@ftp.kernel.org /mnt/ftpfs #mkdir -p /mnt/ftpfs /mnt/ftpfs/updates /mnt/ftpfs/rpms /mnt/ftpfs/contrib # Redhat ftp mirror sites - http://www.redhat.com/download/mirror.html FTPSITE="csociety-ftp.ecn.purdue.edu" USER="anonymous:pass" ftpmount $USER@$FTPSITE/pub/redhat/redhat /mnt/ftpfs/site ftpmount $USER@$FTPSITE/pub/redhat/redhat/linux/updates/8.0/en/os /mnt/ftpfs/updates ftpmount $USER@$FTPSITE/pub/redhat/redhat/linux/8.0/en/os/i386/RedHat /mnt/ftpfs/rpms ftpmount $USER@$FTPSITE/pub/redhat-contrib /mnt/ftpfs/contrib |
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!
A paraméterek: [alapértékek] * user: A felhasználói név, amivel belépsz az FTP szerverre. [anonymous] * password: A felhasználói jelszó. [user@ftpfs.sourceforge.net] * hostname: Az FTP szerver. * port: A port, amin a szerver figyel. [21] * root_dir: Az FTP szerver felcsatolandó könyvtára. Megadható a bevezető / jel nélkül is (vagyis "home/duru", nem "/home/duru/"). [/] * mount_point: A helyi könyvtár, amibe az FTP könyvtárat fel akarod csatolni. * own: Jelzőbit minden távoli fájl tulajdonosi viszonyának jelzésére. Olyan FTP-knél hasznos, amik nem felhasználói neveket, hanem azonosítókat (UID) listáznak ki. * uid: Annak a helyi felhasználónak az UID-je, akié lesz a felcsatolt könyvtár * gid: A helyi csoport azonosítója, aki birtokolja a felcsatolt könyvtárat. * fmask: A numerikus fájlmaszk, ami az összes felcsatolt fájléval VAGY kapcsolatban lesz. * dmask: A numerikus könyvtármaszk, ami az összes felcsatolt könyvtáréval VAGY kapcsolatban lesz. * active: Jelzőbit az aktív módú FTP forgalom jelzésére. Hasznos, ha valamilyen tűzfal mögött vagy, és nem tudsz véletlenszerűen kiválasztott portokhoz kapcsolódni. |
Például: ftpmount mali@ftp.linuxnet.wox.org /mnt/ftpfs -uid=500 -gid=500 -dmask=555
mount -n -t ftpfs none /mnt/ftpfs -o ip=127.0.0.1,user=mali,pass=my_pass
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.
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 |
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 "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 |
# cp /boot/module-info-2.4.20-19.9 /boot/module-info-2.4.20-19.9.backup |
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.
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 |
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 |
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"
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:
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.
Megjegyzések: Jelenleg kétféle címfeloldást végez a klogd.
a System.map fájlt, ezért nem fontos ennek tárgyalásánál, de azért röviden ismertetem.
A klogd dinamikus fordítása
Tegyük fel, hogy betöltöttél egy rendszermag-modult, ami oops-ot idézett elő. Egy oops üzenet készült és a klogd elfogta. Azt találta, hogy az oops a d00cf810-nál fordult elő. Mivel ez a cím egy dinamikusan betöltött modulhoz tartozik, nincs bejegyzés hozzá a System.map fájlban. A klogd keresi, de nem talál semmit így arra következtet, hogy egy betölthető modul generálta az üzenetet. A klogd ezután lekérdezi a rendszermagot olyan szimbólumokért, amiket a betölthető modulok exportáltak. Még ha a modul szerzője nem exportálta is a szimbólumokat, legalább a klogd tudni fogja, melyik modul idézte elő az oops-ot, ami jobb, mint semmit sem tudni az oops-ról.
Más programok is használják a System.map fájlt és rövidesen ezzel is foglalkozom.
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!
satan# strace lsof 2>&1 1> /dev/null | grep System readlink("/proc/22711/fd/4", "/boot/System.map-2.4.18", 4095) = 23 |
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.
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
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.
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
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.......... |
Uncompressing Linux... Ok. Booting the kernel. |
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 |
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 & |
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 |
bash$ sgml2html xxxxhowto.sgml (ez HTML fájlt készít) bash$ sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file) |
xdvi -geometry 80x90 howto.dvi man xdvi |
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.
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.
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 |
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 |
"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 |
Videokártya/Monitor beállítása:
Ha a legújabb Linuxot (2.4 vagy későbbi) használod, kattints a KDE/GNOME munkaasztalon belül a Start->"System Settings"->Display menüpontra.
A Linux régebbi verzióinál kövesd az alábbi lépéseket:
A videokártyát és a monitort a következő parancsokkal állíthatod be:
bash$ su - root bash# man Xconfigurator bash# /usr/bin/X11/Xconfigurator --help bash# /usr/bin/X11/Xconfigurator bash# /usr/bin/X11/Xconfigurator --expert See also: bash# man xf86config bash# /usr/bin/X11/xf86config |
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.
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 ?? |
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.
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.
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 |
bash# man init |
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 |
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 |
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 |
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 |
Az alapértelmezett betölthető modulokat telepítheted így:
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 |
bash# rpm -i /mnt/cdrom/contrib/kernel-modules*.rpm ....(A régi Linux rendszerekhez, amikben nincs előre telepítve az insmod) |
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 |
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.
mkdir /mnt mount -t ext2 /dev/hda3 /mnt
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:
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.