全新安装 Ubuntu 22.04.5(裸机)。规格:
- 技嘉科技 B650 GAMING X AX
- AMD® Ryzen 9 7900x3d 12 核处理器 × 24
- NVIDIA GeForce RTX 3060/PCIe/SSE2 / NVIDIA 公司 GA106
尝试使用 Vivado 2024.1 进行一些 FPGA 开发,但无法通过板载 FT2232H USB 转串行接口芯片与 Numato Mimas A7 接口。我可以成功插入其他 FTDI 设备,并且 USB 驱动程序会创建/dev/
路径。我甚至还订购了第二块 Mimas 开发板,以为我收到了一个有缺陷的单元。然而,两块 Mimas 板的表现都一样。
航站楼信息
相关演出输出lsusb
:
...
Bus 001 Device 005: ID 2a19:1009 Numato Systems Pvt. Ltd Mimas Artix 7 FPGA Module
...
dmesg
插入 Mimas 时的输出显示:
[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
注意:这里没有usb-serial
、usb-core
或ftdi_sio
行条目。对于其他 FTDI 设备(例如我的 Digilent Analog Discovery),我会看到这些额外的行条目
udevadm monitor
插入 Mimas 时的输出显示:
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)
注意:同样,没有usb-serial
或driver
, 或ftdi_sio
行条目。对于其他 FTDI 设备(例如我的 Digilent Analog Discovery),我会看到这些额外的行条目
通过插入设置日志记录后udevadm control --log-priority=debug
的输出journalctl -f
:
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
注意:再一次,没有 UDEV 来帮忙
背景:
随着 Vivado 2024.1 的发行,运行“cable-drivers”安装脚本后.rules
会添加 3 个文件/ect/udev/rules.d/
。它们是在 2012-2016 年编写的,用于支持 Digilent 和 Xilinx 设备。 更多信息请见此处。例如,52-xilinx-ftdi-usb.rules
有以下行:
ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{manufacturer}=="Xilinx", MODE:="666"
显然,我的设备未包含在上述 FTDI 规则中,但我尝试使用ATTRS{idVendor}=="2a19"
和ATTRS{idProduct}=="1009"
而不是ATTRS
显示的 向此文件添加自己的行。应用 甚至重新启动后udevadm control --reload
,这对或输出udevadm trigger
都没有影响。我尝试在同一位置创建自己的规则文件:dmesg
udevadm monitor
10-numato-ftdi-usb.rules
ATTRS{idVendor}=="2a19", ATTRS{idProduct}=="1009", ACTION=="add", MODE="666", RUN+="/bin/sh -c 'echo $(date) $(env) >>/tmp/udev-debug.log'"
不幸的是,无论有没有记录,这都产生了相同的无效效果。
我已经查看并尝试了这些参考文献中的所有建议:
(参考文献 1):
FTDI 的 UDEV 规则无法完全发挥作用
(尽管该用户可以享受已安装设备的福利/dev/
)。
- 我已在所有适当的方面验证了我的用户
groups
。
(参考2):Ubuntu20.04 连接FTDI设备时ttyUSB不显示
- 已验证的
linux-modules-extra
软件包已通过sudo apt install linux-generic
(参考文献 3): https://stackoverflow.com/questions/45054026/ftdi-device-not-detected(尽管该用户正在尝试使用旧版FTDI D2XX 驱动程序)
- 尝试通过和删除并重新启用
ftdi_sio
(和“usb-serial”)模块rmmod
modprobe
(参考文献 4): FT232 - 插件后不会创建 ttyUSB* 设备
- 已验证我的设备未被列入黑名单
(参考 5): Ubuntu 22.04 中不存在 /dev/ttyUSB0
brltty
日志中没有问题,但我还是将其删除了。
据我所知,这是一个内核问题,但我洗耳恭听。
根据 Numato 的说法,这“不是一个有缺陷的设备,而是 Ubuntu 最新版本的限制,其自定义 VID/PID 不接受 Ubuntu”。
选项 1:将设备动态关联到
ftdi_sio
驱动程序:选项 2:通过FT Prog(可在 FTDI Chip 的网站上找到)将 VID 和 PID 编程为 FTDI 默认值(分别为 0403 和 6010) 。
使用 FT Prog(EEPROM 选项卡):