[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