0

Fresh installation of Ubuntu 22.04.5 (bare-metal). Specs:

  • Gigabyte Technology Co., Ltd. B650 GAMING X AX
  • AMD® Ryzen 9 7900x3d 12-core processor × 24
  • NVIDIA GeForce RTX 3060/PCIe/SSE2 / NVIDIA Corporation GA106

Attempting to do some FPGA development with Vivado 2024.1 and cannot interface with the Numato Mimas A7 via the onboard FT2232H USB to serial interface chip. I can plug in other FTDI devices with success and the USB drivers create /dev/ paths. I even got to the point of ordering a second Mimas development board, thinking I had received a defective unit. However, both Mimas boards are behaving the same way.

Terminal information

Relevant output of lsusb shows:

 ...
Bus 001 Device 005: ID 2a19:1009 Numato Systems Pvt. Ltd Mimas Artix 7 FPGA Module
 ...

Output of dmesg when plugging in the Mimas shows:

[Nov26 23:11] usb 1-4: new high-speed USB device number 5 using xhci_hcd
[  +0.214620] usb 1-4: New USB device found, idVendor=2a19, idProduct=1009, bcdDevice= 7.00
[  +0.000006] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  +0.000002] usb 1-4: Product: Mimas Artix 7 FPGA Module
[  +0.000002] usb 1-4: Manufacturer: Numato Lab
[  +0.000001] usb 1-4: SerialNumber: NXXXXXXX

Note: Here there are no usb-serial, usb-core, or ftdi_sio line entries. With other FTDI devices, such as my Digilent Analog Discovery, I'll see these additional line entries

Output of udevadm monitor when plugging in the Mimas shows:

KERNEL[1467.971766] add      /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:0c.0/0000:0e:00.0/usb1/1-4 (usb)
KERNEL[1467.998258] add      /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:0c.0/0000:0e:00.0/usb1/1-4/1-4:1.0 (usb)
KERNEL[1468.003203] add      /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:0c.0/0000:0e:00.0/usb1/1-4/1-4:1.1 (usb)
KERNEL[1468.003222] bind     /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:0c.0/0000:0e:00.0/usb1/1-4 (usb)
UDEV  [1468.006816] add      /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:0c.0/0000:0e:00.0/usb1/1-4 (usb)
UDEV  [1468.008083] add      /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:0c.0/0000:0e:00.0/usb1/1-4/1-4:1.0 (usb)
UDEV  [1468.008105] add      /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:0c.0/0000:0e:00.0/usb1/1-4/1-4:1.1 (usb)
UDEV  [1468.010333] bind     /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:0c.0/0000:0e:00.0/usb1/1-4 (usb)

Note: Again, there are no usb-serial or driver, or ftdi_sio line entries. With other FTDI devices, such as my Digilent Analog Discovery, I'll see these additional line entries

Output after setting logging via udevadm control --log-priority=debug and journalctl -f during plug:

Nov 27 01:22:37 AAbuntu22 mtp-probe[9119]: checking bus 5, device 10: "/sys/devices/pci0000:00/0000:00:08.1/0000:10:00.4/usb5/5-2"
Nov 27 01:22:37 AAbuntu22 mtp-probe[9119]: bus: 5, device: 10 was not an MTP device
Nov 27 01:22:37 AAbuntu22 systemd-udevd[9117]: 5-2: 'mtp-probe /sys/devices/pci0000:00/0000:00:08.1/0000:10:00.4/usb5/5-2 5 10'(out) '0'
Nov 27 01:22:37 AAbuntu22 systemd-udevd[9117]: 5-2: Process 'mtp-probe /sys/devices/pci0000:00/0000:00:08.1/0000:10:00.4/usb5/5-2 5 10' succeeded.
Nov 27 01:22:37 AAbuntu22 systemd-udevd[9117]: 5-2: Handling device node '/dev/bus/usb/005/010', devnum=c189:521
Nov 27 01:22:37 AAbuntu22 systemd-udevd[9117]: 5-2: sd-device: Created db file '/run/udev/data/c189:521' for '/devices/pci0000:00/0000:00:08.1/0000:10:00.4/usb5/5-2'
Nov 27 01:22:37 AAbuntu22 systemd-udevd[9117]: 5-2: Failed to get watch handle, ignoring: No such file or directory

Note: Once again, no UDEV coming in to help out

Background:

With the distribution of Vivado 2024.1, there are 3 .rules files that are added to /ect/udev/rules.d/ after running a "cable-drivers" installation script. They were written back in 2012-2016 to support Digilent and Xilinx devices. More info here. For example, 52-xilinx-ftdi-usb.rules has the following line:

ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{manufacturer}=="Xilinx", MODE:="666"

Obviously, my device was not included in the above FTDI rule, but I tried adding my own line to this file using ATTRS{idVendor}=="2a19" and ATTRS{idProduct}=="1009" instead of the ATTRS shown. After applying udevadm control --reload, udevadm trigger and even rebooting, this did not have an effect on either dmesg or udevadm monitor outputs. I tried making my own rule file 10-numato-ftdi-usb.rulesin the same location:

ATTRS{idVendor}=="2a19", ATTRS{idProduct}=="1009", ACTION=="add", MODE="666", RUN+="/bin/sh -c 'echo $(date) $(env) >>/tmp/udev-debug.log'"

This unfortunately had the same null effect with and without the logging.

I've reviewed and tried all the suggestions within these references:

(Reference 1): UDEV rules for FTDI not completely working (although this user has the benefit of having a mounted device in /dev/).

  • I verified my user in all the appropriate groups.

(Reference 2):Ubuntu20.04 ttyUSB doesn't show up when FTDI device connected

  • Verified linux-modules-extra package installed via sudo apt install linux-generic

(Reference 3): https://stackoverflow.com/questions/45054026/ftdi-device-not-detected (although this user is attempting to use the legacy FTDI D2XX driver)

  • Tried removing and re-enabling ftdi_sio (and 'usb-serial') modules via rmmod and modprobe

(Reference 4): FT232 - no ttyUSB* device will be created after plugin

  • Verified my device isn't blacklisted

(Reference 5): /dev/ttyUSB0 not present in Ubuntu 22.04

  • There were no issues with brltty in the logs, but I removed it anyway.

From what I can tell, it's a kernel issue, but I'm all ears.

rzickler
  • 187
  • 1
  • 2
  • 8
arete
  • 11

1 Answers1

1

Per Numato, this is " not a defective unit, it is limitation in Ubuntu latest versions, which custom VID/PID not accepting the Ubuntu".

Option 1: Dynamically associate the device to the ftdi_sio driver:

sudo modprobe ftdi_sio
echo "2a19 1009" | sudo tee /sys/bus/usb-serial/drivers/ftdi_sio/new_id

Option 2: Program the VID and PID to FTDI default values (0403 and 6010, respectively) via FT Prog, available on FTDI Chip's website.

Using FT Prog (EEPROM tab):

  1. Scan and Parse (Mag Glass Icon)
  2. Navigate to "USB Device Descriptor" in Device Tree
  3. From Custom VID/PID dropdown, choose "FTDI Default"
  4. Open Program Devices window (Lightning Icon)
  5. Confirm by selecting "Program"
  6. From same window and following programming, select "Cycle Ports"
  7. Close window
  8. Rescan and confirm updated VID and PID in "USB Device Descriptor"
arete
  • 11