Back to top

Enable USB drivers on Linux

Version: X2612A Date: October 30, 2012Download PDF
X2612AOct 30, 2012 download view

The XMOS tools interface to development boards using USB debug adapters. USB driver support is provided natively on Linux, but in some cases, the driver must be enabled. The method required to enable the driver depends on the Linux distribution you are using and the kernel version.

Linux distributions known to provide USBFS support include:

  • Ubuntu 9.04 or older
  • Ubuntu 9.10 with kernel 2.6.31-19-server
  • CentOS 4.8 and 5.4
  • Generally, any distribution with kernel version < 2.6.32

Linux distributions known to not provide USBFS support include:

  • Ubuntu 10.04
  • Generally, any distribution with kernel version >= 2.6.32

Enable USB driver on system with USBFS support

If your distribution provides USBFS support, use the following command to enable the Linux driver:

mount -t usbfs none /proc/bus/usb -o devmode=0666

To automatically enable the driver on boot, add the following line to the file /etc/fstab:

none /proc/bus/usb usbfs defaults,devmode=0666 0 0

Enable USB driver on system without USBFS support

If you distribution does not provide USBFS support, you must configureudev to recognise the device. To configure udev, follow these steps:

  1. Create a file /etc/udev/rules.d/99-xmos.rules with the following contents:
SUBSYSTEM!="usb|usb_device", GOTO="xmos_rules_end"
ACTION!="add", GOTO="xmos_rules_end"

# 20b1:f7d1 for xmos xtag2
ATTRS{idVendor}=="20b1", ATTRS{idProduct}=="f7d1", MODE="0666", SYMLINK+="xtag2-%n"

# 0403:6010 for XC-1 with FTDI dual-uart chip
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="0666", SYMLINK+="xc1-%n"


The ATTRS, MODE and SYMLINK stanzas must be all on one line, as each rule can only be on one line.

  1. Enter the following command:

service udev reload

  1. Unplug and re-plug the USB cable.

    This allows udev to recognise the device with the new rules.

    Alternatively, you can trigger a re-plug in udev by entering either the commandudevadm trigger or udevtrigger, depending on the version of udev provided with your Linux distribution.

Additional notes for FTDI/XTAG debug adapters

  1. The FTDI library requires that the USB device files are available from /proc/bus/usb and does not support /dev/bus/usb as a location for these files.
  2. If your Linux distribution does not support USBFS but does have an empty /proc/bus/usbdirectory, you can use the following command as a workaround:

    mount –bind /dev/bus/usb /proc/bus/usb

  3. If your distribution does not support USBFS and does not have a/proc/bus/usb directory (this is the case on newer kernels, from approximately 2.6.32 onwards), you may contact XMOS for an unofficial patched version of the device library.

    To request the library, send us a support ticket with “Linux FTDI Library Request” in the Subject field.