Következő Előző 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/kernel/vx.y könyvtárból, egy tükrözésről, vagy egyéb helyről. Az x.y végződés a verziószám (pl. 2.2), és ahogy az előbb említettem, a páratlan számra végződőek a fejlesztői verziók, amelyek instabilak lehetnek. Általában linux-x.y.z.tar.gz a neve, ahol x.y.z a verziószám. Ezeken az ftp helyeken gyakran .bz2 kiterjesztéssel is megtalálható a kernel forrása. Ezt a bzip2 programmal tömörítették, ami kisebb fájlokat eredményez, és ezért hamarabb letölthető.

A legjobb az ftp.xx.kernel.org ftp kiszolgálót használni, ahol xx az ország kódja. Például az ftp.hu.kernel.org a magyarországi, az ftp.us.kernel.org az amerikai szerver.

3.2 A forrás kibontása

Lépj be `root'-ként (vagy válts át su-val) és menj át (cd-vel) az /usr/src könyvtárba. Ha a linux telepítésekor a forrást is felraktad (ahogy a legtöbben teszik), 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 az /usr/src-ben amikor kibontod a forrást.

Most (még mindig az /usr/src-ben) bontsd ki a forrást a `tar zxpvf linux-x.y.z.tar.gz' paranccsal. (Ha csak egy .tar fájlunk van .gz kiterjesztés nélkül, akkor a `tar xpvf linux-x.y.z.tar' parancsot kell használni.) Az archívum tartalma el fog száguldani a képernyőn. Amikor vége, lesz egy új `linux' könyvtár az /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, régi .o fájlok eltávolítása, stb.

Ha .bz2 kiterjesztésű fájlod van, és megvan a bzip2 program (tudnivalók a http://www.muraroa.demon.co.uk/ webhelyen), akkor add ki a

 
    bz2cat linux-x.y.z.tar.bz2 | tar xvf - 
parancsot.

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.

Az /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 néhány könnyebben és kényelmesebben használható alternatívája. A `make menuconfig' parancsot használják talán a legtöbben. Bármelyiket is választod, nem árt, ha előbb megismerkedsz a felhasználói felületével. Ha nem így teszel, hamarabb meg fogod bánni, mint gondolnád. 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 `make menuconfig' és a `make xconfig' használata esetén a konfigurációs lehetőségek rendezett struktúrában jelennek meg.

A kérdésekre általában igennel (`y' (yes)) vagy nemmel (`n' (no)) kell válaszolni. Az eszközmeghajtóknál általában választhatjuk az `m' lehetőséget is. Ez azt jelenti ``modul'', azaz a rendszer le fogja fordítani, de nem közvetlenül a kernelbe, hanem betölthető modulként. Sokkal viccesebb úgy magyarázni, hogy ``maybe'' (``talán''). Néhány nyilvánvaló vagy lényegtelen opciót itt nem magyarázok el, néhány egyéb opció rövid leírását lásd az ``Egyéb konfigurációs opciók'' című fejezetben. A `make menuconfig'-ban a szóközbillentyűvel lehet kiválasztani valamit.

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. A következőkben felsorolok néhány fontos beállítást, a helyüket az opciók hierarchiájában és egy rövid leírást.

Kernel math emulation (Processor type and features)

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. Minden többé-kevésbé modern gépre a válasz `nem' legyen, de semmi baj, ha véletlenül igent adtál meg, ha nem kell, nem fogja használni a kernel.

Enhanced (MFM/RLL) disk and IDE disk/cdrom support (Block Devices)

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

Ezután lehet választani az ``old disk-only'' (``csak régi merevlemez'') és a ``new IDE'' (``új IDE'') lehetőségek közül. Az egyiket ki kell 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 a másik 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 ``fejlettebb'', 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 (General Setup)

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 Window System) 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, hacsak nem vagy teljesen biztos az ellenkezőjében.

System V IPC (General Setup)

Az IPC (Interprocess Communication = ``processzek közötti kommunikáció'') egyik legjobb definíció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 a 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-el válaszolni, hacsak nem tudod pontosan mit csinálsz.

Processor family (Processor type and features)

(A régebbi kerneleknél használd a -m486 kapcsolót a 486 optimalizációhoz.)

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 típusá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. Részletesebb információért lásd az SCSI-HOWTO-t.

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árhuzamos porton át csatlakozni az Internethez, válaszolj igennel. A konfigurációs script megkérdezi a kártya típusá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 hajlékony lemezen van minix fájlrendszer, mert hajlékony lemezen sokkal kényelmesebb ezt használni. (Kevesebb helyet foglal maga a fájlrendszer.)

Second extended - Ez a szabványos Linux fájlrendszer. Csaknem biztos, hogy ilyened van, igennel kell válaszolni.

msdos - Ha használni akarod a meglévő MS-DOS partíciókat, vagy DOS alatt formázott hajlékony lemezeket akarsz mountolni, akkor válaszolj igennel.

Egy csomó más operációs rendszer fájlrendszere is kiválasztható.

/proc - (A Bell Labs ötlete volt, azt hiszem.) 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 processzlistázó (mint a `ps') használja. Egyszer próbáld ki a `cat /proc/meminfo' vagy a `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ájlrendszereket 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.

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 hajlékony lemez 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.

A 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 nem kí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.

Megjegyzés: A gpm 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 kell.

Sound

Hang. 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. (Megjegyzés a hangkártya konfigurálásához: amikor megkérdezi, hogy a meghajtó teljes verzióját telepítse-e, válaszolhatsz nemmel. Ha csak azokat az opciókat választod ki, amelyekre tényleg szükséged van, megspórolhatsz egy kis kernel-memóriát.

Ha fontos neked a hangkártyád támogatottsága, nézd meg az ingyenes eszközmeghajtókat a http://www.linux.org.uk/OSS/ webhelyen, illetve a fizetős Open Sound System meghajtóit a http://www.opensound.com/ webhelyen.

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 (boldt@math.ucsb.edu) ö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). Ez az online segítség, ami bele van integrálva a forrásba a 2.0.x feletti kernelekben (Documentation/Configure.help).

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 konfigurálás befejezése 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. Ha egy kukkot sem értesz abból, mit a fájlban látsz, akkor hagyhatod nyugodtan.


Következő Előző Tartalom