/dev/ttyd
Ivo Hažmuk
ivo at vutbr.cz
Wed Dec 13 17:49:04 CET 2006
Jaromír Dvořáček wrote:
> prosim, dostal jsem za ukol na freebsd routeru zprovoznit nejaky soft, co prijima data jdouci na COM port (z telefonni ustredny).
>
> Ovsem, program nic neprijima. A ted otazka zni, zdali je nejaky zadrhel mezi systemy - pod linuxem funguje (kompilace na bsd bez potizi) - nebo je problem u mne a mam "nejak" spatne nastaveny com port.
>
> V kernelu mam:
> # Serial (COM) ports
> device sio # 8250, 16[45]50 based serial ports
>
> a v /dev mam zarizeni:
> ttyd0 ttyd0.init ttyd0.lock
>
> ...no, a ted, co dal? Je to pro mne spanelska vesnice a netusim, ani nedokazu overit, jestli ta data na com port proudi, jestli je vubec zivy a spravne nastaveny. Nechci zacit resit program, dokud vlastne ani nevim, jestli funguje spravne system.
>
> Napada nekoho neco? Je potreba nejaka dodatecna konfigurace? Jak jednoduse zjistit, jestli na ten port neco chodi?
Zkusim napovedet. Nejdriv bych se ptal, jestli OS seriovy port nasel. To
bych se podival do /var/run/dmesg.boot. Tam bych hledat sio0, sio1, ...
...
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on
acpi0
sio0: type 16550A
...
Taky bych si zkontroloval, jak se zarizeni jmenuje v /dev/. Mezi FBSD 4
a FBSD 6 doslo ke zmene jmen. FBSD 5 jsem tak nejak preskocil a tudiz nevim.
Potom bych zkusil cist data ze serioveho portu programem tip(1). Nejlepe
bych zkusil nejake zarizeni, ktere dobre znam. Treba neco se seriovou
konzoli 9600 b/s, 8 bit, 1 stop bit, bez parity. To je opravdu defaultni
nastaveni ruznych prepinacu, routeru ... Ted me napadlo, ze velmi
dostupne zarizeni by mohl byt stary spatny modem. Pozor na AT prikazy.
V dokumentaci ustredny bych zjistil, s jakymi parametry komunikuje ona a
toto nastaveni bych se snazil nastavit v souboru /etc/remote.
Nasledene bych zkusil cist data z ustredny tipem.
V tomto okamziku je profouknuta seriova linka a je na case psat nejaky
program na cteni ze serioveho portu.
Ac jsem priznivcem perlu, tak na tuto ulohu preferuji C. Nastavovani
parametru seriove linky se dela pomoci ioctl(2). Tim rozhodne nechci
rict, ze to jinak nejde. Ale mam pocit, ze toto je uloha, kde je C
vhodnym nastrojem.
S pozdravem
Ivo Hazmuk
More information about the Users-l
mailing list