Vissza Előre Tartalom

3. Hogyan kell konfigurálni a kernelt ?

3.1 A forrás beszerzése

A forrást anonymous ftp-vel lehet beszerezni az ftp.kernel.org-on a /pub/Linux/ könyvtárból, egy tükrözésrõl, vagy egyéb helyrõl. Általában linux-x.y.z.tar.gz a neve, ahol x.y.z a verziószám. Az újabb (jobb?) verzók és patch-ek általában `v2.0' és `v2.1' nevû alkönyvtárakban vannak. A legnagyobb szám a legújabb verzió (jelenleg v2.1), és ezek "fejlesztõi verziók". Ha félsz az alfa és béta verzióktól, akkor inkább maradj egy stabil verziónál (v2.0).

Nyomatékosan ajánlom, hogy használj egy tükör ftp-helyet az ftp.kernel.org helyett. Itt egy rövid lista a tükrözésekrõl:

USA:             sunsite.unc.edu:/pub/Linux/kernel 
USA:             tsx-11.mit.edu:/pub/linux/sources/system 
UK:              sunsite.doc.ic.ac.uk:/pub/unix/Linux/sunsite.unc-mirror/kernel 
Ausztria:        ftp.univie.ac.at:/systems/linux/sunsite/kernel 
Németország:     ftp.Germany.EU.net:/pub/os/Linux/Local.EUnet/Kernel/Linus 
Németország:     sunsite.informatik.rwth-aachen.de:/pub/Linux/PEOPLE/Linus 
Franciaország:   ftp.ibp.fr:/pub/linux/sources/system/patches 
Ausztrália:      sunsite.anu.edu.au:/pub/linux/kernel 

Magyarország:    ftp.kfki.hu:/pub/linux/kernel
                 ftp.aszi.sztaki.hu:/pub/Linux/kernel
                 ftp.bme.hu:/pub/OS/Linux/kernel
                 ftp.jate.u-szeged.hu:/pub/linux/kernel

Általában a sunsite.unc.edu tükrözésein érdemes keresni. A /pub/Linux/MIRRORS fájl tartalmazza az ismert tükrözések listáját. Ha általános Linux információkat keresel, próbáld meg a következõ címeken: http://www.linux.org (angolul), http://www.cab.u-szeged.hu/linux/ (magyarul).

3.2 A forrás kibontása

