Linux Support for the Brainboxes USB-to-serial (US) and ExpressCard (VX) range of devices

The Linux kernel has built-in support for a selection of the Brainboxes USB-to-Serial (US) and ExpressCard (VX) devices. A relatively new kernel version is required for the devices to be used.
The following table lists the minimum kernel versions required for the devices:

Linux Kernel Version Brainboxes device(s)
3.10.40 and later VX-001
4.14.267 (LTS) and later 4.14 releases
4.19.230 (LTS) and later 4.19 releases
5.4.180 (LTS) and later 5.4 releases
5.10.101 (LTS) and later 5.10 releases
5.15.24 (LTS) and later 5.15 releases
5.16.10 and later

How can I tell what Linux kernel version I am using?

You can find out the version of the kernel that your Linux system is using with the terminal command:
uname -v
This will print the running kernel version. For example, Debian 11 (Bullseye) prints:
#1 SMP Debian 5.10.179-2 (2023-07-14)
The system is running version 5.10.179 LTS, so is compatible with all devices.

Which Linux distributions use which kernel versions?

The following table is a selection of Linux distributions and their associated kernel versions, which you can use to compare against the above compatibility table.
Note that these are the kernel versions as of writing. There may have been updates to the versions since this article was published. Check with your vendor if you are unsure.

Distribution Linux kernel version
RHEL/CentOS/Oracle Linux (non-UEK) 7* 3.10.0
Oracle Linux (UEK) 7 5.4.17
RHEL/Rocky Linux/Alma Linux/Oracle Linux (non-UEK) 8 4.18.0
Oracle Linux (UEK) 8 5.15.0
RHEL/Rocky Linux/Alma Linux/Oracle Linux (non-UEK) 9 5.14.0
Oracle Linux (UEK) 9 5.15.0
Debian Linux 10 (Buster) 4.19.282
Debian Linux 11 (Bullseye) 5.10.179
Debian Linux 12 (Bookworm) 6.1.38
Ubuntu 18.04 LTS 4.15.0
Ubuntu 20.04 LTS 5.4.0
Ubuntu 22.04 LTS 5.15.0

* The patches to enable the US/VX range of devices (except US-159, US-325 and US-320) have been backported to these distributions, so are compatible.

How do I use my US/VX device on Linux

After the device is detected and installed by the Linux system, the device will be available at /dev/ttyUSBx, with x being a number. Serial devices start at ttyUSB0 and each additional port installed on the computer will use the next available number.

Can I use my US-159, US-235 or US-320 device on a non-supported kernel version?

As USB devices are hot-pluggable, the Linux driver can be assigned to the device even if it will not match it as plug-and-play. You will need a modern system running udev for this.
To force the driver to use your US device, run the following procedure:
1) As root/superuser (or via sudo), create a file called 98-brainboxes.rules using your preferred editor in the directory /etc/udev/rules.d/. For example, sudo nano /etc/udev/rules.d/98-brainboxes.rules
2) Add the following code into the file:

ACTION=="add", ATTRS{idVendor}=="05d1", ATTRS{idProduct}=="1021", RUN+="/sbin/modprobe ftdi_sio" RUN+="/bin/sh -c 'echo 05d1 1021 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"
ACTION=="add", ATTRS{idVendor}=="05d1", ATTRS{idProduct}=="1017", RUN+="/sbin/modprobe ftdi_sio" RUN+="/bin/sh -c 'echo 05d1 1017 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"
ACTION=="add", ATTRS{idVendor}=="05d1", ATTRS{idProduct}=="1019", RUN+="/sbin/modprobe ftdi_sio" RUN+="/bin/sh -c 'echo 05d1 1019 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"

3) Save the file. Try plugging in your US device again, and it should appear as a /dev/ttyUSB device.

Related FAQs

Related Products

Related Range