[gull] Simuler un "serial device"
Marc SCHAEFER
schaefer at alphanet.ch
Mon Apr 4 10:11:02 CEST 2005
On Sun, Apr 03, 2005 at 09:19:41PM +0200, Ivo Bloechliger wrote:
> J'ai essayé de simplement indiquer un terminal par /dev/pts/xyz (à la
> place de /dev/ttyS0), mais ce genre de device n'accepte pas les ioctl...
> (pour, par exemple, déterminer la "baud-rate").
Il y a assez longtemps j'ai participé au développement d'un serveur de
terminaux à 16 ports série. Ce périphérique se connectait via SCSI et
était interrogé via un protocole spécial. Initialement conçu pour des
petits serveurs Sun, j'avais fait le port à GNU/Linux. Un daemon totalement en
user-space faisait le pont -- pour simplifier -- entre /dev/sg0
et /dev/ttyp*. Y compris gestion RTS/CTS et autres termios.
Donc cela doit être possible. Malheureusement je ne me souviens plus
trop des détails.
Un exemplaire se trouve encore dans ma cave :->
Rapidement:
schaefer at defian:~% cat < /dev/ptyp0 &
[1] 1963
schaefer at defian:~% cat > /dev/ttyp0 &
[2] 1964
schaefer at defian:~% stty -a < /dev/ttyp0 | grep clocal
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
schaefer at defian:~% stty clocal < /dev/ttyp0
schaefer at defian:~% stty -a < /dev/ttyp0 | grep clocal
-parenb -parodd cs8 -hupcl -cstopb cread clocal -crtscts
on voit bien que l'on peut changer les paramètres du tty (la vitesse
aussi), du moins sous certaines conditions.
Je ne me souviens plus si l'on faisait du polling du côté master
ou si l'on était notifié par le 4e paramètre de select(2).
PS: il s'agit de l'ancienne interface fichiers. On peut aussi utiliser
le pty master pour allouer de façon plus sûre ces fichiers sans
forcément être root.
More information about the gull
mailing list