A terminálok olyankor kínálnak kényelmes és költséghatékony hozzáférést a FreeBSD rendszerünkhöz, amikor sem a gép konzolját, sem pedig a hozzá tartozó hálózatot nem érjük el. Ebben a szakaszban olvashatjuk, miként kell terminálokat használni FreeBSD alatt.
Az eredeti UNIX(R) rendszereknek nem voltak konzoljaik. Ehelyett az emberek a soros portokra csatlakoztatott terminálokon keresztül jelentkeztek be és így futtattak rajtuk programokat. Ez nagyon hasonlít ahhoz, mint amikor egy modem és egy terminálprogram felhasználásával betárcsázunk egy távoli gépre és vele szöveges módban dolgozunk.
Napjaink személyi
számítógépein azonban
találhatunk már akár nagy
felbontású megjelenítéssel
megáldott konzolokat is, habár a soros porton
keresztüli bejelentkezés lehetősége
még mind a mai napig elérhető a legtöbb
UNIX(R)-alapú rendszerben. Ez alól a FreeBSD sem
kivétel. Ha rákötünk egy
terminált a gépünk egyik üres soros
portjára, akkor a megszokott módon képesek
vagyunk bejelentkezni a rendszerbe és futtatni
bármilyen szöveges programot, hasonlóan
ahhoz, ahogy azt a konzolban vagy az X Window Systemben egy
xterm
ablakban megtehetjük.
Ha egy irodában vagyunk, akkor egy FreeBSD rendszerre több terminált is kapcsolhatunk, melyek az alkalmazottak asztalain foglalnak helyet. Otthoni használat esetén egy kiöregedett számítógép, például egy régi IBM PC vagy egy Macintosh(R) is ráköthető egy gyorsabb FreeBSD rendszerre. Ennek segítségével az egyébként egyfelhasználós számítógépünket egy valódi többfelhasználós rendszerré alakíthatjuk.
A FreeBSD esetén háromféle terminálról beszélhetünk:
A most következő alszakaszokban ezeket fejtjük ki részletesebben.
A buta terminál alatt olyan speciálizált eszközt értünk, amellyel soros vonalon keresztül csatlakozunk számítógépekhez. Azért nevezik ezeket "butának", mert csupán annyi számítási teljesítményt zsúfoltak beléjük, hogy szöveget legyenek képesek küldeni, fogadni és megjeleníteni. Semmilyen program nem képes rajtuk futni. Helyette az a számítógép fogja a szövegszerkesztőt, fordítóprogramot, levelező klienst, játékot és a többit futtatni, amelyre vele kapcsolódtunk.
A buta termináloknak többszáz, különböző gyártmányú fajtája létezik. Ilyenek például a Digital Equipment VT-100 vagy a Wyse WY-75 típusú termináljai. A FreeBSD szinte mindegyiküket ismeri. Egyes drágább terminálok még grafikus megjelenítésre is képesek, de ezeket a lehetőségeket csak bizonyos szoftverek tudják ténylegesen kihasználni.
A buta terminálok leginkább olyan munkahelyeken terjedtek el, ahol az alkalmazottaknak nincs szükségük grafikus alkalmazások, tehát például az X Window System használatára.
Ha egy buta terminál csupán szöveg küldésére, fogadására és megjelenítésére képes, akkor bármelyik személyi számítógép utána tudja mindezt csinálni. Ehhez mindössze egy megfelelő kábelre és az adott gépen futó terminál emulációs szoftverre van szükségünk.
Az ilyen fajta megoldás nagyon elterjedt az otthoni használat esetén. Például, ha valamelyik családtagunk éppen szorgalmasan dolgozik a FreeBSD rendszerkonzolján, akkor a rákapcsolt terminálon keresztül még mi magunk is el tudunk végezni valamennyi szöveges felületet igénylő munkát.
Az alap FreeBSD rendszerben legalább két segédprogram használható a soros vonali kapcsolaton keresztüli munkára: a cu(1) és a tip(1).
Egy FreeBSD rendszerű kliensről így tudunk csatlakozni egy másik rendszerre:
#
cu -l soros-vonali-eszköz
Ahol a "soros-vonali-eszköz" a
rendszerünkben a soros portot jelölő
speciális eszköz neve. Az ilyen
eszközök neve
/dev/cuadN
.
Az eszköz nevében az "N"-es rész a soros port sorszámát adja meg.
A FreeBSD-ben az eszközök
sorszámozása nullától
kezdődik, nem pedig egytől (ellentétben
tehát azzal, ahogy azt az MS-DOS(R) rendszerekben
és leszármazottaikban már
megszokhattuk). Ez azt jelenti, hogy amit az MS-DOS(R)
alapú rendszerekben COM1
-nek
hívnak, az a FreeBSD-ben általában a
/dev/cuad0
.
Egyes emberek más, többnyire a Portgyűjteményből is elérhető programokat szeretnek inkább használni. A portok között találhatunk elég sok olyan szoftvert, amely a cu(1) és a tip(1) programokhoz hasonlóan működik. Ilyen például a comms/minicom.
Az X terminálok a terminálok közül a legfejlettebbek. Általában nem is soros porton, hanem hálózaton, például Etherneten keresztül csatlakoznak. Természetesen nem csak szöveges alkalmazásokat, hanem lényegében bármilyen X alkalmazást képesek megjeleníteni.
Az X terminálokról itt most csak a teljesség kedvéért szólunk, de ebben a fejezetben nem szándékozunk tárgyalni az X terminálok csatlakoztatását, beállítását és használatát.
Ebben a fejezetben ismertetjük mindazt, ami ahhoz kell, hogy a FreeBSD rendszerünkön engedélyezni tudjuk a terminálon keresztüli bejelentkezéseket. Feltételezzük, hogy a rendszermagunk támogatja a terminálok által használt soros portokat, illetve, hogy ezeket már csatlakoztattuk is.
Ha visszagondolunk a 12. fejezet - A FreeBSD rendszerindítási folyamatare, akkor
eszünkbe juthat, hogy a rendszer indításakor
az init
nevű program felelős az
összes futó program
irányításáért és
inicializálódásáért. Az
init
egyik feladata, hogy beolvassa az
/etc/ttys
állományt és
neki megfelelően az elérhető
terminálokon elindítsa a getty
programot. A getty
felelős a
bejelentkezéshez szükséges
azonosító beolvasásáért
és a login
program
elindításáért.
Ennek megfelelően tehát, ha a FreeBSD
rendszerünkön terminálokat akarunk
beállítani, akkor ehhez a következő
lépéseket kell megtennünk
root
felhasználóként:
Az /etc/ttys
állományba vegyünk fel egy
bejegyzést a soros porthoz tartozó
/dev
könyvtárbeli
eszközhöz, ha még nem szerepelne
benne.
A porthoz adjuk meg a
/usr/libexec/getty
programot, majd
hozzá az /etc/gettytab
állományból válasszuk ki a
megfelelő getty
típust.
Adjuk meg a terminál alapértelmezett típusát.
Állítsuk a portot "on" (bekapcsolt) állapotúra.
Adjuk meg, hogy a port "secure" (biztonságos) legyen-e.
Mondjuk meg az init
programnak, hogy
olvassa újra az /etc/ttys
állományt.
A másik lépés
kiegészítő lépéseként az
/etc/gettytab
állományban mi
magunk is létrehozhatunk egy saját
getty
típust. A fejezetben
ehhez ugyan nem adunk segítséget, de ha
érdekel minket a téma, akkor ezzel kapcsolatban a
gettytab(5) és getty(8) man oldalakat
érdemes elolvasni.
Az /etc/ttys
állományban találhatjuk meg az
összes portot, ahonnan a FreeBSD rendszerünk
engedélyezi a bejelentkezést.
Például a ttyv0
, az
első virtuális konzol is szerepel benne. Ezen a
bejegyzésen keresztül tudunk bejelentkezni a
konzolra. Ebben az állományban találjuk
meg még a többi virtuális konzol, soros
port és pszeudoterminál bejegyzéseit is.
A rögzített terminálok esetén
egyszerűen csak adjuk meg a soros porthoz tartozó
/dev
könyvtárbeli
eszközt a /dev
előtag
nélkül (így például a
/dev/ttyv0
ttyv0
néven fog megjelenni).
Az alap FreeBSD telepítésben egy olyan
/etc/ttys
állomány
található, amely tartalmazza az első
négy soros portot, a ttyd0
eszköztől kezdve a ttyd3
eszközig. Ha tehát ezekre a portokra
csatlakoztatnunk egy terminált, akkor már nem
kell egy újabb bejegyzést felvennünk
hozzájuk.
/etc/ttys
állománybaTegyük fel, hogy két eszközt
szeretnénk a rendszerünkhöz csatlakoztatni:
egy Wyse-50-es terminált és egy régi
286-os IBM PC-t, amelyen a
Procomm
terminálszoftverrel emulálunk egy VT-100-as
terminált. A Wyse terminált a második
soros portunkra kötjük, míg a 286-ost a
hatodik soros portra (például egy
többportos soros vonali kártyán). A
nekik megfelelő /etc/ttys
állománybeli bejegyzések így
fognak kinézni:
ttyd1"/usr/libexec/getty std.38400"
wy50
on
insecure
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
Az első mezőben általában a
terminálhoz tartozó eszközt
nevezzük meg, amely a | |
A második mező a vonalhoz tartozó
végrehajtandó parancs, ami
általában a getty(8). A
A A Amikor az A példánknál maradva: a Wyse-50 nem használ paritást és 38 400 bps-en üzemel. A 286-os gép szintén nem dolgozik paritással és 19200 bps-sel kapcsolódik. | |
A harmadik mezőben adjuk meg
általában a vonalra csatlakozó
terminál típusát. Ez a
betárcsázós portok esetében
többnyire az A példánkban a Wyse-50 egy valós termináltípust használ, miközben a 286-oson futó Procomm egy VT-100-as típusú terminált emulál. | |
A negyedik mező azt mondja meg, hogy a port
engedélyezett-e vagy sem. Ha itt a
| |
Az utolsó mezőben a port
megbízhatóságát kell
megjelölnünk. Ha biztonságosnak
( Leginkább az |
Miután az /etc/ttys
állományban elvégeztük a
megfelelő módosításokat, a
konfigurációs állomány
újraolvasásához küldjünk egy
SIGHUP (bontás) jelzést az
init
programnak. Mint
például:
#
kill -HUP 1
Mivel mindig az init
indul el
elsőként a rendszerben, ezért a
hozzá tartozó azonosító az 1
lesz.
Ha mindent jól állítottunk be, a
kábelek is a helyükön vannak és a
terminálokat is bekapcsoltuk, akkor minden
terminálhoz elindul egy getty
program, és mindegyikőjükön megjelenik a
bejelentkező képernyő.
Olykor hiába igyekszünk a lehető legaprólékosabban ügyelni minden apró részletre, könnyen előfordulhat, hogy valamiért a terminál mégsem működik rendesen. Következzen most egy lista néhány ismert tünetről és azok javasolt gyógymódjairól.
Ellenőrizzük, hogy a terminált rendesen csatlakoztattuk és áram alá helyeztük. Amikor egy személyi számítógépet használunk terminálnak, akkor nézzük meg, hogy a terminál emulációs program a megfelelő soros porton fut.
Vizsgáljuk meg, hogy a kábel mind a két vége pontosan illeszkedik a portokba. Győződjünk meg róla, hogy valóban a megfelelő típusú kábelt használjuk.
Nézzük meg, hogy a terminál és a FreeBSD is ugyanazon az adatátviteli sebességen és paritási beállítással megy. Ha képernyővel rendelkező terminálunk van, akkor a kontrasztot és fényerősséget is ellenőrizzük. Ha nyomtatós terminálunk van, akkor vizsgáljuk meg a papír és a tinta állapotát.
Győződjünk meg róla, hogy a
getty
valóban fut és rendesen
kiszolgálja a terminált. Például
a ps
paranccsal listázzuk ki az
összes jelenleg futó programot és
keressük meg köztük a getty
programot:
#
ps -axww|grep getty
Ekkor látnunk kell a terminálhoz
tartozó bejegyzést. Például, ha a
getty
második soros portot
jelképező ttyd1
eszközön fut, és az
/etc/gettytab
állományból az
std.38400
nevű bejegyzést
használja, akkor ez jelenik meg:
22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1
Amennyiben semmilyen getty
nem fut,
akkor ellenőrizzük, hogy valóban
engedélyeztük-e a portot az
/etc/ttys
állományban. A
ttys
állomány
átírása után ne felejtsük el
kiadni a kill -HUP 1
parancsot sem.
Ha a getty
fut, de a terminálon
továbbra sem látjuk a bejelentkező
képernyőt, vagy megjelenik, de nem tudunk
gépelni, akkor előfordulhat, hogy a
terminál vagy kábel nem támogatja a
hardveres kézfogást (handshaking).
Próbáljuk meg az /etc/ttys
állományban levő
std.38400
bejegyzést az
3wire.38400
bejegyzésre
kicserélni (de utána ne felejtsük el kiadni
a kill -HUP 1
parancsot). A
3wire
nagyon hasonlít az
std
bejegyzéshez, de elhagyja a
hardveres kézfogást. A 3wire
alkalmazásakor viszont a puffer
telítődésének megelőzése
érdekében próbálkozzunk az
adatátviteli sebesség
csökkentésével vagy
engedélyezzük a szoftveres
forgalomirányítást.
Ellenőrizzük, hogy a FreeBSD és a
terminál ugyanazt az adatátviteli
sebességet és paritási
beállítást használja.
Nézzük meg a futó getty
programokat, és hogy a megfelelő
getty
típussal mennek-e. Ha
nem, módosítsuk az
/etc/ttys
állományt
és adjuk ki a kill -HUP 1
parancsot.
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>.