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)
Problémád van? Olvasd el az "E" függelék - a gyakori hibák elhárítása fejezetet.
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.
Előző | Tartalomjegyzék | Következő |
Bevezetés | Betölthető modulok |