This article is from a FAQ concerning SCO operating systems. While some of the information may be applicable to any OS, or any Unix or Linux OS, it may be specific to SCO Xenix, Open This is an old article about SCO Unix and is only left here for historical purposes. There is lots of Linux, Mac OS X and general Unix info elsewhere on this site: Search this site is the best way to find anything.
Here are three possibilities. First, check the NCLIST kernel parameter. This governs how many CLIST structures are allocated; these are used to buffer input and output. If this is too low, then at times of high serial I/O demands, your system will run out of CLIST structures and start discarding characters. Note that there is a limit as to how many CLIST structures may be allocated to an individual process, regardless of how many are available systemwide. This is done to prevent one misbehaving program from monopolizing all of the CLIST structures. Look for the tunable parameter TTHOG (only available in newer Unix systems), which controls this limit.
The next possibility is that you may have an old UART (8250 or 16450). See the next answer for more info.
And you may also have flow control problems. The devices at either end of a serial cable must agree on what flow control is being used or else you can end up with data loss, unexplained pauses in the data stream, etc. See the man pages for stty and termio for more information on the available settings.
Got something to add? Send me email.