USB driver support is provided natively on Linux.
If your debug adapter uses an FTDI chip (this includes the XTAG-1), the method required to enable the driver, depends on the distribution you are using and the kernel version.
Which distributions support USBFS?
Known to provide USBFS support:
- Ubuntu 9.04 or older
- Ubuntu 9.10 with kernel 2.6.31-19-server
- CentOS 4.8
- CentOS 5.4
- Generally, any distribution with kernel version < 2.6.32
Known to NOT provide USBFS support:
- Ubuntu 10.04
- Generally, any distribution with kernel version >= 2.6.32
Method 1: USBFS support
If your distribution provides usbfs support then the following command will work:
mount -t usbfs none /proc/bus/usb -o devmode=0666
To make this change permanent, make sure the following line is in the /etc/fstab file
:
none /proc/bus/usb usbfs defaults,devmode=0666 0 0
This will then automatically mount on boot.
Once the /etc/fstab
addition is made, a simple command should work to mount the usbfs filesystem:
mount /proc/bus/usb
Both the FTDI/XTAG and XTAG-2 debug adapters should work now.
Method 2: No USBFS support
To ensure that the permissions are correct on the device when plugging in either an FTDI/XTAG or XTAG-2 debug adapter, you need to configure `udev’ to recognise the device.
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" LABEL="xmos_rules_end"
Note: The ATTRS, MODE and SYMLINK stanzas must be all on one line, as each rule can only be on one line.
Now tell udev to reload to ensure the new rules file is added:
service udev reload
It is also necessary to unplug and re-plug the USB cable to allow udev to recognise the device with the new rules. Alternatively trigger a re-plug in udev with either the “udevadm trigger
” or “udevtrigger
” command, depending on the version of udev in your Linux distribution.
FTDI/XTAG additional notes
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 the files.
However, if your distribution does not support USBFS (for Method 1 above) but does have a /proc/bus/usb
empty directory, you can use the following bind mount command as a workaround:
mount --bind /dev/bus/usb /proc/bus/usb
If your distribution does not support USBFS and also does not have a /proc/bus/usb
directory (this is the case on newer kernels, from approximately 2.6.32 onwards), then please contact XMOS for an unofficial patched version of the device library; send us a support ticket which includes “Linux FTDI Library Request” in the Subject field.