Linux USB Drivers

← Back

All of our USB products (USG-1, NGT-1-USB, NGW-1-USB and NDC-4-USB) can be used in Linux as the FTDI USB chip we use in our products is supported in Linux. In fact as of Linux Kernel v4.0, our devices will be supported without any work being required by the user at all.  If your Linux Kernel is older we currently have three methods that various customers have used successfully: two simple methods (detailed by two customers) and one official method (detailed by FTDI, manufacturer of the USB chip we use in our products) that is more involved and should probably be left as a last resort.

1. Customer method 1 (to try first)

Add the USB device ID text to /etc/modules.d/65-usb-serial-ftdi:

(Only the first 4 products/devices are part of the required entry)

root@Optimizer:/etc/modules.d# cat 65-usb-serial-ftdi
ftdi_sio vendor=0x0403 product=0xD9A8 (for the USG)
ftdi_sio vendor=0x0403 product=0xD9A9 (for the NDC)
ftdi_sio vendor=0x0403 product=0xD9AA (for the NGT)
ftdi_sio vendor=0x0403 product=0xD9AB (for the NGW)
(The remaining are reserved for future devices/products)
ftdi_sio vendor=0x0403 product=0xD9AC
ftdi_sio vendor=0x0403 product=0xD9AD
ftdi_sio vendor=0x0403 product=0xD9AE
ftdi_sio vendor=0x0403 product=0xD9AF

Then reboot.

The following shows up on the console when you plug the device in:

[  143.130000] usb 1-1: new full-speed USB device number 2 using dwc_otg
[  143.340000] ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected
[  143.350000] usb 1-1: Detected FT232RL
[  143.360000] usb 1-1: Number of endpoints 2
[  143.360000] usb 1-1: Endpoint 1 MaxPacketSize 64
[  143.360000] usb 1-1: Endpoint 2 MaxPacketSize 64
[  143.370000] usb 1-1: Setting MaxPacketSize 64
[  143.390000] usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0

2. Customer method 2 (if your Linux doesn’t have “/etc/modules.d”)

On “Linux 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64” there isn’t an “/etc/modules.d” at all. A similar solution is detailed at:

So, instead create a file called “/etc/udev/ngt-1.rules” containing this text:

# /etc/udev/rules.d/ngt-1.rules
# contains Actisense NGT-1 udev rule to patch default
# FTDI product id to NGT-1 product id (0xD9AA)
ATTR{idProduct}==”D9AA”, ATTR{idVendor}==”0403″, RUN+=”/sbin/modprobe -q ftdi_sio product=0xD9AA vendor=0x0403″

Then I get the following:

[    4.637989] usbcore: registered new interface driver ftdi_sio
[    4.638016] usbserial: USB Serial support registered for FTDI USB Serial Device
[    4.638152] ftdi_sio 1-4.2:1.0: FTDI USB Serial Device converter detected
[    4.638215] usb 1-4.2: Detected FT232RL
[    4.638220] usb 1-4.2: Number of endpoints 2
[    4.638223] usb 1-4.2: Endpoint 1 MaxPacketSize 64
[    4.638227] usb 1-4.2: Endpoint 2 MaxPacketSize 64
[    4.638230] usb 1-4.2: Setting MaxPacketSize 64
[    4.658276] usb 1-4.2: FTDI USB Serial Device converter now attached to ttyUSB0

The “/dev/ttyUSB0” is then available to use by any program.