Friday, July 19, 2013

HOW-TO: Virtual Serial ports in Linux

The below instructions are targeted toward CentOS but should work on other Linux Distributions.
This HOW-TO shows how to create 2 virtual serial ports that are linked together as if they were 2 physical serial ports linked together using a NULL-modem cable.

1. Install socat
yum install socat

2. Run socat in a screen instance
screen socat -d -d pty,raw,echo=0 pty,raw,echo=0

You will see something like this on your screen
2012/11/15 15:52:43 socat[24000] N PTY is /dev/pts/2
2012/11/15 15:52:43 socat[24000] N PTY is /dev/pts/3
2012/11/15 15:52:43 socat[24000] N starting data transfer loop with FDs [3,3] and [5,5]

Your first serial port is /dev/pts2 and your 2nd serial port is /dev/pts/3 (those port path can be different from this example). Those will remain linked as long as the socat program is running.
Press CTRL-A d in order to detach from this scree instance

3. Configure and run your first application using /dev/pts/2

4. Configure and run your second application using /dev/pts/3

Voila your 2 applications are communicating using the 2 virtual serial ports.

Note that this is just one application of the socat program. You can for instance link a serial port with a TCP socket and much more. 

Here are some nice links regarding socat

No comments:

Post a Comment