Amikor egy FreeBSD rendszert akarunk betárcsázós szolgáltatásokhoz beállítani, akkor az nagyon hasonlít a terminálok csatlakoztatásához, azzal a eltéréssel, hogy ilyenkor a terminálok helyett modemekkel kell dolgoznunk.
A külső modemek sokkal kényelmesebbnek tűnnek betárcsázás szempontjából, mivel az ilyenek gyakran a statikus memóriájukban tárolt paraméterek révén tulajdonképpen félig előre be vannak állítva és sok esetben a fontosabb RS-232 jeleket külön lámpácskákkal mutatják. A villogó lámpák könnyen elkápráztatják a laikusokat, de emellett igen fontosak a modem működőképességének megállapításában is.
Ezzel szemben a belső modemeken nem található statikus memória, ezért a paramétereik csak DIP kapcsolókkal módosíthatóak. Még ha egy belső modemem látunk is lámpákat, akkor sem könnyű figyelni rájuk, mert a gépünk burkolata úgyis eltakarja ezeket.
Ha külső modemet használunk, akkor mindenképpen szükségünk lesz hozzá még egy megfelelő kábelre is. Egy szabványos RS-232-es soros kábel erre tökéletesen megfelel egészen addig, amíg a normál jeleket így kötötték be rajta:
Rövidítés | Elnevezés |
---|---|
RD | Received Data (fogadott adat) |
TD | Transmitted Data (küldött adat) |
DTR | Data Terminal Ready (adatterminál kész) |
DSR | Data Set Ready (adatbeállítás kész) |
DCD | Data Carrier Detect (vonal észlése - az RS-232 fogadást érzékelő vonala) |
SG | Signal Ground (föld) |
RTS | Request to Send (küldés kérése) |
CTS | Clear to Send (küldés engedélyezése) |
A FreeBSD-nek 2400 bps felett a forgalom irányításához az RTS és CTS jelekre van szüksége. A CD jellel állapítja meg, hogy a hívás létrejött vagy a bontották a vonalat, és a DTR jel hozza alapállapotba a modemet a munkamenet befejezése után. Egyes kábelekben nem mindegyik jelet vezették át, így ha például gondjaink akadnak a bejelentkező képernyővel amikor a vonalat bontjuk, akkor érdemes átnéznünk a kábelt.
A többi UNIX(R)-szerű operációs rendszerhez hasonlóan a FreeBSD is hardveres jelek segítségével igyekszik kideríteni, hogy a hívás megvalósult vagy bontották a vonalat, valamint a hívás befejezése után így bontja a vonalat és állítja vissza a modemet. A FreeBSD igyekszik elkerülni a parancsok küldését a modem felé, vagy a modem állapotának folyamatos ellenőrzését. Ha már van némi tapasztalatunk a PC-alapú BBS-ek modemes elérését illetően, akkor valószínűleg értjük ezek okait.
A FreeBSD ismeri az NS8250-, NS16450-, NS16550- és NS16550A alapú EIA RS-232C (CCITT V.24) szabványú kommunikációs felületeket. A 8250-es és a 16450-es eszközök egykarakteres pufferrel rendelkeznek. A 16550-es eszközök 16 karakteres puffert tartalmaznak, amellyel jobb teljesítmény érhető el. (A sima 16550-esben levő hibák miatt azonban ez a 16 karakteres puffer nem használható ki rendesen, ezért lehetőleg a 16550A verziót használjuk). Mivel az operációs rendszer részéről az egykarakteres eszközök jóval több törődést igényelnek, mint a 16 karakteres eszközök, ezért inkább a 16550A alapú soros felületi kártyákat ajánljuk. Amikor a rendszer egyszerre több soros portot is kezel, vagy erős terhelés alatt áll, akkor a 16550A alapú kártyákról általában az is elmondható, hogy kisebb hibával dolgoznak.
Ahogy arról már a terminálok
esetében szó esett, az init
az
összes betárcsázós kapcsolathoz
tartozó soros porthoz elindít egy
getty
programot. Például, ha a
modemet a /dev/ttyd0
eszközre
kapcsoltuk, akkor a ps ax
parancs
kimenetében ezt láthatjuk:
4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0
Amikor egy felhasználó felhívja a
modemet és az kapcsolódik, akkor a modem egy
CD (Carrier Detect) jelet küld. A
rendszermag ekkor tudomásul veszi a vonal
észlelését és a
getty
segítségével
megindítja a kommunikációt. A
getty
egy login:
szöveget küld át a vonalhoz megadott
sebességgel. A getty
elkezdi
figyelni, hogy a értelmes karakterek érkeznek-e
vissza, és egy átlagos
konfigurációban, ha ezt szemétnek
találja (mert például a modem nem a
getty
számára
beállított sebességgel csatlakozott), akkor
megpróbálja egészen addig hangolni a vonal
sebességét, amíg feldolgozásra
alkalmas karaktereket nem kap.
Miután a felhasználó megadta a
felhasználói nevét, a
getty
elindítja a
/usr/bin/login
programot, amely befejezi a
beléptetést a felhasználó
jelszavának bekérésével és
annak elfogadása esetén a
hozzá tartozó parancsértelmező
elindításával.
FreeBSD rendszerünkben a betárcsázós
kapcsolatok engedélyezéséhez az
/etc
könyvtárban három
állomány módosítására
lesz szükségünk. Közülük az
első, az /etc/gettytab
a
/usr/libexec/getty
démon
beállításait tartalmazza. A
második, az /etc/ttys
az
/sbin/init
számára mondja
meg, hogy melyik tty
eszközökhöz tartozik getty
.
Végezetül a portok
inicializálásához kötődő
beállításokat az
/etc/rc.d/serial
szkriptben kell
megadnunk.
Két "iskola" jött létre aszerint, hogy UNIX(R) alatt hogyan használják a betárcsázós modemeket. Az egyik csoport úgy szereti beállítani a modemeit és rendszerit, hogy a távoli felhasználó által választott sebességtől függetlenül a számítógép és a modem közti RS-232 felület egy fix sebességen fut. Ennek a beállításnak megvan az az előnye, hogy a távoli felhasználó ilyenkor szinte azonnal megkapja a bejelentkező képernyőt. A hátránya viszont, hogy ebben az esetben a rendszer nem ismeri a felhasználó valódi adatátviteli sebességét, ezért az olyan teljes képernyős alkalmazások, mint például az Emacs, nem lesznek képesek a lassabb kapcsolatokhoz szabni a megjelenítésüket.
A másik csoport a modemek RS-232-es
felületét a távoli felhasználó
kapcsolódási sebessége szerint
állítja be. Így például egy
V.32bis (14,4 Kbps) kapcsolat esetén a modemhez
tartozó RS-232 felület 19,2 Kbps-on fog menni,
miközben a 2400 bps sebességű
kapcsolatokhoz egy vele azonos sebességű RS-232-es
felület fog tartozni. Mivel a getty
nem
képes kommunikálni a modemek által
lejelentett csatlakozási sebességen, ezért
úgy próbálja azt
megállapítani, hogy elküldi a
login:
szöveget az alap
sebességgel, majd figyeli a válaszul
érkező karaktereket. Ha a felhasználó
ilyenkor szemetet lát, akkor feltételezik, hogy
addig fogja nyomkodni az Enter billentyűt,
amíg valami értelmes szöveget meg nem
lát. Amikor az adatátviteli sebesség
eltér, akkor a getty
ebből
csupán csak annyit vesz észre, hogy a
felhasználó "szemetet" küld,
ezért egy újabb sebességgel
megpróbálja megint elküldeni a
login:
szöveget. Hivatalosan ez a
folyamat ismétlődik orrvérzésig, de
általában csak egy-két billentyűt kell
leütni a megfelelő
beállításokhoz. Nyilvánvaló,
hogy ilyenkor a bejelentkezés messze nem olyan
zavartalan, mint a "rögzített
sebességű" esetben, de így a lassabb
kapcsolattal rendelkező felhasználók is jobb
használatóságot kapnak a teljes
képernyős programokkal.
Ebben a szakaszban egy valamennyire kiegyensúlyozott beállítást igyekszünk bemutatni, de részben elfogunk hajlani abban az irányba, amikor a modem a kapcsolat sebességét követi.
A /etc/gettytab
egy
termcap(5)-szerű állomány, amely a
getty(8) beállításait tartalmazza.
A gettytab(5) man oldalon olvashatunk az
állomány pontos
felépítéséről és benne
felsorolt beállításokról.
Ha a modem kommunikációs
sebességét rögzíteni akarjuk,
akkor ehhez többnyire semmit sem kell
megváltoztatnunk az
/etc/gettytab
állományban.
Az /etc/gettytab
állományban létre kell hoznunk egy
olyan bejegyzést, amelyen keresztül a
getty
tudni fogja, hogy milyen
sebességeken akarjuk használni a modemet. Ha
egy 2400 bps sebességű modemünk van,
akkor hozzá a már meglevő
D2400
-as bejegyzést kell
használnunk.
# # A gyors betárcsázós terminálokhoz íme egy 2400/1200/300-as váltás # (bárhonnan kezdődhet): # D2400|d2400|Fast-Dial-2400:\ :nx=D1200:tc=2400-baud: 3|D1200|Fast-Dial-1200:\ :nx=D300:tc=1200-baud: 5|D300|Fast-Dial-300:\ :nx=D2400:tc=300-baud:
Ha ennél gyorsabb modemünk van, akkor
már mindenképpen fel kell vennünk
hozzá egy új bejegyzést az
/etc/gettytab
állományba.
Ezzel a beállítással egy 14,4 Kbps
sebességű modemet tudunk legfeljebb
19,2 Kbps-en használni:
# # Kiegészítések egy V.32bis modemhez: # um|V300|High Speed Modem at 300,8-bit:\ :nx=V19200:tc=std.300: un|V1200|High Speed Modem at 1200,8-bit:\ :nx=V300:tc=std.1200: uo|V2400|High Speed Modem at 2400,8-bit:\ :nx=V1200:tc=std.2400: up|V9600|High Speed Modem at 9600,8-bit:\ :nx=V2400:tc=std.9600: uq|V19200|High Speed Modem at 19200,8-bit:\ :nx=V9600:tc=std.19200:
Ennek eredménye egy 8 bites, paritásmentes kapcsolat lesz.
A fenti példában a
kommunikációt 19,2 Kbps-en (V.32bis
kapcsolaton) kezdjük, majd utána haladunk
végig a 9600 bps (V.32), 2400 ,
1200 bps és 300 bps sebességű
kapcsolatokon, majd vissza ismét a 19,2 Kbps-re.
Az adatátviteli sebesség ilyen
típusú váltogatását az
nx=
("next table", azaz
"következő táblázat")
tulajdonság segítségével
valósítják meg. Minden sorban
látható még egy tc=
("table continuation", vagyis "a
táblázat folytatása")
bejegyzés is, amivel az adott adatátviteli
sebesség "szabványos"
beállításait adjuk meg.
Ha egy 28,8 Kbps sebességű
modemünk van és/vagy egy 14,4 Kbps
sebességű modemen akarunk
tömörítést használni, akkor a
19,2 Kbps-nél nagyobb
kommunikációs sebességet kell
használnunk. Íme egy olyan
gettytab
. ami 57,6 Kbps-ről
indít:
# # A V.32bis vagy V.34 modemekhez kiegészítés, # 57,6 Kbps-ről indulunk: # vm|VH300|Very High Speed Modem at 300,8-bit:\ :nx=VH57600:tc=std.300: vn|VH1200|Very High Speed Modem at 1200,8-bit:\ :nx=VH300:tc=std.1200: vo|VH2400|Very High Speed Modem at 2400,8-bit:\ :nx=VH1200:tc=std.2400: vp|VH9600|Very High Speed Modem at 9600,8-bit:\ :nx=VH2400:tc=std.9600: vq|VH57600|Very High Speed Modem at 57600,8-bit:\ :nx=VH9600:tc=std.57600:
Ha lassú a processzorunk, vagy a rendszerünk túlságosan terhelt és nincs 16550A típusú soros portunk, akkor 57,6 Kbps-en sio "silo" hibák keletkezhetnek.
Az /etc/ttys
állomány
beállításáról már a
26.1. példa - Terminálok felvétele az
/etc/ttys
állományba adott képet. Ez a modemek
esetében sem tér el különösebben,
habár a getty
programnak más
termináltípust és
-beállításokat kell átadnunk.
Akár rögzített, akár
alkalmazkodó sebességet akarunk
beállítani, ennek általános alakja
az alábbi:
ttyd0 "/usr/libexec/getty xxx
" dialup on
A sorban látható első elem a
megfelelő speciális eszköz neve - jelen
esetben ez a ttyd0
, amely a
/dev/ttyd0
eszközre vonatkozik
és ezt fogja a getty
figyelni. A
második elem, vagyis a "/usr/libexec/getty
xxx"
(ahol a
xxx
helyére kell
beírni a megfelelő gettytab
állománybeli bejegyzést nevét)
lesz az a parancs, amelyet az init
meghív. A harmadik elem, a dialup
a
terminálok alapértelmezett típusa. A
negyedik paraméter, az on
jelzi az
init
programnak, hogy aktiválja a
vonalat. A sorban megjelenhetne továbbá
még egy ötödik paraméter is, a
secure
, de ezt csak olyan terminálok
esetében érdemes megadni, amelyek fizikailag
megbízhatóak (például a
rendszerkonzol).
Az alapértelmezett termináltípus
(vagyis a fenti példában a
dialup
) a helyi
beállításoktól függ. A
betárcsázós vonalak esetében
hagyományosan a dialup
a
terminál alapértelmezett típusa, amit
aztán a felhasználók a
bejelentkezéskor lefutó szkriptjeiken
keresztül a automatikusan át tudnak
állítani a nekik megfelelő
terminálra. A szerző saját
rendszerében azonban inkább a
vt102
termináltípust volt
érdemes megadni alapértelmezettként,
mivel ott a felhasználók csak ilyen
típusú terminálokat
használnak.
Miután az /etc/ttys
állományban elvégeztük a
szükséges módosításokat, egy
HUP jelzéssel figyelmeztessük
az init
programot az újbóli
beolvasására. Ehhez a következő
parancs ajánlott:
#
kill -HUP 1
Ha még csak állítjuk be
először a rendszerünket, akkor az
init
figyelmeztetése előtt
legyünk türelmesek, és várjuk meg,
amíg a modemek befejezik az
inicializálást és kapcsolódnak a
vonalakra.
A rögzített sebesség
beállításánál a
ttys
állományban a
getty
paramétereként egy
szintén rögzített sebességű
bejegyzést kell megadnunk. Például az
olyan modemeknél, ahol a sebességet
19,2 Kbps-re rögzítjük, a
ttys
így fog
kinézni:
ttyd0 "/usr/libexec/getty std.19200" dialup on
Amennyiben a modemünk nem ezen a sebességen
üzemelne, akkor az
std.sebesség
paramétert használjuk az
std.19200
helyett. Előtte azonban
ne felejtsük el ellenőrizni, hogy a megadott
típus szerepel-e az
/etc/gettytab
állományban.
Az alkalmazkodó sebességű
beállításnál a
ttys
állományban az
/etc/gettytab
állományból a megfelelő
"auto-baud" (sic) kell megadnunk.
Például, ha modemünk
kezdősebessége 19,2 Kbps (és a
gettytab
ehhez tartalmaz egy
V19200
nevű bejegyzést),
akkor a ttys
így fog
kinézni:
ttyd0 "/usr/libexec/getty V19200" dialup on
A gyorsabb, mint például a V.32, V.32bis
és V.34 modemeknél meg kell adnunk a hardveres
forgalomirányítás
(RTS/CTS
) használatát is. Az
/etc/rc.d/serial
állományban tudjuk megadni a FreeBSD rendszermagban
a vonal használatához szükséges
vezérlési beállításokra
vonatkozó stty
parancsokat.
Például állítsuk be az 1-es
sorszámú (vagyis a
COM2
) soros porton a
crtscts
termios
beállítást a behíváshoz
és a híváshoz használt
eszközök inicializálásakor. Ehhez a
következő sorokat kell felvennünk az
/etc/rc.d/serial
állományba:
# A soros portok kezdeti beállításai: stty -f /dev/ttyd1.init crtscts stty -f /dev/cuad1.init crtscts
Ha olyan modemeink vannak, amelyek paramétereit egy
statikus memóriában tárolták le,
akkor ezek beállításához egy
terminálprogramot kell használnunk (amilyen
például MS-DOS(R) alatt a
Telix vagy FreeBSD alatt a
tip
). A modemet a getty
programnak megadott kezdeti sebességen csatlakoztassuk
és az alábbi elvárások
alapján állítsuk be a
paramétereit:
Kapcsolódáskor CD jelzése.
Működéskor DTR jelzése. A DTR küldésekor bontsa a vonalat és hozza alapállapotba a modemet.
CTS vezérlésű kimenő adatforgalom.
A XON/XOFF forgalomvezérlés tiltása.
RTS vezérlésű bejövő adatforgalom.
Csendes mód (ne adjon értesítést az eredményekről).
A parancsokat ne írja vissza.
A modemhez tartozó dokumentációban kell utánajárnunk, hogy milyen parancsok és/vagy DIP kapcsolók átállításával lehet mindezeket elérni.
Például, ha a fenti paramétereket egy U.S. Robotics(R) Sportster(R) 14400-as külső modem esetében a következő neki kiküldött paranccsal lehet beállítani:
ATZ AT&C1&D2&H1&I0&R2&W
Ilyenkor még akár más egyéb paramétereket is beállíthatunk, például a V.42bis és/vagy az MNP5 tömörítést.
Az U.S. Robotics(R) Sportster(R) 14400 külső modemen ezenkívül még találunk néhány DIP kapcsolót is. Az ilyen modemek esetében például ezeket a beállításokat tudjuk használni:
1. kapcsoló: FEL - normális DTR
2. kapcsoló: N/A (verbális/numerikus eredményjelző kódok)
3. kapcsoló: FEL - az eredményjelző kódok küldésének tiltása
4. kapcsoló: LE - nem küldi vissza a parancsokat
5. kapcsoló: FEL - automatikus válasz
6. kapcsoló: FEL - normális Carrier Detect
7. kapcsoló: FEL - a memóriában tárolt alapértelmezések betöltése
8. kapcsoló: N/A (intelligens/buta mód)
A modemeknél az eredményjelző
kódok kikapcsolása/letiltása ezért
fontos, mert így el tudunk kerülni az olyan
problémákat, hogy a getty
tévesen egy login:
promptot küld a
parancs módban levő modemnek, amikor az
visszaküldi a parancsot és az eredmény
kódját. Ennek eredménye egy
hosszúra nyúló, zavaros
társalgás lesz a getty
és a modem között.
A rögzített sebességű konfiguráció használata esetén úgy kell beállítanunk a modemet, hogy a konkrét adatátviteli sebsségtől függetlenül is egy állandó sebességű kapcsolat álljon fenn a számítógép és a modem között. A U.S. Robotics(R) Sportster(R) 14400-as külső modem esetében a most következő parancsokkal tudjuk rögzíteni a kapcsolat sebességét:
ATZ AT&B1&W
Amikor változó sebességű konfigurációval dolgozunk, akkor a modemet úgy kell beállítani, hogy a bejövő hívásnak megfelelő adatátviteli sebességre váltson a soros portján. A U.S. Robotics(R) Sportster(R) 14400-as külső modem esetében az alábbi parancsokkal rögzítjük a modemnek küldött hibamentesített parancsok sebességét, miközben engedélyezzük, hogy a soros port sebessége változhasson a nem hibamentesített kapcsolatoknál:
ATZ AT&B2&W
A legtöbb nagysebességű modem
biztosít valamilyen lehetőséget arra, hogy
emberi formában is le tudjuk kérdezni a
belső működésének
paramétereit. A U.S. Robotics(R) Sportster(R) 14400-as
külső modem esetében az
ATI5
parancs a statikus
memóriában tárolt
beállításokat mutatja meg. A modem
valós működési paramétereit
(amit ugyebár befolyásolnak a DIP
kapcsolók állásai is) viszont az
ATZ
majd ATI4
parancsok
küldésével tudjuk lekérni.
Ha azonban másmilyen márkájú modemünk lenne, akkor a modem leírásában próbáljunk tájékozódni arról, miként tudjuk a modem beállításait ellenőrizni.
Ebben a szakaszban bemutatunk néhány lépést, amelyeken keresztül ellenőrizhetjük a rendszerünkhöz csatlakoztatott modemet.
Csatlakoztassuk a modemet a FreeBSD rendszerre,
indítsuk be a gépet, majd ezután
figyeljük a modemünk állapotát
jelző lámpákat, hogy közülük
a DTR világít-e, amikor a
login:
felirat megjelenik a rendszerkonzolon.
Amennyiben erre a válasz igen, akkor az arra utal, hogy
a FreeBSD a hozzá tartozó
kommunikációs porton elindította a
megfelelő getty
programot és a
modem várja a hívásokat.
Amikor viszont a DTR lámpa nem
világít, a konzolon keresztül
jelentkezzünk be a FreeBSD rendszerbe és adjuk ki egy
ps ax
parancsot, amivel így
ellenőrizni tudjuk, hogy a porthoz tartozó
getty
elindult. A futó programok
között tehát valami ilyesmit kell majd
látnunk:
114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1
Ha viszont például ezt látjuk:
114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0
és modem még nem fogadott
hívást, akkor ez azt jelenit, hogy a
getty
megnyitotta a
kommunikációs csatornát. Ez utalhat
egyaránt egy hibás kábelre vagy a modem
helytelen beállítására, mivel a
getty
egészen addig nem lesz
képes megnyitni az adott portot, amíg a modem
vissza nem küld neki egy CD (Carrier
Detect) jelet.
Ha a listában az adott
ttydN
eszközhöz semmilyen getty
programot nem találunk, akkor újra
nézzük át az /etc/ttys
állományban szereplő bejegyzéseket,
mert előfordulhat, hogy azokban vétettünk
valamilyen hibát. Emellett még a
/var/log/messages
naplóban is
érdemes utánanézni, hátha az
init
vagy a getty
küldött valamilyen hibáról
értesítést. Ha még ezek
után sem találunk semmit, akkor megint
kezdjük el keresni hibákat, hiányzó
bejegyzéseket vagy eszközöket az
/etc/ttys
,
/etc/gettytab
és a megfelelő
/dev/ttydN
állományokban.
Próbáljunk meg bejutni a rendszerünkbe.
Ehhez a távoli rendszeren ne felejtsük el
beállítani a 8 bites adatátvitelt
és az 1 stopbitet, illetve a paritást
kikapcsolni. Ha erre közvetlenül nem kapunk egy
bejelentkezési képernyőt vagy csak
szemét jelenik meg, akkor kb.
másodpercenként egyszer nyomjuk le az
Enter billentyűt. Ha még
ezután sem látjuk a bejelentkezési
képernyőt felbukkani, akkor
próbáljunk kiküldeni egy
BREAK
parancsot. Ha a
híváshoz nagysebességű modemet
használunk, akkor próbáljuk meg a modem
sebességét rögzíteni és
úgy tárcsázni (ezt például
a U.S. Robotics(R) Sportster(R) modemnél az
AT&B1
paranccsal tudjuk
elérni):
Ha viszont még ezek után sem kapjuk meg a
bejelentkező képernyőt, akkor a
/etc/gettytab
állományban
megint nézzük át az összes
beállítást:
Az /etc/ttys
állományban megadott alaptulajdonság
neve egyezik az /etc/gettytab
állományban
találhatóval.
Mindegyik nx=
bejegyzés
után egy másik gettytab
tulajdonság neve jön.
Mindegyik tc=
bejegyzés
után egy másik gettytab
tulajdonság neve következik.
Ha hívunk, de a FreeBSD rendszerünkre kapcsolt modem továbbra sem veszi fel, akkor a modem beállításai között ellenőrizzük, hogy a DTR jel küldésekor a modem fogadja-e a hívást. Ha úgy tűnik, hogy a modem minden ezzel kapcsolatos beállítása stimmel, akkor nézzük meg, hogy a modem lámpái közül a DTR világít-e (már ha van ilyen).
Ha mindent többször is végignéztünk és még mindig nem leljük a megoldást, akkor tartsunk egy kis szünetet és térjünk vissza a problémához később. Ha még ezután sem tudjuk működésre bírni, akkor küldjünk egy levelet a FreeBSD general questions levelezési lista címére, amelyben leírjuk a modemünket és a vele kapcsolatos problémát, és a lista tagjai majd megpróbálnak nekünk segíteni.
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>.