Jim Mock Frissítette és átdolgozta: Jake Hamby Eredetileg írta: A &os; rendszermag testreszabása Áttekintés rendszermag saját rendszermag készítése A rendszermag a &os; operációs rendszer lelke. Felelős a memória kezelésért, a biztonsági szabályozások betartatásáért, a hálózat működtetéséért, a lemezhozzáférésért és sok minden másért is. Miközben maga a &os; egyre jobban konfigurálható dinamikusan, addig alkalmanként elegedhetetlen, hogy újrakonfiguráljuk és újrafordítsuk a rendszermagot. A fejezet elolvasása során megismerjük: miért lehet szükségünk egy saját rendszermagra; hogyan készítsünk konfigurációs állományt a rendszermaghoz, vagy hogyan módosítsunk egy már létezőt; hogyan használjuk a rendszermag konfigurációs állományát egy új rendszermag lefordítására és létrehozására; hogyan telepítsük az új rendszermagot; hogyan orvosoljuk a felmerülő problémákat. A fejezetben az összes példaként bemutatásra kerülő parancsot root felhasználóként kell kiadni a sikeres végrehajtásukhoz. Miért készítsünk saját rendszermagot? A &os; eredetileg ún. monolitikus rendszermaggal rendelkezett. Ez azt jelenti, hogy a rendszermag egyetlen nagy program volt, ami előre rögzített eszközöket ismert, és ha meg akartuk változtatni a rendszermag működését, akkor új rendszermagot kellett fordítanunk, majd újra kellett indítanunk vele a számítógépet. Manapság azonban a &os; már inkább afelé a megközelítés felé halad, ahol a rendszermag funkcionalitásának nagy részét működés közben az igények szerint betölthető és eltávolítható modulok adják. Ezzel lehetővé válik, hogy a rendszermag gyorsan illeszkedjen az újonnan megjelenő hardvereszközökhöz (mint például a laptopok PCMCIA-kártyáihoz), vagy olyan új funkciókat tegyünk a rendszermaghoz, amelyek a fordításánál nem voltak feltétlenül szükségesek. Ezt a modellt nevezik moduláris rendszermagnak. Ennek ellenére még mindig elkerülhetetlen, hogy esetenként ne legyen szükség a rendszermag statikus testreszabására. Ez a legtöbb esetben azzal magyarázható, hogy vannak olyan funkciók, amelyek túlságosan is mélyen helyezkednek el a rendszermagban, ezáltal nem tölthetőek be dinamikusan. Máskor viszont egyszerűen azért nem lehetséges, mert még senki sem szánt időt az adott funkcióhoz tartozó, dinamikusan betölthető modul elkészítésére. Egy saját rendszermag készítése azon legfontosabb próbatételek egyike, melyet egy haladó BSD felhasználónak ki kell állnia. Ez a folyamat, habár némileg időigényes, számos előnyt tartogat &os; rendszerünk számára. Eltérően egy GENERIC (általános) rendszermagtól, amely rengeteg hardvert támogat, egy saját rendszermag csak a saját PC-nk hardverét ismeri. Ennek több előnye is van, például: A rendszerünk gyorsabban indul. Mivel a rendszermag csak azokat a hardvereket fogja keresni, melyek a rendszerünkben megtalálhatóak, jelentős mértékben le tud csökkeni az induláshoz szükséges idő. Kisebb memóriahasználat. Egy saját rendszermag a szükségtelen részek és eszközmeghajtók elhagyása miatt gyakran kevesebb memóriát emészt fel, mint a GENERIC rendszermag. Ez azért is fontos, mert a rendszermag mindig benn van a fizikai memóriában, és ezzel az alkalmazások elől veszi el a helyet. Emiatt egy saját rendszermag elkészítése különösen hasznos lehet egy kevés fizikai memóriával rendelkező rendszeren. További hardverek támogatása. A saját rendszermagunkba olyan eszközök támogatását is beletehetjük, amelyek nem szerepelnek a GENERIC rendszermagban, mint például a hangkártyákét. Tom Rhodes Írta: A rendszerünkben levő hardverek összeszedése Mielőtt belevetnénk magunkat a rendszermag beállításába, érdemes egy leltárt készíteni a gépünkben található különböző eszközökről. Ahol a &os; nem elsődlegesen használt operációs rendszer, ott ehhez elegendő megnézni a jelenlegi rendszerben található elemeket. Például a µsoft; rendszerek Eszközkezelőjében (Device Manager) általában az összes eszköz fontosabb adatait megtaláljuk. Magát az Eszközkezelőt pedig a Vezérlőpultból (Control Panel) érhetjük el. A µsoft.windows; egyes verzióiban a Rendszer (System) ikonjára kattintva megkapjuk azt a képernyőt, ahonnan közvetlenül el tudjuk érni az Eszközkezelőt. Ha viszont nincs másik operációs rendszer a gépünkön, akkor magunknak kell mindezeknek utánanéznünk. Erre az egyik alkalmas módszer a &man.dmesg.8; és a &man.man.1; parancsok használata. A &os;-ben található legtöbb meghajtónak van saját man oldala, ami tartalmazza az általuk kezelt eszközök listáját, illetve így a rendszerindítás során észlelt hardvereket nézhetjük vissza. Például az alábbi sorok arra utalnak, hogy a psm meghajtó megtalálta a gépünkhöz tartozó egeret: psm0: <PS/2 Mouse> irq 12 on atkdbc0 psm0: [GIANT-LOCKED] psm0: [ITHREAD] psm0: model Generic PS/2 mouse, device ID 0 Ezután ezt a meghajtót vagy a rendszermagba kell beépítenünk, vagy pedig a &man.loader.conf.5; állományon keresztül betöltenünk. Bizonyos esetekben a dmesg az eszközök felkutatásának eredményei helyett csak a rendszer üzeneteit mutatja. Ilyen helyzetekben a teljes kimenet a /var/run/dmesg.boot állományban tekinthető meg. A hardverek manuális felderítésének módja a &man.pciconf.8; segédprogram kimenetének böngészése, ami valamivel részletesebb eredményt ad. Mint például: ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 vendor = 'Atheros Communications Inc.' device = 'AR5212 Atheros AR5212 802.11abg wireless' class = network subclass = ethernet A pciconf paranccsal kapott kimenet ezen része azt mutatja, hogy az ath meghajtó talált egy vezeték nélküli Ethernet eszközt. Innen a man ath paranccsal érhetjük el a &man.ath.4; man oldalát. A &man.man.1; a paraméter megadásával további hasznos információkkal is tud szolgálni. A fentiekből kiindulva például a következő paranccsal: &prompt.root; man -k Atheros le tudjuk kérdezni azokat a man oldalakat, amelyek tartalmazzák az adott szót: ath(4) - Atheros IEEE 802.11 wireless network driver ath_hal(4) - Atheros Hardware Access Layer (HAL) A hardvereszközeink listájával felvértezve most már egy saját rendszermag létrehozása sem lesz annyira ijesztő. Meghajtók, alrendszerek és modulok rendszermag meghajtók, modulok, alrendszerek Mielőtt új rendszermagot készítenénk, érdemes megfontolnunk, hogy egyáltalán szükségünk lesz-e rá. Ha például valamilyen eszköz támogatásához kell, akkor könnyen előfordulhat, hogy azt modulként is be tudjuk tölteni. A rendszermaghoz tartozó modulok a /boot/kernel könyvtárban találhatóak, és a &man.kldload.8; segítségével a rendszer működése közben dinamikusan betölthetőek. Ha nem is az összes, de a legtöbb meghajtóhoz tartozik egy modul és egy man oldal. Például az előző szakaszban az ath vezeték nélküli Ethernet meghajtóval foglalkoztunk. A következő leírást találjuk a hozzá tartozó man oldalon: Vagy ha modulként akarjuk betölteni ezt a meghajtót a rendszer indítása során, akkor a &man.loader.conf.5; állományba vegyük fel a következő sort: if_ath_load="YES" A fentebb leírtak szerint tehát, ha az if_ath_load="YES" sort hozzáadjuk a /boot/loader.conf állományhoz, akkor a rendszer indulásakor ez a modul mindig dinamikusan betöltődik. Némely esetben azonban nem áll rendelkezésünkre ilyen modul. Ez különösen igaz bizonyos alrendszerekre és a fontosabb meghajtókra, például az FFS állományrendszerre vonatkozóan, mivel ezeknek kötelezően a rendszermagban kell lenniük. Ugyanez elmondható a hálózati támogatásra is (INET). Csak úgy tudjuk megmondani, hogy valamelyik meghajtóra szükség van a rendszermagban, ha először megpróbáljuk megkeresni hozzá a megfelelő modult. A beépített meghajtók figyelmetlen eltávolításával könnyen lefordíthatatlan állapotba kerülhet a rendszermag. Például, ha az &man.ata.4; meghajtót kivesszük a rendszermag konfigurációs állományából, az ATA alrendszert használó meghajtók csak abban az esetben fognak biztosan működni, ha egyúttal felvesszük a loader.conf állományba. Ha nem vagyunk benne biztosak, akkor először próbáljuk meg használni a modult, és csak utána hagyjuk el a rendszermagba épített változatát. Saját rendszermag készítése és telepítése rendszermag készítése, telepítése Először is tegyünk egy rövidke sétát a rendszermag könyvtárában. A továbbiakban említendő összes könyvtár a /usr/src/sys könyvtáron belül található, amely /sys néven is elérhető. Itt rengeteg alkönyvtár található, mindegyikük a rendszermag különböző részeit testesíti meg. Ezek közül most számunkra a legfontosabb az architektúra/conf lesz, ahol majd létrehozzuk a saját rendszermagunk konfigurációs állományát, valamint a compile, ahol majd a rendszermagunk fordítása történik. Itt az architektúra lehet i386, alpha, amd64, ia64, powerpc, sparc64 vagy pc98 (a PC-k egyik, leginkább Japánban elterjedt változata). Az adott architektúra könyvtárában található összes állomány csak arra az architektúrára vonatkozik, a kód többi része pedig gépfüggetlen és közös az összes többi létező és leendő &os; platformon. Érdemes megfigyelni a könyvtárak logikai elrendezését: minden egyes ismert eszköz, állományrendszer és bővítmény saját alkönyvtárral rendelkezik. A példák során ez a fejezet feltételezi, hogy az i386 architektúrát használjuk. Ha ez a mi esetünkben nem így lenne, ne felejtsük el átírni bennük az elérési útvonalakat a rendszerünk architektúrájának megfelelően. Ha nem lenne /usr/src/sys könyvtár a rendszerünkben, valószínűleg még nem telepítettük a rendszermag forráskódját. Ezt a legkönnyebben úgy tudjuk megtenni, ha root felhasználóként elindítjuk a sysinstall programot és ott kiválasztjuk a Configure (Beállítások), azon belül Distributions (Terjesztések) menüpontot, amiben válasszuk ki a src, base és sys terjesztéseket. Ha nem szeretnénk erre a célra a sysinstall programot használni, de rendelkezésünkre áll a hivatalos &os; CD, akkor a forrásokat akár parancssorból is telepíthetjük: &prompt.root; mount /cdrom &prompt.root; mkdir -p /usr/src/sys &prompt.root; ln -s /usr/src/sys /sys &prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf - &prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf - Ezután lépjünk be az i386/conf könyvtárba és másoljuk le a GENERIC konfigurációs állományt a kedvünk szerinti nevűre. Például: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; cp GENERIC SAJÁT Általában a nevet végig nagybetűkkel írjuk, és ha több &os;-s gépet is üzemeltetünk különböző hardverekkel, hasznosnak bizonyulhat megemlíteni benne az adott gép rendszerének nevét is. Ebben a példában ez most a SAJÁT lesz. A rendszermagunk konfigurációs állományát nem éppen a legjobb ötlet a /usr/src könyvtárban tárolni. Ugyanis könnyen előfordulhat, hogy egy rosszul sikerült fordítás után egyszerűen csak letöröljük az egész /usr/src könyvtárat és onnan kezdjük újra. Azonban csak ezután juthat eszünkbe, hogy vele együtt bizony letöröltük a saját rendszermagunk konfigurációs állományát is! Ehhez hasonlóan, közvetlenül a GENERIC konfigurációs állomány szerkesztése sem ajánlott, mivel a források egy esetleges frissítésénél könnyen felülíródhat és ezzel együtt elvesznek a módosításaink is. Tehát érdemes inkább valahol máshol tárolnunk a rendszermagunk konfigurációs állományát, majd létrehozni rá egy szimbolikus linket a i386 könyvtárban. Valahogy így: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; mkdir /root/kernel &prompt.root; cp GENERIC /root/kernel/SAJÁT &prompt.root; ln -s /root/kernel/SAJÁT Most pedig a kedvenc szövegszerkesztőnkkel lássunk neki a SAJÁT átírásának! Ha nemrég telepítettük csak a rendszerünket, az egyetlen elérhető szövegszerkesztőnk minden bizonnyal a vi lesz. Róla most túlságosan is bonyolult lenne leírást adnunk, de az Irodalomjegyzékben található könyvek közül sokban elég jól bemutatják. Ezen kívül a &os; ajánl egy könnyebben megtanulható szövegszerkesztőt is az ee személyében, amely a kezdők számára az ideális választás. Nyugodtan átírhatjuk az elöl található megjegyzéseket a saját konfigurációnknak megfelelően, vagy akár azt is rögzíthetjük, hogy miben tértünk el a GENERIC beállításaitól. SunOS Ha fordítottunk már rendszermagot &sunos; vagy más BSD operációs rendszer alatt, ez az állomány ismerősnek tűnhet. Ha viszont más operációs rendszerek, mint például a DOS felől érkezünk, a GENERIC konfigurációs állomány egy kissé terebélyesnek tűnhet számunkra, ezért A konfigurációs állomány című részt figyelmesen és lassan olvassuk át. Amennyiben a forrásfánkat a &os; projekt legfrissebb forrásaival szinkronizáljuk, mindig olvassuk el a /usr/src/UPDATING állományt, mielőtt bármilyen frissítéshez is kezdenénk. Itt megtalálhatóak azok a fontos érintett kérdések és területek, amely külön figyelmet igényelnek a frissített forráskód esetén. A /usr/src/UPDATING mindig a &os; forrásának legfrissebb változatához igazodik, és ezért sokkal naprakészebb információkat tartalmaz, mint ez a kézikönyv. Most pedig le kell lefordítanunk a rendszermag forráskódját. A rendszermag lefordítása Lépjünk be a /usr/src könyvtárba: &prompt.root; cd /usr/src Fordítsuk le a rendszermagot: &prompt.root; make buildkernel KERNCONF=SAJÁT Telepítsük az új rendszermagot: &prompt.root; make installkernel KERNCONF=SAJÁT A &os; teljes forrásfájára szükség van a rendszermag lefordításához. Amikor egy saját rendszermagot alapértelmezés szerint fordítunk, vele együtt az összes modul is lefordításra kerül. Ha viszont időt szeretnénk megtakarítani a rendszermag frissítése során, vagy csak a saját moduljainkat akarjuk lefordítani, érdemes átírnunk az /etc/make.conf állományt a rendszermag fordításának megkezdése előtt: MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs Ez a változó megadja a ténylegesen lefordítandó modulok listáját. WITHOUT_MODULES = linux acpi sound ntfs Ez a változó a fordításból kihagyandó felső szintű modulokat sorolja fel. A rendszermag fordításának folyamatában egyéb hasznosnak tekinthető változókról a &man.make.conf.5; man oldalán olvashatunk. /boot/kernel.old Ezután az új rendszermag a /boot/kernel könyvtárba kerül /boot/kernel/kernel néven, a korábbi rendszermag pedig /boot/kernel.old/kernel néven őrződik meg. Most állítsuk le a rendszert és indítsuk újra az új rendszermag aktiválásához. Ha közben valamilyen hiba történt volna, nézzük meg a fejezet végén található, hibakeresésre vonatkozó utasításokat. Mindenképpen olvassuk el azt a részt, amely leírja, hogyan állítsuk helyre a rendszerünket abban az esetben, ha az új rendszermaggal nem indul. A rendszerindítási folyamathoz tartozó további állományok, mint például a rendszerbetöltő (&man.loader.8;) és annak konfigurációs állománya, a /boot könyvtárban találhatóak. A külső és saját modulok a /boot/kernel a könyvtárba kerülhetnek, azonban a felhasználóknak nagyon ügyelniük kell rá, hogy az itt található modulok szinkronban legyenek a lefordított rendszermaggal. Ellenkező esetben a rendszerben megbízhatatlanságot, hibákat észlelhetünk. Joel Dahl A &os; 6.X verziójához igazította: A konfigurációs állomány rendszermag NOTES NOTES rendszermag konfigurációs állomány A konfigurációs állomány általános formátuma igen egyszerű. Minden sor tartalmaz egy kulcsszót és egy vagy több paramétert. A további egyszerűsítés kedvéért a legtöbb sor csak egyetlen paramétert tartalmaz. Bármi, ami egy # (kettőskereszt) jelet követ, megjegyzésnek minősül és nem számít konfigurációs elemnek. A most következő részek bemutatják az egyes kulcsszavakat abban a sorrendben, ahogy azokat a GENERIC állományban is megtalálhatjuk. Az architektúrafüggő opciók és eszközök teljes listáját a GENERIC állománnyal egy könyvtárban levő NOTES állományban találhatjuk meg. Az architektúrától független opciókat a /usr/src/sys/conf/NOTES állományban találjuk. A &os; 5.0 megjelenése óta a konfigurációs állományokban használható az include direktíva. Ennek segítségével egy másik konfigurációs állomány tartalma logikailag beilleszthető az aktuálisba, így könnyebbé válik egy már meglevő állományhoz tartozó kisebb mennyiségű változtatás karbantartása. Például ha csupán pár egyszerű kiegészítést szeretnénk hozzáadni a GENERIC rendszermaghoz, akkor elegendő a hozzá vett eltéréseket nyilvántartanunk egy külön konfigurációs állományban: include GENERIC ident SAJAT options IPFIREWALL options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT options IPDIVERT Valószínűleg sok rendszergazda számára jelentős előnyt jelent ez a megoldás a konfigurációs állományok korábbról már megszokott újraírásával szemben: a helyi konfigurációs állomány csak a GENERIC rendszermag helyi rendszerre vonatkozó eltéréseit tartalmazza. Így amikor frissítjük a rendszerünket, a GENERIC rendszermag összes újítása elérhetővé válik, kivéve ha explicit módon le nem tiltottuk ezeket a noptions vagy a nodevice megadásával. A fejezet további részében egy átlagos konfigurációs állománnyal fogunk foglalkozni, mind a beállítások, mind pedig az eszközök tekintetében. Ha olyan állományt akarunk készíteni, amely tartalmazza az összes lehetséges opciót, például teszteléshez, futtassuk le root felhasználóként az alábbi parancsot: &prompt.root; cd /usr/src/sys/i386/conf && make LINT rendszermag konfigurációs állomány Itt a GENERIC rendszermag-konfigurációs állomány ismertetése következik, az érthetőség kedvéért helyenként megjegyzésekkel kibővítve. A bemutatott állománynak majdnem pontosan meg kell egyeznie a rendszerünkben található /usr/src/sys/i386/conf/GENERIC állománnyal. a rendszermag beállításai machine machine i386 A számítógépünk architektúráját adja meg. A következők valamelyikének kell lennie: alpha, amd64, i386, ia64, pc98, powerpc, vagy sparc64. a rendszermag beállításai cpu cpu I486_CPU cpu I586_CPU cpu I686_CPU A fenti beállítás segítségével megadhatjuk, milyen típusú processzor található a számítógépünkben. Több ilyen sorunk is lehet (ha például nem lennénk biztosak benne, hogy az I586_CPU vagy I686_CPU értéket kellene megadnunk), de a saját rendszermagunk összeállításához érdemes csak egyet meghagynunk. Ha nem ismerjük pontosan a processzorunk típusát, vessünk egy pillantást a /var/run/dmesg.boot állományra és keressük ki belőle. a rendszermag beállításai ident ident GENERIC Ez a rendszermag azonosítója. Változtassuk meg rendszermagunk nevére, legyen például SAJAT, ha a korábbi utasításokat követtük. Az ident után írt sztring fog megjelenni a rendszermag neve mellett a rendszer indítása során, ezért fontos, hogy az új rendszermagunknak más nevet adjunk, ha meg akarjuk különböztetni az általában használttól (például egy tesztelésre szánt rendszermagot akarunk készíteni). # ha a /boot/device.hints használata helyett statikusan bele akarjuk fordítani #hints "GENERIC.hints" # itt szerepelnek a device hintek A &man.device.hints.5; használható az eszközmeghajtók beállítására. A &man.loader.8; a rendszer indítása során alapértelmezés szerint a /boot/device.hints állományt olvassa be erre a célra. A hints beállítás használatával ezeket a hinteket statikusan bele tudjuk építeni a rendszermagba. Ebben az esetben nincs szükségünk külön device.hints állomány létrehozására a /boot könyvtárban. makeoptions DEBUG=-g # a nyomkövetéshez szükséges gdb(1) szimbólumok beépítése A &os; hagyományos fordításának folyamata során a rendszermagot a használatával készítjük el, aminek köszönhetően hibakeresési információkat tudunk átadni a &man.gcc.1; fordítónak. options SCHED_ULE # ULE ütemező A &os; alapértelmezett rendszerütemezője. Ne változtassuk meg! options PREEMPTION # a rendszerszálak megszakíthatóságának engedélyezése Ha engedélyezzük, a rendszermagban futó szálakat meg tudják szakítani más, magasabb prioritású szálak. Ez segít növelni a rendszer válaszadási sebességét és csökkenti a megszakításokat kezelő szálak várakozását. options INET # hálózatkezelés A hálózatkezelés támogatása. Ne töröljük ki, még akkor sem, ha nem tervezzük hálózatra kapcsolni a rendszert. Sok programnak szüksége van legalább az ún. loopback típusú hálózat támogatására (vagyis a számítógépünkön belüli hálózati kapcsolatokra), ezért ez feltétlenül kötelező! options INET6 # IPv6 kommunikációs prokotollok Engedélyezi az IPv6 kommunikációs protokollok használatát. options FFS # Berkeley Fast Filesystem Ez a legalapvetőbb merevlemezes állományrendszer. Hagyjuk meg, ha merevlemezről akarjuk indítani a rendszerünket. options SOFTUPDATES # az FFS Soft Updates támogatása Ez a beállítás engedélyezi a rendszermagban a Soft Updates használatát, amely segít felgyorsítani a lemez írási sebességét. Ha már a rendszermag ezt a funkcionalitást ismeri, akkor még külön az egyes lemezeken is engedélyezni kell. Nézzük meg a &man.mount.8; kimenetét, hogy lássuk, a rendszerünkben levő lemezek közül melyiken van ténylegesen engedélyezve a Soft Updates használata. Ha nem látjuk benne sehol sem a soft-updates opciót, akkor azt (meglevő állományrendszerek esetén) a &man.tunefs.8; vagy (új állományrendszerek esetén) a &man.newfs.8; parancsokkal tudjuk bekapcsolni. options UFS_ACL # a hozzáférés-vezérlési listák (ACL) támogatása Ezzel a beállítással engedélyezhetjük a rendszermagban a hozzáférés-vezérlési listák támogatását. Ez a kiterjesztett attribútumok és az UFS2 használatára támaszkodik. Ezt a lehetőséget részleteiben a ban tárgyaljuk. Az ACL alapértelmezés szerint támogatott, és ha korábban már használtuk, akkor semmiképpen se kapcsoljuk ki, mert ezzel az eddig létrehozott hozzáférés-vezérlési listáink érvénytelenné, az állományaink pedig védtelenné válnak. options UFS_DIRHASH # nagyobb könyvtárak esetén gyorsulást hoz Ezzel a beállítással némi memória feláldozása árán fel tudjuk gyorsítani a nagyobb könyvtárakon végzett lemezműveletek sebességét, ezért ezt a beállítást érdemes nagyobb szerverekre vagy interaktivitást igénylő munkaállomásokra tartogatni, és eltávolítani olyan esetekben, amikor a &os;-t olyan kisebb számítógépeken használjuk, ahol a memória kevés és a lemezműveletek sebessége kevésbé fontos, például egy tűzfalon. options MD_ROOT # tudunk memórialemezről is rendszert indítani Ezzel az opcióval engedélyezni tudjuk a rendszer indítását memóriában tárolt virtuális lemezekről. a rendszermag beállításai NFS a rendszermag beállításai NFS_ROOT options NFSCLIENT # hálózati állományrendszer (NFS) kliens options NFSSERVER # NFS szerver options NFS_ROOT # NFS használható gyökérként is, kell hozzá az NFSCLIENT A hálózati állományrendszer támogatása. Hacsak nem akarunk TCP/IP-n keresztül állományrendszereket csatlakoztatni egy &unix; állományszerverről, kivehetjük. a rendszermag beállításai MSDOSFS options MSDOSFS # MS-DOS állományrendszer Az &ms-dos; állományrendszer. Hacsak nem akarunk DOS-ra formázott merevlemezes partíciót csatlakoztatni a rendszerindítás során, nyugodtan elhagyhatjuk. A fentebb leírtak szerint az első olyan alkalommal automatikusan betöltődik, amikor egy DOS partíciót csatlakoztatni akarunk. Sőt, a nagyszerű emulators/mtools szoftver segítségével külön csatlakoztatás és leválasztás nélkül tudunk DOS-os floppykat olvasni (és az MSDOSFS-re egyáltalán nincs is szüksége). options CD9660 # ISO 9660 állományrendszer Az ISO 9660 állományrendszert a CD-k használják. Vegyük ki, ha nincs a számítógépben CD-ROM meghajtó, vagy csak ritkán fogunk CD-ket csatlakoztatni (mivel a hozzá tartozó modul magától betöltődik az első adat CD csatlakoztatása során). Az audio CD-k nem használják ezt az állományrendszert. options PROCFS # a futó programok állományrendszere (szükséges hozzá a PSEUDOFS) A futó programok állományrendszere. Ez csak a /proc könyvtárra csatlakoztatott színlelt állományrendszer, amelynek segítségével a &man.ps.1; és hozzá hasonló programok képesek több információt adni a futó programokról. A PROCFS használata a legtöbb esetben nem indokolt, mivel a különféle nyomkövető és felügyeleti eszközök képesek a PROCFS használata nélkül is működni: alapértelmezés szerint a telepített rendszerek sem csatlakoztatják ezt az állományrendszer. options PSEUDOFS # pszeudo állományrendszerek támogatása A 6.X verziójú rendszermagokban a PROCFS használatához engedélyeznünk kell a PSEUDOFS használatát is. options GEOM_GPT # GUID típusú partíciós táblák használata Ezzel a beállítással engedélyezni tudjuk nagy mennyiségű partíció támogatását egyetlen lemezen. options COMPAT_43 # kompatibilitás fenntartása a 4.3 BSD-vel [NE TÖRÖLD!] Kompatibilitás a 4.3BSD-vel. Ne vegyük ki, mert bizonyos programok furcsán fognak viselkedni a hiánya esetén. options COMPAT_FREEBSD4 # kompatibilitás a &os;4-el Ez a beállítás szükséges a &os; 5.X &i386; és Alpha rendszerein a &os; korábbi verzióihoz fordított alkalmazások támogatásához, melyek régebbi rendszerhívásokat használnak. Az összes &i386; és Alpha típusú rendszeren ajánlott engedélyezni, mivel itt előfordulhatnak régebbi alkalmazások. A többi platform, mint például az ia64 vagy a &sparc64;, támogatása csak az 5.X verzióban jelent meg, ezért ott nincs szükség erre. options COMPAT_FREEBSD5 # kompatibilitás a &os;5-el Ezt a beállítást a &os; 6.X és afeletti verziókban kell használni az olyan &os; 5.X verziókra fordított alkalmazások futtatásának támogatásához, melyek a &os; 5.X rendszerhívásait használják. options SCSI_DELAY=5000 # a SCSI eszközök keresése előtt késleltetés (ezredmásodpercben) Ezzel a beállítással a rendszermag 5 másodpercig várakozni fog a SCSI eszközök keresése előtt. Ha kizárólag csak IDE típusú merevlemezeink vannak, nyugodtan kihagyhatjuk, máskülönben érdemes a rendszerindítás gyorsítása érdekében csökkenteni ezt az értéket. Természetesen, ha így teszünk és a &os; nem tudja felismerni a SCSI eszközeinket, akkor növeljük meg valamennyivel. options KTRACE # a ktrace(1) támogatása Engedélyezi a rendszermagban futó rutinok nyomonkövetését, ami hasznos lehet a hibák keresése során. options SYSVSHM # SYSV-szerű osztott memória Ezzel a beállítással engedélyezni tudjuk a rendszerben a System V típusú osztott memória használatát. Leggyakrabban az X rendszer XSHM kiterjesztése használja, amelyen keresztül számos műveletigényes grafikus program működését fel lehet gyorsítani. Ha X-et használunk, mindenképpen szükségünk lehet erre. options SYSVMSG # SYSV-szerű üzenetsorok A System V üzenetek támogatása. Ez a beállítás csupán néhány száz byte-tal növeli a rendszermagot. options SYSVSEM # SYSV-szerű szemaforok A System V szemaforok támogatása. Nem túl gyakran alkalmazzák ezeket, de ez csak néhány száz byte-ot tesz hozzá a rendszermaghoz. A &man.ipcs.1; parancs paraméterével ki tudjuk listáztatni azokat a futó programokat, amelyek ezen System V eszközöket használják. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B valósidejű kiterjesztések A &posix; 1993-as változatában megjelent valósidejű bővítések. A Portgyűjteményben megjelenő egyes alkalmazások használják ezeket (mint például a &staroffice;). options KBD_INSTALL_CDEV # CDEV bejegyzés létrehozása a /dev könyvtárban Ez a beállítás kell ahhoz, hogy a /dev könyvtárban létre tudjunk hozni eszközleírókat a billentyűzethez. options ADAPTIVE_GIANT # adaptív Giant mutexek A Giant annak a kölcsönös kizárási mechanizmusnak (blokkolt mutexnek) a neve, amely a rendszermag erőforrásainak jelentős részét védi. Manapság ez már egy elfogadhatatlanul szűk keresztmetszetet képez a teljesítményben, ezért a fejlesztésben fokozatosan felváltják az egyes erőforrásokat külön-külön védő zárolások. Az ADAPTIVE_GIANT beállítás hatására a Giant a helyzethez igazodóan forgó (spin) mutexek közé kerül. Ez azt jelenti, hogy amikor egy szál zárolni akarja a Giant mutexet, de ezt már megtette előtte egy másik processzorról futó szál, a szál tovább fut és várakozni fog a zárolás feloldására. Normális esetben ugyanis egy szál továbbra is blokkolt állapotban marad, várakozva a futásra. Ha nem tudunk dönteni, hagyjuk változatlanul. Hozzátesszük, hogy a &os; 8.0-CURRENT és későbbi változataiban az össszes mutex alapértelmezés szerint adaptív, hacsak meg nem adjuk a NO_ADAPTIVE_MUTEXES beállítást. Ennek eredményeképpen a Giant most már alapból adaptív, ezért esetükben az ADAPTIVE_GIANT nem szerepel a rendszermag beállításai között. a rendszermag beállításai SMP device apic # I/O APIC Az apic nevű eszköz engedélyezésével használhatjuk a hardveres APIC-ot a megszakítások vezérlésére. Az apic alkalmazható egy- és többprocesszoros rendszerek esetén is egyaránt, de az SMP rendszermagoknál szükséges. Több processzor támogatásánál mindenképpen tegyük hozzá az options SMP beállítást is. Az apic eszköz csak az i386 architektúrán létezik, ezért a többi architektúrán nem szabad használnunk ezt a beállítást. device eisa Abban az esetben engedélyezzük, ha EISA-s alaplapunk van, ezzel aktiváljuk az EISA buszra csatlakoztatott eszközök automatikus felismerését és beállíthatóságát. device pci Tegyük hozzá a konfigurációs állományhoz, ha PCI-os alaplapuk van. Ezzel engedélyezhetjük a PCI kártyák automatikus felismerését és a PCI és ISA buszok közti átirányítást. # Hajlékonylemezes meghajtók device fdc Ez a hajlékonylemezes meghajtó vezérlője. # ATA és ATAPI eszközök device ata Ez az eszközmeghajtó felelős az összes ATA és ATAPI eszközért. A modern számítógépeken csak egyszer kell megadnunk a device ata sort a beállítások között az összes PCI-os ATA/ATAPI eszköz felismeréséhez. device atadisk # ATA lemezmeghajtók Az ATA lemezmeghajtók támogatásához erre van még szükség a device ata mellett. device ataraid # ATA RAID-meghajtók Az ATA RAID-meghajtók kezeléséhez erre a sorra van szükség a device ata mellett. device atapicd # ATAPI CD-meghajtók Az ATAPI CD-meghajtók használatához ezt is tegyük a konfigurációba a device ata mellé. device atapifd # ATAPI floppy meghajtók A device ata használata mellett erre van még szükségünk az ATAPI floppy meghajtók kezeléséhez. device atapist # ATAPI szalagos meghajtók Az ATAPI szalagos egységek használatához ezt a sort is tegyük a konfigurációba a device ata mellé. options ATA_STATIC_ID # statikus eszközszámozás Ezzel a beállítással a vezérlők számozása állandó lesz. Nélküle az eszközszámok dinamikusan kerülnek kiosztásra. # SCSI vezérlők device ahb # EISA AHA1742 család device ahc # AHA2940 és integrált AIC7xxx eszközök options AHC_REG_PRETTY_PRINT # a hibák kereséséhez kiíratja a regiszterek # bitmezőit. Kb. 128 KB-al növeli a méretét. device ahd # AHA39320/29320 és integrált AIC79xx eszközök options AHD_REG_PRETTY_PRINT # a hibák kereséséhez kiíratja a regiszterek # bitmezőit. Kb. 215 KB-al növeli a méretét. device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic család #device ispfw # a QLogic HBA firmware-e, többnyire modul device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (újabb chipsetek, illetve az `ncr' típusúak) device trm # Tekram DC395U/UW/F DC315U csatolók device adv # Advansys SCSI-csatolók device adw # Advansys wide SCSI-csatolók device aha # Adaptec 154x SCSI-csatolók device aic # Adaptec 15[012]x SCSI-csatolók, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI-csatolók device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50 SCSI-vezérlők. Vegyük ki azokat, amelyekkel ténylegesen nem rendelkezünk. Ha csak IDE eszközeink vannak a rendszerünkben, az összeset eltávolíthatjuk. A _REG_PRETTY_PRINT végződésű sorok a megfelelő meghajtók hibakerési beállításait takarják. # SCSI-perifériák device scbus # SCSI-busz (kell a SCSI-hoz) device ch # SCSI médiumváltók (media changer) device da # közvetlen hozzáférés (lemezek) device sa # soros hozzáférés (szalag stb.) device cd # CD device pass # áteresztő eszköz (közvetlen SCSI hozzáférés) device ses # SCSI környezeti szolgáltatások (és SAF-TE) SCSI-perifériák. Itt is érvényes, hogy kivehetjük azokat az eszközöket, amelyekkel nem rendelkezünk. De ha csak IDE hardvereink vannak, teljesen eltávolíthatjuk ezeket. Annak ellenére, hogy valójában nem igazi SCSI-eszközök, az USB-s &man.umass.4; és még néhány más egyéb meghajtó is használja a SCSI alrendszert. Emiatt semmiképpen se távolítsuk el a SCSI támogatást a rendszerünkől abban az esetben, ha ilyen meghajtókat is használni szándékozunk. # a SCSI alrendszerhez kapcsolódó RAID-vezérlők device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI és Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - lásd a NOTES állományt device hptmv # Highpoint RocketRAID 182x device rr232x # Highpoint RocketRAID 232x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID vezérlők device aac # Adaptec FSA RAID device aacp # SCSI áteresztő az aac-hez (kell hozzá a CAM) device ida # Compaq Smart RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 család device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID Az ismert RAID-vezérlők. Ha közülük egyikkel sem rendelkezünk, távolítsuk el ezeket a konfigurációból. # az atkbdc0 vezérli a billentyűzetet és a PS/2-es egeret device atkbdc # AT billentyűzet vezérlő A billentyűzet vezérlője (atkbdc) az AT-s billentyűzet és a PS/2 stílusú pozícionáló eszközök vezérléséhez szükséges I/O szolgáltatásokat biztosítja. Erre a vezérlőre a billentyűzet meghajtójának (atkbd) és a PS/2 pozícionáló eszközök eszközmeghajtójának (psm) is szüksége van. device atkbd # AT billentyűzet Az atkbd meghajtó, a atkbdc vezérlővel együtt, adja a hozzáférést az AT billentyűzet vezérlőre csatlakoztatott AT 84 és a fejlettebb AT billentyűzetek felé. device psm # PS/2 egér Használjuk ezt az eszközt, ha az egerünk a PS/2 portra csatlakozik. device kbdmux # billentyűzet multiplexer A billentyűzet multiplexer alapszintű támogatása. Ha nem kívánunk a jövőben egynél több billentyűzetet csatlakoztatni a rendszerünkre, nyugodt szívvel kivehetjük ezt a sort. device vga # VGA videokártya meghajtó Videokártya meghajtó. device splash # üdvözlőképernyők és képernyőkímélők támogatása Nyissunk egy üdvözlőképernyővel! A képernyőkímélőknek is szükségük van erre az eszközre. # a syscons az alapértelmezett konzolmeghajtó, hasonlít a SCO konzolra device sc Az sc az alapértelmezett meghajtó a konzolok számára, és sokban hasonlít a SCO konzolra. Mivel a legtöbb teljesképernyős program a termcap termináladatbázis könyvtáron keresztül éri el a konzolt, nem igazán számít, hogy ezt vagy a VT220-kompatibilis vt konzolmeghajtót használjuk. Ha bármilyen gondunk lenne a teljesképernyős programok futtatásával ezen a konzolon, a bejelentkezéskor állítsuk a TERM környezeti változónkat a scoansi értékre. # ezzel tudjuk engedélyezni a pcvt (VT220-kompatibilis) konzolmeghajtót #device vt #options XSERVER # az X szerver támogatása vt konzolon #options FAT_CURSOR # telt kurzor használata Ez a VT220-kompatibilis konzolmeghajtó, amely visszafelé kompatibilis a VT100/102-vel is. Remekül működik olyan laptopokon, ahol a hardver nem használható az sc konzollal. Itt ugyanúgy érdemes egyébként a vt100 értékre vagy a vt220 értékre állítani a TERM környezeti változónkat. Hasznosnak bizonyulhat abban az esetben is, amikor hálózaton keresztül nagy mennyiségű és eltérő típusú számítógépekhez csatlakozunk, és ahol a termcap és terminfo adatbázisokban az sc bejegyzései gyakran nem is érhetőek el — a vt100 viszont virtuálisan az összes platformon elérhető. device agp Írjuk bele a konfigurációba, ha van AGP kártya a rendszerünkben. Ezzel engedélyezzük az AGP és az AGP GART támogatását az ezeket ismerő kártyák számára. APM # energiagazdálkodás támogatása (bővebben lásd: NOTES) #device apm A fejlett energiagazdálkodás támogatása. Laptopok esetén hasznos, habár ez alapértelmezés szerint nincs engedélyezve a GENERIC konfigurációban. # az i8254 készenléti módjának támogatása device pmtimer Az energiagazdálkodási események, mint például APM és ACPI időzítőjének eszközmeghajtója. # PCCARD (PCMCIA) támogatás # PCMCIA és cardbus támogatás device cbb # cardbus (yenta) bridge device pccard # PC Card (16 bites) busz device cardbus # CardBus (32 bites) busz A PCMCIA támogatása. Mindenképpen szükségünk lesz rá, ha laptopunk van. # soros (COM) portok device sio # 8250, 16[45]50 alapú soros portok Ezek azok a soros portok, amelyek az &ms-dos;/&windows; világban csak COM portokként ismernek. Ha van egy belső modemünk a COM4-en és egy soros portunk a COM2-n, a modem IRQ-ját meg kell változtatnunk 2-re (valamilyen homályos műszaki okból kifolyólag a COM2 = IRQ9), hogy hozzá tudjunk férni &os;-ből. Ha többportos soros kártyánk lenne, lapozzuk fel a &man.sio.4; man oldalát, és ott hozzá megtaláljuk a /boot/device.hints állományba írandó megfelelő értékeket. Egyes videokártyák (különösen az S3 chipekre épülők) az I/O címeket 0x*2e8 alakban használják, és mivel rengeteg olcsó soros kártya nem kódolja vissza egészében a 16 bites I/O címteret, ütközni fognak ezekkel a kártyákkal, és ezáltal a COM4 port gyakorlatilag elérhetetlenné válik. Minden egyes soros portnak egyedi IRQ-ja kell legyen (hacsak nem használunk olyan többportos kártyát, amely támogatja a megosztott megszakításokat), ezért a COM3 és COM4 esetén alapértelmezett IRQ-k nem használhatóak. # párhuzamos port device ppc Ez az ISA busz párhuzamos portjának felülete. device ppbus # a párhuzamos port busza (kell) A párhuzamos porthoz tartozó busz támogatása. device lpt # nyomtató A párhuzamos portra csatlakozó nyomtatók támogatása. A fentiek közül mind a három szükséges a párhuzamos porton csatlakozó nyomtatók használatához. device plip # TCP/IP párhuzamos porton keresztül Ez a párhuzamos port hálózati felületének meghajtója. device ppi # a párhuzamos port felületének eszköze Általános célú (geek port) és IEEE1284 I/O. #device vpo # az scbus és a da kell a használatához zip meghajtó Ez az Iomega Zip meghajtóihoz tartozó eszköz. A működéséhez szükség van az scbus és da engedélyezésére. A legjobb teljesítményt EPP 1.9 módban működő portokkal lehet kihozni belőle. #device puc Tegyük bele a konfigurációba ezt az eszközt, ha egy olyan buta soros vagy párhuzamos PCI kártyánk van, amelyet a &man.puc.4; segédmeghajtó ismer. # PCI Ethernet kártyák device de # DEC/Intel DC21x4x (Tulip) device em # Intel PRO/1000 Gigabit Ethernet kártya device ixgb # Intel PRO/10GbE Ethernet kártya device txp # 3Com 3cR990 (Typhoon) device vx # 3Com 3c590, 3c595 (Vortex) Különféle PCI hálózati kártyák meghajtói. Vegyük ki azokat, amelyek nem találhatóak meg a rendszerünkben. # PCI Ethernet kártyák, melyek az MII busz vezérlőkódját használják # FIGYELEM: Ne töröljük ki a 'device miibus' sort, ha ilyen kártyánk van! device miibus # az MII busz támogatása Az MII busz engedélyezése elengedhetetlen bizonyos 10/100-as PCI Ethernet kártyák használatához, konkrétan azokéhoz, amelyek az MII-vel együttműködni képes adó-vevőt használnak vagy az MII-höz hasonló adó-vevő vezérlő felületet valósítanak meg. A device miibus hozzáadása a rendszermaghoz magával vonja az általános miibus API és az összes PHY meghajtó támogatását, beleértve azt az általános PHY eszközt is, amelyet az egyes eszközmeghajtók külön nem támogatnak. device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 és egyéb hasonlóak device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit ethernet device nve # nVidia nForce MCP integrált Ethernet hálózat device pcn # AMD Am79C97x PCI 10/100 (az 'lnc' előtt) device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (Starfire) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device stge # Sundance/Tamarack TC9021 gigabit Ethernet device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 EPIC) device vge # VIA VT612x gigabit ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (Boomerang, Cyclone) Meghajtók, melyek az MII busz vezérlőkódját használják. # ISA Ethernet és pccard hálózati kártyák. device cs # Crystal Semiconductor CS89x0 NIC # az 'device ed' eszközhöz kell a 'device miibus' device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 és Pro/10+ device ep # Etherlink III alapú kártyák device fe # Fujitsu MB8696x alapú kártyák device ie # EtherExpress 8/16, 3C507, StarLAN 10 stb. device lnc # NE2100, NE32-VL Lance Ethernet kártyák device sn # az SMC 9000-res sorozatú Ethernet chipjei device xe # Xircom pccard Ethernet # ISA eszközök, melyek a régi ISA betétet használják #device le ISA Ethernet meghajtók. A konkrétan támogatott kártyák teljes felsorolását lásd a /usr/src/sys/i386/conf/NOTES állományban. # vezeték nélküli hálózati kártyák device wlan # 802.11 támogatás Általános 802.11 támogatás. Erre a sorra mindenképpen szükség van a vezeték nélküli hálózatok használatához. device wlan_wep # 802.11 WEP támogatás device wlan_ccmp # 802.11 CCMP támogatás device wlan_tkip # 802.11 TKIP támogatás A 802.11 eszközök esetén a titkosítás támogatása. Ezeket a sorokat akkor adjuk meg, ha titkosítást akarunk használni vagy a 802.11i biztonsági protokolljait. device an # Aironet 4500/4800 802.11 vezeték nélküli hálózati kártyák device ath # Atheros pci/cardbus hálózati kártyák device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # küldési mintavételi vezérlés az ath-hoz device awi # BayStack 660 és mások device ral # Ralink Technology RT2500 vezeték nélküli hálózati kártyák device wi # WaveLAN/Intersil/Symbol 802.11 vezeték nélküli hálózati kártyák #device wl # régebbi, nem 802.11 Wavelan vezeték nélküli hálózati kártyák A különböző vezeték nélküli kártyák támogatása. # Pszeudo eszközök device loop # hálózati loopback Ez a TCP/IP általános loopback eszköze. Ha telnettel vagy FTP-vel rácsatlakozunk a localhost címére (vagyis a 127.0.0.1-re), akkor rajta keresztül saját magunkhoz jutunk vissza. Ennek a megléte kötelező! device random # álvéletlenszám eszköz Kriptográfiai szempontból biztonságos álvéletlenszám generátor. device ether # Ethernet támogatás Az ether eszközre csak abban az esetben van szükség, ha Ethernet kártyánk van. Ez magában foglalja az általános Ethernet protokoll kódját. device sl # belső SLIP Az sl a SLIP használatát engedélyezi. Ez egy régi protokoll, amelyet azóta már szinte teljesen kiszorított a PPP, mivel azt könnyebb beállítani és sokkal jobban is illik a modem-modem kapcsolatokhoz, illetve sokkal erőteljesebb. device ppp # belső PPP Ez a tárcsázós kapcsolatok rendszermagon belüli PPP támogatását adja meg. Van a PPP-nek egy külső, a felhasználói programként megvalósított változata is, amely a tun eszközt használja és sokkal nagyobb rugalmasságot kínál fel, illetve olyan lehetőségeket, mint például az igény szerinti tárcsázás. device tun # csomag alagút Ezt a felhasználói PPP szoftver használja. A könyv PPP-ről szóló részében többet is megtudhatunk róla. device pty # Pszeudo terminálok (telnet stb.) Ezek a pszeudo terminálok, vagy más néven szimulált bejelentkezési portok. A bejövő telnet és rlogin munkamenetek használják, valamint az xterm és a hozzá hasonló alkalmazások, mint például az Emacs. device md # memórialemezek A memóriában levő pszeudo lemezes meghajtók. device gif # IPv6 és IPv4 tunnelek használata Megvalósítja az IPv6 IPv4 feletti, az IPv4 IPv6 feletti, az IPv4 IPv4 feletti és az IPv6 IPv6 feletti közvetítését. A gif eszköz magától másolódik, vagyis szükség szerint hozza létre a megfelelő eszközleírókat. device faith # IPv6-IPv4 közti továbbítás (fordítás) Ez a pszeudo eszköz elfogja a hozzá küldött csomagokat és átadja ezeket az IPv4/IPv6 fordítással foglalkozó démonnak. # a `bpf' eszköz használatával a Berkeley csomagszűrőt (Berkeley Packet Filter) engedélyezzük # Legyünk rá tekintettel, hogy ennek komoly következményei lehetnek # rendszeradminisztrációs szempontból! # A 'bpf'-re szükség van a DHCP-hez. device bpf # Berkeley csomagszűrő A Berkeley csomagszűrője. Ez egy olyan pszeudo eszköz, amely lehetővé teszi, hogy a hálózati csatolók forgalmát megfigyeljük, mivel a (pl. Ethernet) hálózatunkon minden csomagot elkap. Ezek a csomagok lemezre is menthetőek vagy kielemezhetőek a &man.tcpdump.1; program segítségével. A &man.bpf.4; eszközt a &man.dhclient.8; is használja többek közt az alapértelmezett átjáró IP-címének megszerzéséhez. Ha DHCP-t akarunk használni, hagyjuk így. # USB támogatás device uhci # UHCI PCI->USB felület device ohci # OHCI PCI->USB felület device ehci # EHCI PCI->USB felület (USB 2.0) device usb # USB busz (kell) #device udbp # USB Double Bulk Pipe eszközök device ugen # általános device uhid # Human Interface Devices device ukbd # billentyűzet device ulpt # nyomtató device umass # lemez/háttértároló - kell hozzá az scbus és a da device ums # egér device ural # Ralink Technology RT2500USB vezeték nélküli hálózati kártyák device urio # Diamond Rio 500 MP3 lejátszó device uscanner # lapolvasók # USB Ethernet, kell hozzá az mii device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet device cdce # általános USB, Etherneten keresztül device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet A különféle USB eszközök támogatása. # FireWire támogatás device firewire # FireWire buszkód device sbp # SCSI FireWire-ön keresztül (kell hozzá az scbus és a da) device fwe # Ethernet FireWire-ön keresztül (nem szabványos!) A különféle Firewire eszközök támogatása. A &os; által ismert további eszközökről a /usr/src/sys/i386/conf/NOTES állományból tájékozódhatunk. Sok memória kezelése (<acronym>PAE</acronym>) Fizikai címkiterjesztés (PAE) sok memória A sok memóriával rendelkező számítógépek esetén szükség lehet a felhasználói és rendszerszintű virtuális címek (Kernel Virtual Address, KVA) 4 gigabyte feletti használatára. Ennek a korlátozásnak a kiküszöbölésére az &intel; külön támogatást épített be a &pentium; Pro és az azt követő processzorok 36 bites fizikai címzésének kialakításához. A Fizikai Címkiterjesztés (Physical Address Extension, PAE) az &intel; &pentium; Pro és későbbi processzoraiban található meg, és lehetővé teszi egészen 64 gigabyte-ig a memóriahasználatot. A &os; is támogatja ezt a tulajdonságot a rendszermag beállítás használatával, és megtalálható a &os; összes jelenlegi verziójában. Az &intel; architektúrájú processzorok memóriaszervezésének korlátai miatt nem különböztethető meg a 4 gigabyte alatti és feletti memória. A 4 gigabyte felett található memóriaterületek egyszerűen hozzáadódnak a rendelkezésre álló memóriához. A rendszermagban a PAE támogatását egyszerűen az alábbi sor hozzáadásával tudjuk engedélyezni: options PAE A &os;-ben a PAE támogatása csak az &intel; IA-32 architektúrájú processzoraihoz érhető el. Emellett meg kell említenünk, hogy a &os;-ben található PAE támogatás nem lett szélesebb körben próbára téve, ezért a &os; többi megbízható elemeihez képest csak béta állapotúnak tekinthető. A &os; PAE támogatásának van néhány hiányossága: Egy futó program a virtuális memóriában nem képes 4 gigabyte-nál többet elérni. A &man.bus.dma.9; felületet nem használó eszközmeghajtók adathibákat okozhatnak a PAE-t támogató rendszermagokban, és emiatt nem ajánljuk a használatukat. Ebből a megfontolásból készítettünk egy PAE nevű konfigurációs állományt a &os;-hez, amelyben nem szerepel egyetlen olyan meghajtó sem, amely ismereteink szerint nem működik együtt a PAE-t támogató rendszermagokkal. Bizonyos finomhangolási beállítások a memóriahasználatot a rendelkezésre álló fizikai memória mennyiségéből számítják ki. A PAE támogatással működő rendszerek esetében megjelenő sok memória miatt azonban az ilyen eszközök szükségtelenül több területet foglalhatnak le. Erre példa lehet a sysctl változó, amely a rendszermag által maximálisan felhasználható virtuális csomópontok számát korlátozza. Ajánlott tehát az ilyen és ehhez hasonló beállítások értelmes értékre történő visszaállítása. Szükséges lehet a rendszermag virtuális címterének (KVA) növelése vagy a rendszermag által túlságosan nagy méretűre foglalt címterű különféle erőforrások (lásd fentebb) csökkentése a KVA kifogyásának elkerülésére. A KVA területének növelését a beállításával tehetjük meg. Ha gondjaink lennének a teljesítménnyel vagy a megbízhatósággal, keressük fel a &man.tuning.7; man oldalt. A &man.pae.4; man oldalon pedig a &os; PAE támogatásáról találhatunk naprakész információkat. Ha valamilyen hiba történne Négyféle probléma jelentkezhet egy saját rendszermag készítése során. Ezek: A config hibát jelez: Amikor a &man.config.8; parancs hibát jelez vissza a rendszermagunk konfigurációs beállításainak feldolgozása során, akkor minden bizonnyal csak egy apró hibát vétettünk valahol. Szerencsére a &man.config.8; kiírja a hibás sor számát, ezért gyorsan fel tudjuk kutatni a hibát tartalmazó sort. Például, ha ezt látjuk: config: line 17: syntax error Akkor győződjünk meg róla, hogy helyesen írtuk be az adott sorban szereplő kulcsszót. Ebben segítségünkre lehet, ha összevetjük a GENERIC konfigurációs állománnyal vagy más hivatkozásokkal. A make hibát jelez: Ha a make jelez hibát, az általában arra utal, hogy az általunk korábban megadott rendszermag konfigurációs állományt a &man.config.8; nem értette meg rendesen. Megint azt tudjuk csak javasolni, hogy nézzük át a konfigurációs beállításainkat, és ha ezután sem sikerül megoldani a problémát, akkor mellékeljük egy levélben a rendszermagunk konfigurációs beállításait és küldjük el a &a.questions; címére, ahol a hozzáértők gyorsan átnézik. A rendszermag nem indul: Ha az új rendszermagunk nem indul vagy nem képes felismerni az eszközeinket, ne essünk kétségbe! Szerencsére a &os; tökéletes megoldással tud szolgálni az összeférhetetlen rendszermagok esetére: a &os; rendszerbetöltőjében egyszerűen válasszuk ki az indítandó rendszermagot. Ezt akkor tudjuk előhívni, amikor a rendszerindító menü megjelenik. Válasszuk ki a hatos, vagyis az Escape to a loader prompt (a betöltő parancssorának előhívása) menüpontot. Mikor megjelenik a parancssor, írjuk be, hogy unload kernel, majd adjuk ki a boot /boot/kernel.old/kernel, parancsot, amiben bármilyen más olyan rendszermagot is megnevezhetünk, ami korábban már működött. Ezért amikor beállítunk egy új rendszermagot, mindig érdemes a kezünk ügyében tartani legalább egy olyan rendszermagot, amely működik. Miután sikerült elindítanunk az egyik használható rendszermagot, nézzük át még egyszer a konfigurációs állományt és próbáljuk újra lefordítani a rendszermagot. A probléma megoldását segítheti a /var/log/messages állomány áttanulmányozása is, ami többek közt rögzíti a rendszermag sikeres indulása során keletkező üzeneteket. Ezenkívül a &man.dmesg.8; parancs is meg tudja jeleníteni az aktuális rendszerindítás üzeneteit. Ha gondok merülnének fel a rendszermag elkészítése során, mindenképpen tartsuk meg a GENERIC, vagy bármilyen másik olyan rendszermagot, amelyről tudjuk, hogy működik. Nevezzük át, így nem fog felülíródni a következő fordítás és telepítés során. A kernel.old állományra ugyanis nem minden esetben számíthatunk, mivel az új rendszermagok telepítésénél a kernel.old mindig felülíródik a legutóbb telepített rendszermaggal, amely azonban nem feltétlenül lesz működőképes. Sőt, amint csak lehetséges, rakjuk a működő rendszermagot a /boot/kernel könyvtárba vagy különben a &man.ps.1; és a hozzá hasonló parancsok nem fognak rendesen működni. Mindezek elvégzéséhez egyszerűen nevezzük át a jó rendszermagot tartalmazó könyvtárt: &prompt.root; mv /boot/kernel /boot/kernel.rossz &prompt.root; mv /boot/kernel.jó /boot/kernel A rendszermag működik, a &man.ps.1; viszont nem: Ha olyan rendszermagot telepítettünk, aminek a verziója nem egyezik meg a hozzá tartozó segédprogramokéval, tehát például -CURRENT rendszermagot raktunk egy -RELEASE rendszerhez, egyes rendszerállapotjelző parancsok, mint például a &man.ps.1; vagy a &man.vmstat.8; nem fognak működni. Ebben az esetben az egész rendszert újra kell fordítanunk és telepítenünk a rendszermagunkkal megegyező verziójú forrásból. Részben ezért sem különösen ajánlott, hogy az operációs rendszer többi részétől eltérő verziójú rendszermagot használjunk.