Serial Card (Syba)
|Version||Status||Date Updated||Updated By|
|810||applies||10 Oct 2011||twodogs|
|1004||applies||10 Oct 2011||twodogs|
This tutorial covers how to install the Syba SY-PCI15001 expansion card. It costs about $35, has 6 serial ports, and uses the Moschip MCS9865 contoller (Newegg wrongly says it uses MCS9845). Moschip doesn't have a stellar record with Linux, but the drivers have been recently updated and the price is right. Not exactly plug/play, but it shouldn't take too long to install by following this tutorial.
The Syba card ships with out-of-date drivers, so we'll use the latest from Moschip. Following the Moschip instructions will result in two working ports that LinuxMCE can't recognize (because they're ttyD instead of ttyS). The remaining four ttyS ports will be recognized, but they also won't work with LMCE because the standard driver configuration is wrong (need to have hardware flow control enabled). Also, grub only sets up four serial ports, two of which are typically allotted to the motherboard. So, here is what to do...
- Edit grub configuration to allow 8 ports.
- Edit the Moschip driver file before compiling to permit hardware flow control.
- Compile the driver.
- Modify the LMCE script "ListSerialPorts.sh" to recognize the ttyD ports.
Physically install the card. Boot LMCE and go to the KDE desktop. Download the driver from Moschip and extract the compressed file.
Bring up a terminal and open the text editor with root permissions "sudo kate".
Edit "/boot/grub/menu.lst" to add "8250.nr_uarts=8" at the end of the generic kernel line as shown below.
"/boot/vmlinuz-2.6.27-17-generic root=UUID=f8bb6686-8ed8-4795-9e5f-739f36e69d8e ro quiet splash 8250.nr_uarts=8"
Note: this does not work for LMCE 1004 because that uses grub2. For 1004 you must edit etc/default/grub and add "8250.nr_uarts=8" after "quiet splash". Save the file, open a terminal and enter "sudo update-grub"
Edit Moschip driver file
Edit the driver file "mcs9865.c"
For each line that says ".en_flow_control= 0," change the "0" to a "1"
Using the "find and replace" feature in Kate is the easiest way to do this.
In the terminal, change to the moschip driver directory (wherever you extracted it.)
Type "make" and enter. You'll see something about "lacks a cast" that looks scary, but is nothing to worry about.
Type "sudo make install" and enter
Get LMCE to recognize ttyD ports
LMCE knows how to read ttyD ports created by a Starex card. We're stealing this subroutine for the Syba card.
Edit "usr/pluto/bin/ListSerialPorts.sh" with root permissions (sudo kate)
Change the two occurrences of "starex-serial" to "mcs9865-serial"
Enjoy your six new ports. The picture shows how the ports were numbered in my installation. If you need to troubleshoot, open a terminal and type "lspci -v" to see info like interrupts and such. Type "dmesg | grep tty" to see the total number of tty ports on your system. If you have two computers, see if you can get them to talk. Use a null modem cable and install Gtkterm.