Fejezet 15. Soros vonali kommunikáció

Ebben a szakaszban a FreeBSD alatti soros vonali kommunikációval kapcsolatos kérdéseket tárgyaljuk. A PPP és SLIP használatáról a Hálózatok című részben esik szó.

15.1. Honnan deríthető ki, hogy a FreeBSD felismerte a soros portokat a gépben?
15.2. Honnan deríthető ki, hogy a FreeBSD felismerte a modemkártyát a gépben?
15.3. Hogyan lehet a soros portokat elérni FreeBSD alatt?
15.4. Hogyan lehet engedélyezi a többportos soros vonali kártyák támogatását?
15.5. A FreeBSD képes több többportos soros vonali kártyát ugyanazon a megszakításon keresztül használni?
15.6. Hogyan lehet beállítani a portok alapértelmezett paramétereit?
15.7. Hogyan lehet a modemen betárcsázást beállítani?
15.8. Hogyan lehet “buta” terminálokat FreeBSD-re csatlakoztatni?
15.9. Miért nem indul el a tip vagy cu parancs?
15.10. A rendszerhez csatlakozó Hayes szabványú modem támogatott — mi ilyenkor teendő?
15.11. Hogyan adjuk meg az AT parancsokat?
15.12. A pn tulajdonságnál miért nem lehet @ jelet megadni?
15.13. Hogyan lehet telefonszámokat tárcsázni parancssorból?
15.14. Minden alkalommal meg kell adni az adatátviteli sebességet?
15.15. Terminálszerver segítségével hogyan lehet könnyen elérni egyszerre több gépet is?
15.16. A tip(1) képes több vonalat is használni az egyes gépek eléréséhez?
15.17. Miért kell kétszer lenyomni a Ctrl+P billentyűket, hogy egyszer elküldjük ezeket?
15.18. Miért lett hirtelen minden NAGYBETűS?
15.19. Hogyan lehet állományokat mozgatni a tip használatával?
15.20. Hogyan használható a zmodem protokoll a tip programmal?

15.1. Honnan deríthető ki, hogy a FreeBSD felismerte a soros portokat a gépben?

Ahogy a FreeBSD rendszermagja az elindulása után azokat a soros portokat fogja keresni, amelyeket a konfigurációs állományban beállítottunk. Figyeljük a rendszer indulása közben megjelenő üzeneteket vagy adjuk ki a következő parancsot a rendszer indulásának befejeztével:

% dmesg | grep -E "^sio[0-9]"

Íme egy példa az iménti parancs kimenetére:

sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A

Ezen két soros portot láthatunk. Az első a negyedik megszakítást és a 0x3f8 címet használja és egy 16550A típusú UART chip. A második ugyanolyan chip, de a harmadik megszakítást és a 0x2f8 címet használja. A belső modemeket a rendszer úgy kezeli, mintha soros portok lennének, azzal a kivétellel, hogy a modem mindig “kapcsolódik” az adott porthoz.

A GENERIC rendszermag alapértelmezés szerint két soros portot támogat, a példában szereplő megszakítási- és memóriaértékek felhasználásával. Ha ezek a beállítások nem felelnek meg a rendszerünk számára, esetleg modemet raktunk a gépünkbe vagy a rendszermagban több soros portot is támogatni szeretnénk, akkor nincs más teendőnk, mint ennek megfelelően megváltoztatni a rendszermag paramétereit. A rendszermag fordításáról szóló rész tárgyalja ennek részleteit.

15.2. Honnan deríthető ki, hogy a FreeBSD felismerte a modemkártyát a gépben?

Olvassuk el az előző kérdésre adott választ.

15.3. Hogyan lehet a soros portokat elérni FreeBSD alatt?

A harmadik soros port, a sio2 (lásd sio(4), DOS alatt COM3) a /dev/cuad2 eszközön keresztül érhető el tárcsázó eszközként, és a /dev/ttyd2 eszközön keresztül behívó eszközként. Mi a különbség a két eszközosztály között?

A ttydX eszközöket behívásra használjuk. Amikor tehát a /dev/ttydX eszközt blokkoló módban nyitjuk meg, akkor a hívó program egészen addig várni fog, amíg a megfelelő cuadX eszköz inaktívvá nem válik, majd kivárja, hogy megérkezzen a hívás fogadását tolmácsoló jelzés. Amikor megnyitjuk a cuadX eszközt, gondoskodik róla, hogy a soros portot ekkor ne használja a ttydX eszköz. Ha a port szabaddá válik, egyszerűen “ellopja” a ttydX eszköztől. Sőt, a cuadX eszközt egyáltalán nem érdekli a hívás fogadása jelzés. Ezzel a megoldással és egy automata modem segítségével a távoli felhasználók bármikor be tudnak jelentkezni a rendszerünkbe, hogy közben ugyanezzel a modemmel továbbra is tudunk tárcsázni, mivel a rendszer elintézi a többit.

