jueves, 13 de septiembre de 2012

Emulación de terminal virtual en kubuntu

Se me presentó la necesidad de hacer unas pruebas con un código en PyQt que se comunica por el puerto serie, pero olvidé mis cables seriales para hacerlo.

Se me ocurrió la posibilidad de utilizar algún emulador de puertos seriales, e investigando, encontré en stackoverflow algunos métodos para implementarlos.

Buscando lo que tengo disponible en esta versión de kubuntu(oneiric), descargué desde el administrador de paquetes el software socat.

Una vez instalado, probé con el ejemplo que mencionan en stackoverflow desde la terminal:

sudo socat PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11

Me queda la terminal esperando, pero al probar con cutecom el puerto /dev/ttyS10, no funcionó, informando que no se podía acceder al dispositivo. Hice la prueba llamando a cutecom como superusuario, y si funcionó, por lo que determiné que los problemas son los permisos de los dispositivos.

Detuve el proceso socat (control+c desde la terminal), e investigando la documentación, encontré el modo de cambiar el usuario y grupo de los enlaces que se realizan. Además, encontré en la ayuda de ubuntu un artículo donde habla de puertos seriales virtuales, y el autor explica como pedirle a socat más información de depuración al llamado del proceso.

sudo socat -d -d PTY,link=/dev/ttyS10,user=me,group=dialout PTY,link=/dev/ttyS11,user=me,group=dialout

Mi usuario(me), pertenece al grupo dialout, y con esto, el sistema ya me permitió acceder desde mis aplicaciones a este pseudo puerto serie en los dispositivos /dev/ttyS10 y /dev/ttyS11.

Mientras no cierre socat, estos dos dispositivos están disponibles para mis pruebas.

No hay comentarios:

Publicar un comentario