Ubuntu and Yaesu FT-857

I was having problems getting my RT Systems cable for the Yaesu FT-857 detected as a USB serial port, the device was recognized by the kernel, but not associated as a serial port device. I found the solution on this site, but I want to document it here for my own history. This solution may also work for other similar cables that are not automatically detected.

Note that I’m not positive what will happen to these changes in the event that the original files are changed by a package update, but I expect that these changes will need to be applied again if they are not incorporated into the update.

When plugging in the USB-62C cable for the first time, the dmesg output showed the following:

[ 8314.632156] usb 7-1: new full-speed USB device number 4 using uhci_hcd
[ 8314.851262] usb 7-1: New USB device found, idVendor=2100, idProduct=0e56, bcdDevice=10.00
[ 8314.851268] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 8314.851271] usb 7-1: Product: CT62C Radio Cable
[ 8314.851275] usb 7-1: Manufacturer: RT Systems
[ 8314.851278] usb 7-1: SerialNumber: RTYVKKOK

The relevant bits to note in the dmesg output are the idVendor and idProduct values, these will be needed to apply the “fix”. Perform these steps with the cable unplugged.

The next step is to modify a file that contains a large list of usb vendor and product ids. Open the file below using the nano command as root (or preferably, with sudo):

sudo nano /var/lib/usbutils/usb.ids

In the nano editor, find the section for RT Systems and add a line for the idProduct like the example below:

2100  RT Systems
0e56 USB-62C #add code of your cable
9e52 Yaesu VX-7
9e54 CT29B Radio Cable
9e57 RTS01 Radio Cable
9e5d K4Y Radio Cable
9e5f FT232RL [RTS05 Serial Cable]

After adding your changes, save and exit the file (ctrl+x, yes). Next you’ll need to manually load the ftdi kernel module using the following command:

sudo modprobe ftdi_sio

Once this is completed you need to edit another file using nano and paste your idVendor and idProduct values, “2100 0e56” in this case:

sudo nano /sys/bus/usb-serial/drivers/ftdi_sio/new_id

After adding your changes, save and exit the file (ctrl+x, yes).

The last configuration step is to reload the udev rule using the command below:

udevadm control --reload-rules

Now you can plugin your RT Systems cable and the dmesg output should show the device being detected and being associated as a USB serial device. If everything works as expected you should see the device that the port is now usable as, ttyUSB0 in this case:

[10017.396149] usb 7-1: new full-speed USB device number 8 using uhci_hcd
[10017.616263] usb 7-1: New USB device found, idVendor=2100, idProduct=0e56, bcdDevice=10.00
[10017.616269] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[10017.616273] usb 7-1: Product: CT62C Radio Cable
[10017.616276] usb 7-1: Manufacturer: RT Systems
[10017.616279] usb 7-1: SerialNumber: RTYVKKOK
[10017.623287] ftdi_sio 7-1:1.0: FTDI USB Serial Device converter detected
[10017.623351] usb 7-1: Detected FT-X
[10017.632185] usb 7-1: FTDI USB Serial Device converter now attached to ttyUSB0

Some additional notes on this solution:

  • These changes we applied to an Ubuntu 18.04 that was fully up to date on 2019-02-25
  • The kernel version was 4.18.0-15-generic
  • The usb.ids file is listed as being part of package usbutils
  • This package was at version 1:007-4build1

Addendum 2019-02-27:

Some of these changes did not survive a reboot of the system. The additions to the usb.ids file remained, but the changes to the ftdi_sio/new_id file did not. Nor did the ftdi_sio module get loaded on boot up. Manually reapplying the last few commands made the USB serial port work again. I will update this page again after I have a satisfactory solution to making these change stick through a reboot.

Addendum #2 2019-02-27:

Found the solution on Stackexchange for loading the drivers and assigning the device automatically on bootup. I’ve tested this and it worked fine for me. I needed to adjust the vendorID and producID values from the stackexchange post to match my device but otherwise the fix is exactly the same:

As root (or sudo) we need to create a udev rules file:

sudo nano /etc/udev/rules.d/99-ftdi.rules

In the nano editor paste the following content:

ACTION=="add", ATTRS{idVendor}=="2100", ATTRS{idProduct}=="0e56", RUN+="/sbin/modprobe ftdi_sio" RUN+="/bin/sh -c 'echo 2100 0e56 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"

Once you have the rule content pasted, make sure you update both places where the idVendor and idProduct values are for your device as they are in there twice. Save and close the file.

At this point I would reboot the computer to make sure it works on boot up, but you can also run the following command to use the new rule immediately if you prefer:

sudo udevadm control --reload