More than 4 serial ports under Linux
(Originally posted 24 Oct 09, lost in server mishap, found in Google's cache of this page)
So at work I am using a PCI104 octal serial port board. It's pretty cool that Linux now supports those OOB, but I had problems; I only saw the first two ports!
After doing a bunch of research; I finally found the problem. I had assumed it was something with the chipset itself. However, it is a problem with the default kernel build from RHEL/CentOS. They only allow up to four by default! To get more (up to 32 with the RHEL/CentOS kernel), you have to add to the command line in GRUB:
8250.nr_uarts=12
Again, that can be up to 32. I chose 12 because "traditionally" the mobo could have up to four. That made the two on the mobo ttyS0
and ttyS1
, so the octal card has ttyS4
to ttyS11
. So ttyS2
and ttyS3
are unused. A quick check with dmesg | grep ttyS
will show them being allocated.
Side note: You can check how many the default is by doing grep CONFIG_SERIAL_8250 /boot/config-`uname -r`
and looking for CONFIG_SERIAL_8250_RUNTIME_UARTS
. CONFIG_SERIAL_8250_NR_UARTS
is the maximum you can have without rebuilding the kernel.
Maybe I'll get inspired and blog sometime about the cool stuff I did with udev
so that I can configure a box and then the software would just "know" where which serial port the (external device) was on by calling /dev/projectname/extdevice
.
Comments
No comments.