JimMockFrissítette és átdolgozta:
JakeHambyEredetileg írta: A &os; rendszermag testreszabásaÁttekintésrendszermagsaját rendszermag
készítéseA 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.TomRhodesÍrta: A rendszerünkben levő hardverek
összeszedéseMielő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 0Ezutá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 = ethernetA 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 Atherosle 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 modulokrendszermagmeghajtók, modulok, alrendszerekMielő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éserendszermagkészítése,
telepítéseElő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ÁTMost 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.SunOSHa 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ásaLépjünk be a /usr/src
könyvtárba:&prompt.root; cd /usr/srcFordítsuk le a rendszermagot:&prompt.root; make buildkernel KERNCONF=SAJÁTTelepítsük az új rendszermagot:&prompt.root; make installkernel KERNCONF=SAJÁTA &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 ntfsEz a változó megadja a ténylegesen
lefordítandó modulok
listáját.WITHOUT_MODULES = linux acpi sound ntfsEz 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.oldEzutá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.JoelDahlA &os; 6.X verziójához
igazította: A konfigurációs állományrendszermagNOTESNOTESrendszermagkonfigurációs
állományA 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 LINTrendszermagkonfigurációs
állományItt 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ásaimachinemachine i386A 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ásaicpucpu I486_CPU
cpu I586_CPU
cpu I686_CPUA 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ásaiidentident GENERICEz 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 hintekA &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éseA &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éseHa 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ésA 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 prokotollokEngedélyezi az IPv6 kommunikációs
protokollok használatát.options FFS # Berkeley Fast FilesystemEz 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ásaEz 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ásaEzzel 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 hozEzzel 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ítaniEzzel 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ásaiNFSa rendszermag beállításaiNFS_ROOToptions 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 NFSCLIENTA 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ásaiMSDOSFSoptions MSDOSFS # MS-DOS állományrendszerAz &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ányrendszerAz 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ásaA 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álataEzzel 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-elEz 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-elEzt 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ásaEngedé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óriaEzzel 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ű üzenetsorokA 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ű szemaforokA 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ésekA &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árbanEz 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 mutexekA 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ásaiSMPdevice apic # I/O APICAz 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 eisaAbban 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 pciTegyü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 fdcEz a hajlékonylemezes meghajtó
vezérlője.# ATA és ATAPI eszközök
device ataEz 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ókAz ATA lemezmeghajtók
támogatásához erre van még
szükség a device ata
mellett.device ataraid # ATA RAID-meghajtókAz ATA RAID-meghajtók kezeléséhez erre a
sorra van szükség a device ata
mellett.
device atapicd # ATAPI CD-meghajtókAz ATAPI CD-meghajtók használatához ezt
is tegyük a konfigurációba a device
ata mellé.device atapifd # ATAPI floppy meghajtókA 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ókAz 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ásEzzel 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/18C50SCSI-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 RAIDAz 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űzetAz 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érHasználjuk ezt az eszközt, ha az egerünk a
PS/2 portra csatlakozik.device kbdmux # billentyűzet multiplexerA 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ásaNyissunk 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 scAz 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álataEz 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 apmA 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 pmtimerAz 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) buszA 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 portokEzek 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 ppcEz 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ülEz 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áhozzip 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 pucTegyü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ásaAz 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 leISA 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ásA 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ákA különböző vezeték
nélküli kártyák
támogatása.# Pszeudo eszközök
device loop # hálózati loopbackEz 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özKriptográfiai szempontból biztonságos
álvéletlenszám generátor.device ether # Ethernet támogatásAz 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ő SLIPAz 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ő PPPEz 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útEzt 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órialemezekA memóriában levő pszeudo lemezes
meghajtók.device gif # IPv6 és IPv4 tunnelek használataMegvaló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 EthernetA 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
(PAE)Fizikai címkiterjesztés
(PAE)sok memóriaA 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 PAEA &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énneNé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 errorAkkor 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/kernelA 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.