This is the Linux Serial Programming HOWTO. All about how to program communications with other devices / computers over a serial line under Linux. Different techniques are explained: Canonical I/O (only complete lines are transmitted/received), asyncronous I/O, and waiting for input from multiple sources.
This document does not describe how to set up serial ports, because this has been described by Greg Hankins in the Serial-HOWTO.
I have to emphasize that I am not an expert in this field, but have
had problems with a project that involved such communication. The code
examples presented here were derived from the miniterm code available
from the LDP programmers guide
(ftp://sunsite.unc.edu/pub/Linux/docs/LDP/programmers-guide/lpg-0.4.tar.gz
and mirrors)
in the examples directory.
Since I wrote this document in June 1997, I have moved to WinNT to satisfy customers need, so I have not built up more in depth knowledge. If anybody has any comments, I will gladly incorporate them into this document (see sect. Feedback). If someone would like to take over and do a better job, please e-mail me.
All examples were tested using a i386 Linux Kernel 2.0.29.
The Linux Serial-Programming-HOWTO is copyright (C) 1997 by Peter Baumann. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.
All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below.
In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.
If you have questions, please contact Tim Bynum, the Linux HOWTO
coordinator, at
linux-howto@sunsite.unc.edu
via email.
New versions of the Serial-Programming-HOWTO will be available
at
ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Serial-Programming-HOWTO
and mirror sites. There are other formats, such as PostScript and DVI
versions in the other-formats
directory. The
Serial-Programming-HOWTO is also available at
http://sunsite.unc.edu/LDP/HOWTO/Serial-Programming-HOWTO.html
and will be posted to
comp.os.linux.answers
monthly.
Please send me any corrections, questions, comments, suggestions, or
additional material. I would like to improve this HOWTO! Tell me
exactly what you don't understand, or what could be clearer. You can
reach me at
Peter.Baumann@dlr.de
via email. Please include the
version number of the Serial-Programming-HOWTO when writing, this is
version 0.3.