我尝试在使用 WSL 的 Windows 10 PC 上使用 FTDI 设备 (0403:6010)。
为此,我按照那里给出的说明并成功安装了 usbipd-win: https://learn.microsoft.com/en-us/windows/wsl/connect-usb
在 WSL2 (Ubuntu 20.04) 上,我按照此处的安装说明安装了 FTDI 驱动程序 (v 1.4.27):https://ftdichip.com/wp-content/uploads/2020/08/AN_220_FTDI_Drivers_Installation_Guide_for_Linux-1.pdf
一切看起来都不错,除了 FT_Open() 返回 FT_DEVICE_NOT_OPENED 时出现错误。
请注意,在 FTDI 安装说明中,建议删除 ftdi_sio 模块。但在我的 WSL Ubuntu 20.04 发行版上尝试执行此操作时出现错误:
$ sudo rmmod ftdi_sio
rmmod: ERROR: ../libkmod/libkmod-module.c:1941 kmod_module_get_holders() could not open '/sys/module/ftdi_sio/holders': No such file or directory
rmmod: ERROR: Module unloading is not supported
此错误是否与我的问题有关?
WSL2 不适用于加载未随 Microsoft 自定义内核一起提供的内核模块。截至今天,驱动程序似乎不在内核目录中。
另请参阅https://github.com/microsoft/WSL/issues/11346
sudo modprobe ftdi_sio modprobe:致命:在目录 /lib/modules/5.15.146.1-microsoft-snapd+ 中找不到模块 ftdi_sio
一个重要的解决方法可能是使用自定义内核,如下所述:
https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configure-global-options-with-wslconfig