15.4. Hogyan lehet engedélyezi a többportos soros vonali kártyák támogatását?

Ismét megemlítjük, hogy a rendszermag beállításával foglalkozó részben olvashatunk bővebben a rendszermag paraméterezésének mikéntjéről. A többportos soros vonali kártyák esetén a kártyán található mindegyik soros porthoz vegyünk fel egy-egy sio(4) bejegyzést a device.hints(5) állományába. Az IRQ és vektor értékeket azonban csak az egyiknél adjuk meg, mivel a kártyán található összes port egyetlen megszakításon fog osztozni. A következetesség kedvéért az utolsó porthoz adjuk meg a megszakítást. Ne felejtsük el még megadni a rendszermag konfigurációs állományában az alábbi opciót sem:

options COM_MULTIPORT

Az alábbi /boot/device.hints egy AST típusú négyportos soros vonali kártyát láthatunk a tizenkettedik megszakításon:

hint.sio.4.at="isa"
hint.sio.4.port="0x2a0"
hint.sio.4.flags="0x701"
hint.sio.5.at="isa"
hint.sio.5.port="0x2a8"
hint.sio.5.flags="0x701"
hint.sio.6.at="isa"
hint.sio.6.port="0x2b0"
hint.sio.6.flags="0x701"
hint.sio.7.at="isa"
hint.sio.7.port="0x2b8"
hint.sio.7.flags="0x701"
hint.sio.7.irq="12"

A flags paraméterrel megadott értékek azt jelzik, hogy a főport 7 alszámmal rendelkezik (0x700), valamint az összes port ugyanazon a megszakításon osztozik (0x001).

15.5. A FreeBSD képes több többportos soros vonali kártyát ugyanazon a megszakításon keresztül használni?

Sajnos még nem. Minden kártyához másik megszakítást kell megadni.

15.6. Hogyan lehet beállítani a portok alapértelmezett paramétereit?

Ezzel kapcsolatban olvassuk el a FreeBSD kézikönyv soros kommunikációt tárgyaló részét.

15.7. Hogyan lehet a modemen betárcsázást beállítani?

Erre vonatkozóan olvassuk el a FreeBSD kézikönyv betárcsázós szolgáltatásokkal kapcsolatos részét.

15.8. Hogyan lehet “buta” terminálokat FreeBSD-re csatlakoztatni?

Az ezzel kapcsolatos információkat a FreeBSD kézikönyv terminálokról szóló részében találhatjuk meg.

15.9. Miért nem indul el a tip vagy cu parancs?

Előfordulhat, hogy rendszerünkön a tip(1) és cu(1) programok csak az uucp felhasználón és a dialer csoporton keresztül tudnak hozzáférni a működésükhöz szükséges /var/spool/lock könyvtárhoz. A dialer csoport segítségével lehet szabályozni, hogy ki férhessen hozzá a modemekhez vagy a távoli rendszerekhez. Ilyenkor egyszerűen csak vegyük fel magunkat a dialer csoportba.

A következő parancs kiadásával viszont ettől függetlenül is engedélyezhetjük a rendszerünkön belül, hogy bárki használhassa a tip(1) vagy cu(1) parancsokat:

# chmod 4511 /usr/bin/cu
# chmod 4511 /usr/bin/tip

15.10. A rendszerhez csatlakozó Hayes szabványú modem támogatott — mi ilyenkor teendő?

A FreeBSD kézikönyvben lásd ezt a választ.

15.11. Hogyan adjuk meg az AT parancsokat?

A FreeBSD kézikönyvben lásd ezt a választ.

15.12. A pn tulajdonságnál miért nem lehet @ jelet megadni?

A FreeBSD kézikönyvben lásd ezt a választ.

15.13. Hogyan lehet telefonszámokat tárcsázni parancssorból?

A FreeBSD kézikönyvben lásd ezt a választ.

15.14. Minden alkalommal meg kell adni az adatátviteli sebességet?

A FreeBSD kézikönyvben lásd ezt a választ.

15.15. Terminálszerver segítségével hogyan lehet könnyen elérni egyszerre több gépet is?

A FreeBSD kézikönyvben lásd ezt a választ.

15.16. A tip(1) képes több vonalat is használni az egyes gépek eléréséhez?

A FreeBSD kézikönyvben lásd ezt a választ.

15.17. Miért kell kétszer lenyomni a Ctrl+P billentyűket, hogy egyszer elküldjük ezeket?

A FreeBSD kézikönyvben lásd ezt a választ.

15.18. Miért lett hirtelen minden NAGYBETűS?

A FreeBSD kézikönyvben lásd ezt a választ.

15.19. Hogyan lehet állományokat mozgatni a tip használatával?

A FreeBSD kézikönyvben lásd ezt a választ.

15.20. Hogyan használható a zmodem protokoll a tip programmal?

A FreeBSD kézikönyvben lásd ezt a választ.

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