Skip to main content

Linux Installation

info

This guide applies to both US (USB to Serial) and VX (ExpressCard Serial) devices.

There are 2 methods to install US/VX devices in a Linux system. Starting from kernel 2.6.14, it includes a module called ftdi_sio which supports our US/VX chipset. We can use the built-in ftdi_sio (if standard distro) (method 1) or we can rebuild the kernel or kernel module (method 2).

Method 1

Method 1 is an easy method, but it's restricted to only one device (1 and 2 port device only) at a time unless you restart or unload/reload the ftdi_sio module.

Method 2

Method 2 is more technical because it involves re-building the kernel module or kernel. It will also support multiple devices in the system as well as 4 and 8 port US/VX devices.

Method 1 (Easier method)

Use this method if you have only one US or VX device and want to use with Linux (kernel version 2.6.14 or later).

  1. Open a terminal window in Linux

  2. Copy "99-bbftdisio.rules" files to /etc/udev/rules.d directory:

    sudo cp /home/TestUser/Desktop/diskimage/99-bbftdisio.rules /etc/udev/rules.d

    Where /home/TestUser/Desktop/diskimage/ is the location of "99-bbftdisio.rules" file.

  3. Restart your system

  4. After system restart, plug in your US or VX device

  5. Open a terminal window in Linux again

  6. Use lsusb to confirm Linux recognizes the system

Method 2

This method is a bit difficult but it will work with multiple devices plugged into the Linux system.

Prerequisite

Need kernel build tools on your system to build the Linux kernel or module.

To build the patch kernel module, generally you need to perform the following steps:

  1. Setup Kernel development package and tools
  2. Download kernel source
  3. Patch ftdi_sio files. 'ftdi_sio.patch' and 'ftdi_sio_ids.patch' are to patch the Linux kernel 2.6.x ftdi_sio module source.
  4. Build the kernel module
  5. Copy Module to the Linux model system and load the module

Please follow the steps below to build the module (the following examples use Ubuntu 10.10):

Get the Linux kernel source

sudo apt-get install aptitude
sudo apt-get install patch
export KERNEL_VERSION=`uname -r|cut -d '-' -f 1`
sudo aptitude install linux-source-$KERNEL_VERSION
cd /usr/src
sudo tar jxf linux-source-$KERNEL_VERSION.tar.bz2
sudo ln -s linux-source-$KERNEL_VERSION linux
sudo ln -s /usr/src/linux/lib/modules/`uname -r`/build
cd linux

Prepare the build system

sudo cp /boot/config-`uname -r` /usr/src/linux/.config
cd linux
sudo make oldconfig
sudo make prepare0
sudo make scripts
sudo make modules_prepare
sudo cp /lib/modules/2.6.35-22-generic/kernel/drivers/usb/serial/ftdi_sio.ko /lib/modules/2.6.35-22-generic/kernel/drivers/usb/serial/ftdi_sio.ko_backup

Patch and Build the 'ftdi_sio' module

'ftdi_sio.patch' and 'ftdi_sio_ids.patch' are to patch the Linux kernel 2.6.x ftdi_sio module source. The following example shows building a single 'ftdi_sio' module. You can also rebuild the whole kernel system.

sudo patch /usr/src/linux/drivers/usb/serial/ftdi_sio.c < /home/bandu/Downloads/ftdi_sio.patch
sudo patch /usr/src/linux/drivers/usb/serial/ftdi_sio_ids.h < /home/bandu/Downloads/ftdi_sio_ids.patch
sudo make -C /lib/modules/`uname -r`/build M=`pwd` drivers/usb/serial/ftdi_sio.ko

Copy Module to the Linux model system and load the module

sudo cp /usr/src/linux/drivers/usb/serial/ftdi_sio.ko /lib/modules/2.6.35-22-generic/kernel/drivers/usb/serial/
sudo rmmod ftdi_sio
sudo modprobe ftdi_sio

Optional: Load module at startup

To prepare the module to load every time at start up, append 'ftdi_sio' string to the /etc/modules file.