Leo*_*und 4 usb serial-port arduino drivers windows-subsystem-for-linux
我有一个带有 CH340 串行芯片的 arduino nano 克隆。它出现在 lsusb 中QinHeng Electronics HL-340 USB-Serial adapter,当它连接时,我可以在 dmesg 中看到它,并显示以下日志记录:
[ 31.251098] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(3)
[ 31.251544] vhci_hcd vhci_hcd.0: devid(65541) speed(2) speed_str(full-speed)
[ 31.252004] vhci_hcd vhci_hcd.0: Device attached
[ 31.538489] vhci_hcd: vhci_device speed not set
[ 31.608492] usb 1-1: new full-speed USB device number 2 using vhci_hcd
[ 31.698522] vhci_hcd: vhci_device speed not set
[ 31.768510] usb 1-1: SetAddress Request (2) to port 0
[ 31.812328] usb 1-1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.63
[ 31.812734] usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 31.813059] usb 1-1: Product: USB2.0-Serial
Run Code Online (Sandbox Code Playgroud)
但没有/dev/ttyUSB*。
谢谢。
因此,在撰写本文时,缺乏对 USB 串行设备支持的原因是它们的模块未包含在 WSL 内核中。
\n您可以通过执行以下操作来使用模块编译自己的 WSL 内核:
\n您可能需要这些依赖项:sudo apt install build-essential flex bison libssl-dev libelf-dev dwarves libncurses-dev
使用以下命令克隆 WSL2 存储库:git clone https://github.com/microsoft/WSL2-Linux-Kernel.git
将目录更改为 WSL2-Linux-Kernel 文件夹:cd WSL2-Linux-Kernel
通过运行修改内核配置make menuconfig KCONFIG_CONFIG=Microsoft/config-wsl。
然后在此处启用Device Drivers -> USB Support -> USB Serial Converter support您的驱动程序。
y或space两次以确保它们是通过<*>而不是启用的<M>。然后保存并退出menuconfig并覆盖config-wsl。
\n- 您可能不应该使用以下划线点,但它们是前两个点的替代方案 -
\n3. 修改 config-wsl 文件:(nano Microsoft/config-wsl或使用您选择的编辑器)。
\xe2\x80\x8b转到第 2409 行(shift+_,然后是 nano 中的 2409)并替换# CONFIG_USB_SERIAL_CH341 is not set为\n\xe2\x80\x8b- 您可能需要对另一个常见的串行 USB 适配器CONFIG_USB_SERIAL_CH341=y执行相同操作。CONFIG_USB_SERIAL_CP210X
关闭文本编辑器并保存(然后ctrl + x使用nano)。yenter
使用 WSL2 内核配置构建内核:make KCONFIG_CONFIG=Microsoft/config-wsl\n\xe2\x80\x8b- 这可能需要一段时间\n\xe2\x80\x8b- 您可以使用 -j 参数加快速度,但请确保指定一个值,例如-j4
将编译好的内核复制到 Windows 用户目录:cp arch/x86/boot/bzImage /mnt/c/Users/<your-user-name-here>/wsl_kernel
在 Windows 用户目录中创建一个名为 .wslconfig 的文件并将其粘贴到其中:
\n[wsl2]\nkernel = C:\\\\Users\\\\<your-user-name-here>\\\\wsl_kernel\nRun Code Online (Sandbox Code Playgroud)\nwsl --shutdown使用 Windows 命令提示符关闭 WSL 。
打开 WSL 终端,现在您应该能够连接 USB 串行设备,如此处所述。
\n希望一切都能正常工作!\n(使用 Ubuntu WSL2 发行版在 Win10 和 Win11 上进行了测试)
\n| 归档时间: |
|
| 查看次数: |
7369 次 |
| 最近记录: |