Lépj be `root'-ként (vagy válts át su-val) és menj át (cd-vel) a /usr/src-be. Ha a linux telepítésekor a forrást is felrakattad (ahogy a legtöbben), akkor már lesz ott egy `linux' nevû könyvtár, ami tartalmazza az egész forrás-hierarchiát. Ha van elég lemezterületed és biztosra akarsz menni, akkor tartsd meg ezt a könyvtárat. A legjobb ha kideríted melyik verzió fut éppen és a könyvtárat annak megfelelõen nevezed át. A `uname -r' parancs kiírja az aktuális verziószámot. Tehát ha az `uname -r' azt válaszolta, hogy `2.0.17', akkor nevezd át a `linux'-ot (`mv'-vel) `linux-2.0.17'-re. Ha szeretsz kockáztatni, akkor csak töröld ki az egész könyvtárat. A lényeg, hogy ne legyen `linux' nevû könyvtár a /usr/src-ben amikor kibontod a forrást.

Most (még mindig a /usr/src-ben) bontsd ki a forrást a `tar zxpvf linux-x.y.z.tar.gz' paranccsal. (Ha csak egy .tar fájl van .gz nélkül a végén, akkor a `tar xpvf linux-x.y.z.tar' paranccsal.) Az archivum tartalma el fog száguldani a képernyõn. Amikor vége, lesz egy új `linux' könyvtár a /usr/src-ben. Menj bele és nézd át a README fájlt. Lesz benne egy `INSTALLING the kernel' címû rész. Hajtsd végre az utasításait, ha szükséges -- például a szimbolikus linkek elkészítése a megfelelõ helyre, stb.

3.3 A kernel konfigurálása

Megjegyzés: Az itt következõk egy része a Linus-féle README egy hasonló fejezetének megismétlése, részletezése.

A /usr/src/linux-ból kiadott `make config' parancs elindít egy konfiguráló scriptet, amely sok kérdést tesz fel. A bash kell hozzá, ezért ellenõrizd, hogy létezik-e a /bin/bash, a /bin/sh a /bin/bash-ra mutat-e, vagy a $BASH tartalmazza-e a /bin/bash-t.

A `make config'-nak van két könnyebben és kényelmesebben használható alternatívája. Azok akik X alatt dolgoznak, megpróbálhatják a `make xconfig'-ot, ha van Tk installálva. A `make menuconfig' azoknak való, akik jobban szeretnének egy szöveges menüt; (n)curses kell hozzá. Ezeknek a felületeknek van egy határozott elönyük: Ha elrontasz valamit a konfigurálás közben, akkor egyszerûen vissza lehet menni kijavítani.

A kérdésekre általában igennel (`y' (yes)) vagy nemmel (`n' (no)) kell válaszolni. Az eszközmeghajtókhoz általában van `m' opció is. Ez azt jelenti ``modul'', azaz a rendszer le fogja fordítani, de nem közvetlenül a kernelbe, hanem betölthetõ modulként. Néhány nyilvánvaló és nem fontos opciót itt nem magyarázok el, néhány egyéb opció leírását lásd az `` Egyéb konfigurációs opciók'' címû fejezetben.

A 2.0.x verziótól kezdve van egy `?' opció is. Ennek hatására az adott paraméter egy rövid leírását kapjuk. Ez a legnaprakészebb információ az adott opcióról.

Kernel math emulation

Társprocesszor emuláció. Ha nincs matematikai társprocesszor a gépedben (egy sima 386 vagy 486SX esetén) akkor erre igennel kell válaszolni. Ha van társprocesszor és mégis igennel válaszolsz, ne aggódj -- a kernel használni fogja a társprocesszort és figyelmen kívül hagyja az emulációt. Az egyetlen következmény az, hogy a kernel nagyobb lesz, fogyasztva a memóriát. Úgy hallottam, hogy a társprocesszor emuláció lassú. Bár nincs sok köze ehhez a fejezethez, jó ha ez eszedbe jut, ha azt tapasztalod, hogy nagyon lassú az X.

Enhanced IDE/MFM/RLL disk/cdrom/tape support

Megnövelt IDE/MFM/RLL disk/cdrom/szalagos egység támogatás. Erre valószínûleg szükség lesz. Ez azt jelent, hogy a kernel támogatni fogja a szabványos PC merevlemezeket; a legtöbb gépben ilyen van. Ebbe nem tartoznak bele az SCSI maghajtók, ezek konfigurálására késõbb kerül sor.

Amennyiben nem a fenti kell, választhatod még az `Old harddisk (MFM/RLL/IDE) driver'-t (régi MFM/RLL/IDE lemez meghajtó). Csak az egyiket lehet választani. A fõ különbség az, hogy a régi meghajtó csak két lemezegységet tud kezelni egy csatolón, míg az elõbbi egy második csatolót is tud kezelni illetve az IDE/ATAPI CD-ROM és szalagos egységeket is. Az új meghajtó 4k-val nagyobb, mint a régi és feltételezhetôen ``javított'', ami azt jelenti, hogy amellett, hogy több hibajavítást is tartalmaz, megnöveli a lemezek teljesítményét, különösen az újabb (EIDE) hardver esetén.

Networking support

Hálózati támogatás. Elméletileg erre csak akkor kellene igennel válaszolni, ha géped egy hálózaton van, mint amilyen az Internet, vagy éppen SLIP, PPP, term, stb. segítségével telefonvonalon akarsz hálózatra kapcsolódni. De mivel sok programcsomag (mint például az X ablakozó rendszer) akkor is igényel hálózati támogatást, ha a gép nincs igazi hálózatra kötve, mindenképpen igennel kell válaszolni. Késõbb megkérdezi, hogy akarsz-e TCP/IP támogatást; itt is y' a válasz, ha nem vagy teljesen biztos az ellenkezõjében.

Limit memory to low 16MB

Memória korlátozása az alsó 16 MB-ra. Vannak hibás 386-os DMA vezérlõk, amelyek nem tudnak 16 MB fölé esõ memóriát megcímezni. Csak abban a ritka esetben kell igennel válaszolni, ha ilyened van.

System V IPC

Az IPC (Interprocess Communication = ``processzek közötti kommunikáció'') egyik legjobb definicója a Perl könyv szómagyarázatában található. Nem meglepõ, hogy néhány Perl programozó ennek segítségével küld üzeneteket processzek között, csakûgy mint sok más programcsomag (pl. a DOOM, hogy a legismertebbet említsem). Ezért nem ajánlatos n-nel válaszolni, hacsak nem tudod pontosan mit csinálsz.

Processor type (386, 486, Pentium, PPro)

Processzor típusa. Régebben ez befordított bizonyos optimalizációt az adott processzorhoz; a kernel simán futott más processzorokon is, csak egy kicsit nagyobb volt. Az újabb kernelek esetén ez már nem így van, ezért annak a processzornak a tipusát kell beírni, amelyhez a kernel készül. Egy ``386-os'' kernel minden gépen menni fog.

SCSI support

SCSI támogatás. Ha van SCSI eszközöd, válaszolj `y'-t. További kérdéseket fog feltenni CD-ROM támogatásról, a lemezegységek és az SCSI adapter típusáról. Lásd az SCSI-HOWTO-t részletes információért.

Network device support

Hálózati eszköz támogatás. Ha van hálózati kártyád, vagy szeretnél SLIP-pel, PPP-vel vagy a párhuzmos porton át csatlakozni az Internethez, válaszolj igennel. A konfigurációs script megkérdezi a kártya tipusát és a használandó protokollt.

Filesystems

Fájlrendszerek. A konfiguráló script ezek után megkérdi, hogy akarod-e használni a következõ fájlrendszereket:

Minix - Az újabb disztribúciók nem hoznak létre minix fájlrendszereket, és sokan nem is használják, de ennek ellénére érdemes lehet bekonfigurálni. Néhány ``mentõlemez''-program használja, és sok floppyn van minix fájlrendszer, mert floppyn sokkal kényelmesebb ezt használni (kevesebb helyet foglal maga a fájlrendszer).

Extended (ext) - Ez volt az ext2 fájlrendszer elsõ változata, ma már nem használják széles körben. Ha szükséged van rá, akkor valószínüleg tudsz is róla; ha nem tudod, akkor nincs is rá szükséged.

Second extended (ext2) - Ezt széles körben használják az újabb disztribúciók. Valószínûleg ilyened van, ezért igennel kell válaszolni.

xiafs - Egy idõben elterjedt volt, de most nem ismerek senkit aki használja.

msdos - Ha használni akarod a meglévõ MS-DOS winchester particiókat, vagy DOS alatt formázott floppykat akarsz mountolni, akkor válaszolj igennel.

umsdos - Ez a fájlrendszer kibõvít egy MS-DOS fájlrendszert a szokásos Unix-szerû tulajdonságokkal, mint például a hosszú fájlnevek. Haszontalan olyanoknak (mint én), akik nem használnak DOS-t.

/proc - Az egyik legnagyszerûbb dolog a tejpor feltalálása óta. (Az ötletet azt hiszem a Bell Labs-tól lopták szégyentelen módon.) A proc fájlrendszer nem arra való, hogy létrehozzák a lemezen; ez egy fájlrendszer felület a kernel és a processzek felé. Sok processz-listázó (mint a `ps') használja. Egyszer próbáld ki a `cat /proc/meminfo' vagy `cat /proc/devices' parancsokat. Néhány parancsértelmezõ (különösen az rc) használja a /proc/self/fd-t (más rendszereken /dev/fd néven ismert) I/O mûveletekre. Majdnem biztosan igennel kell válaszolnod erre, sok fontos linux segédprogram támaszkodik rá.

NFS - Ha a géped hálózatra van kötve és szeretnél más gépeken lévõ fájlrendszerereket használni NFS-sel, akkor válaszd ki.

ISO9660 - A legtöbb CD-ROM-on ez található. Ha van CD-ROM meghajtód és szeretnéd linux alatt használni, válaszd ki.

HPFS - Az írás idején egy csak olvasható fájlrendszer OS/2 HPFS-hez.

System V and Coherent - System V és Coherent partíciókhoz. (Ezek más PC-s Unix változatok.)

De én nem tudom milyen fájlrendszer kell nekem!

Jól van, írd be, hogy `mount'. A kimenet valami ilyesmi lesz:

    blah# mount
    /dev/hda1 on / type ext2 (defaults)
    /dev/hda3 on /usr type ext2 (defaults)
    none on /proc type proc (defaults)
    /dev/fd0 on /mnt type msdos (defaults)

Nézd meg mindegyik sort. A `type' utáni szó a fájlrendszer típusa. Ebben a példában a / és a /usr fájlrendszerek típusa ext2 (second extended). Használok /proc fájlrendszert is, továbbá egy floppy be van mountolva msdos fájlrendszerként.

Megpróbálkozhatsz a `cat /proc/filesystems' paranccsal, ha a /proc éppen támogatva van a futó kernelben és be van mountolva; ez ki fogja listázni az aktuális kernel fájlrendszereit.

Ritkán használt, nem létfontosságú fájlrendszerek bekonfigurálása túlméretezett kernelt eredményezhet. A modulokról szóló fejezetbõl kiderül, hogy ezt hogy lehet elkerülni. A `` Néhány kelepce'' címûbõl pedig az, hogy miért nemkívánatos a nagy kernel.

Character devices

Karakteres eszközök. Itt állíthatók be a (párhuzamos) nyomtató, busz-egér (busmouse), PS/2 egér (sok notebook gép használ PS/2 egér protokollt a beépített trackballhoz), néhány szalagos egység és más hasonló ``karakteres'' eszközökhöz a meghajtók. Nyomj `y'-t a megfelelõ helyen.

1. Megjegyzés: A selection egy program amely lehetõvé teszi az egér használatát az X ablakozó rendszeren kívül is, virtuális konzolok közötti másolásra. Ha soros egered van, elég kellemes, mert jól megfér az X-el, de ha másmilyen, akkor trükközni kel. A selection támogatása valamikor konfigurációs opció volt, de ma már szabványos.

2. Megjegyzés: A selection már elavultnak számít. Az új program neve ``gpm''. Többet tud: például egér protokollok között fordítani, több egeret kezelni, stb.

Sound card

Hangkártya. Ha nagyon vágysz arra, hogy halljad a biff-et ugatni, nyomj `y'-t, és a konfigurációs program részletesen ki fog kérdezni a hangkártyádról. Ha van hangkártyád, melegen ajánlom a Sound-HOWTO-t.

Egyéb konfigurációs opciók

Nincs az összes konfigurációs opció felsorolva itt, egyrészt mert túl gyorsan változnak, másrészt mert magától értetõdõek. (Például a ``3Com 3C509 support'' az említett ethernet kártyához való támogatást jelenti.) Axel Boldt (axel@uni-paderborn.de) összeállított egy meglehetõsen széleskörû listát az összes opcióról (és egy módszert, amivel be lehet tenni õket a Configure scriptbe), amely a

     http://math-www.uni-paderborn.de/~axel/config_help.html
címen található, vagy anonymous FTP-vel a

     ftp://sunsite.unc.edu/pub/Linux/kernel/config/krnl_cnfg_hlp.x.yz.tgz
címen, ahol x.yz a verziószám.

A késõbbi kernelekben (2.0.x és e fölött) ez már be van integrálva a forrásba.

Kernel hackelés

Linus írja a README-ben:

A ``kernel hacking'' konfigurációs részletek általában nagyobb vagy lassabb (vagy mindkettõ) kernelt eredményeznek, sõt akár kevésbé stabilabbá is tehetik a kernelt azáltal, hogy bekonfigurálnak néhány rutint, amelyek megpróbálják aktívan feltörni a hibás programrészleteket, hogy így találjanak problémákat. Ezért inkább `n'-t kell válaszolni az erre vonatkozó kérdésekre egy ``stabil'' kernel esetén.

3.4 Na most mi legyen? (A Makefile)

A make menuconfig vagy a make xconfig után egy üzenet tudatja, hogy a kernel konfigurálása megtörtént és felszólít, hogy ``check the top-level Makefile for additional configuration'', stb. (``További konfiguráláshoz ellenõrizd a felsõszintû Makefile-t'')

Nézz bele tehát a Makefile-ba. Valószínûleg nem kell megváltoztatni semmit, de megnézni sosem árthat. Az opciókat megváltoztathatod akkor is, amikor az új kernel már a helyén van az `rdev' paranccsal.


Vissza Előre Tartalom