8.6. A konfigurációs állomány
Vissza | 8. fejezet - A FreeBSD rendszermag testreszabása | Előre

## 8.6. A konfigurációs állomány

A FreeBSD 6.X verziójához igazította: Dahl, Joel.

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 FreeBSD 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.

### Megjegyzés:

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:

    # cd /usr/src/sys/i386/conf && make LINT

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.

    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`.

    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.

    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 device.hints(5) használható az eszközmeghajtók beállítására. A 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 FreeBSD hagyományos fordításának folyamata során a rendszermagot a `-g` használatával készítjük el, aminek köszönhetően hibakeresési információkat tudunk átadni a gcc(1) fordítónak.

    options          SCHED_ULE          # ULE ütemező

A FreeBSD 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 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 tunefs(8) vagy (új állományrendszerek esetén) a 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 14.12. szakasz - Az állományrendszerek hozzáféréseit vezérlő listákban 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 FreeBSD-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.

    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(R) állományszerverről, kivehetjük.

    options          MSDOSFS           # MS-DOS állományrendszer

Az MS-DOS(R) á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 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 FreeBSD4-el

Ez a beállítás szükséges a FreeBSD 5.X i386TM és Alpha rendszerein a FreeBSD korábbi verzióihoz fordított alkalmazások támogatásához, melyek régebbi rendszerhívásokat használnak. Az összes i386TM é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(R), 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 FreeBSD5-el

Ezt a beállítást a FreeBSD 6.X és afeletti verziókban kell használni az olyan FreeBSD 5.X verziókra fordított alkalmazások futtatásának támogatásához, melyek a FreeBSD 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 FreeBSD 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.

### Megjegyzés:

A ipcs(1) parancs `-p` 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(R) 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 StarOfficeTM).

    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.

### Megjegyzés:

Hozzátesszük, hogy a FreeBSD 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.

    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.

### Megjegyzés:

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.

### Megjegyzés:

Annak ellenére, hogy valójában nem igazi SCSI-eszközök, az USB-s 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.

    # 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(R)/Windows(R) világban csak `COM` portokként ismernek.

### Megjegyzés:

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 FreeBSD-ből. Ha többportos soros kártyánk lenne, lapozzuk fel a 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.

### Megjegyzés:

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

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 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 tcpdump(1) program segítségével.

### Megjegyzés:

A bpf(4) eszközt a 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 FreeBSD által ismert további eszközökről a `/usr/src/sys/i386/conf/NOTES` állományból tájékozódhatunk.

### 8.6.1. Sok memória kezelése (PAE)

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(R) külön támogatást épített be a Pentium(R) 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(R) Pentium(R) Pro és későbbi processzoraiban található meg, és lehetővé teszi egészen 64 gigabyte-ig a memóriahasználatot. A FreeBSD is támogatja ezt a tulajdonságot a `PAE` rendszermag beállítás használatával, és megtalálható a FreeBSD összes jelenlegi verziójában. Az Intel(R) 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

### Megjegyzés:

A FreeBSD-ben a PAE támogatása csak az Intel(R) IA-32 architektúrájú processzoraihoz érhető el. Emellett meg kell említenünk, hogy a FreeBSD-ben található PAE támogatás nem lett szélesebb körben próbára téve, ezért a FreeBSD többi megbízható elemeihez képest csak béta állapotúnak tekinthető.

A FreeBSD 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 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 FreeBSD-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 `kern.maxvnodes` 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 `KVA_PAGES` 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 tuning(7) man oldalt. A pae(4) man oldalon pedig a FreeBSD PAE támogatásáról találhatunk naprakész információkat.

Vissza | Fel | Előre
8.5. Saját rendszermag készítése és telepítése | Főoldal | 8.7. Ha valamilyen hiba történne

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.