How do I sniff and monitor data on a serial port under Linux operating systems?
You can use the following tools:
a) jpnevulator - What once started as a Jackpot Navigator emulator (hence the strange name) is now a nice serial sniffer and you can use it to send data on a serial line too. It's sort of like a very simple terminal emulator, like picocom. But jpnevulator uses hexadecimal byte values to display and send along the line. Very handy indeed if you are working a lot with serial protocols. Under Debian and Ubuntu you can install it as follows:
sudo apt-get install jpnevulator
You can use it as follows to monitor and sniff two serial ports:
jpnevulator --ascii --timing-print --tty /dev/ttyS0:SB9600d --tty "/dev/ttyUSB0:Motorola MTM800" --read
b) pyserial - Use this project which is a multiplatform serial port module for Python (Win32, Jython, Linux, BSD and more).
c) strace - You can trace system calls and signals including serial communication. See strace man page for the details.