Mik*_*ike 7 permissions usb udev windows-subsystem-for-linux
我在 Windows 11 上运行 usbipd 以使 USB 设备能够连接到 WSL。这有效。我可以以 root 身份运行我的串行应用程序,并且工作正常。我宁愿不以 root 身份运行我的应用程序。我的用户在组 dialout(和 tty)中。
我无法从 root 更改 FTDI 串行端口组:
:~$ ls /dev/ttyUS* -Al
crw------- 1 root root 188, 0 May 13 08:07 /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)
注意组是root,权限是188。 lsusb:
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Run Code Online (Sandbox Code Playgroud)
我在 /etc/udev/rules.d/99-usb-serial.rules 中设置了 udev 规则:
ACTION=="add", SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", GROUP:="dialout", MODE:="0666"
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,我的 udev 规则不正确,但我环顾四周,无法弄清楚可能出了什么问题。我测试更改的方法:
~$ sudo journalctl -b 0 /dev/ttyUSB1
No journal files were found.
-- No entries --
Run Code Online (Sandbox Code Playgroud)
小智 6
以下是我的方法,用于启用通过 WSL 连接的 USB 设备(通过 RP2040 pico 开发板/dev/ttyACM0或 Wemos D1 mini /dev/ttyUSB0)的权限修改usbipd(至少适用于 Ubuntu/Debian 发行版)。
默认情况下,Systemd 似乎不会在 WSL 启动时启动。通过点击此链接,我/etc/wsl.conf通过添加进行了修改:
[boot]
systemd=true
Run Code Online (Sandbox Code Playgroud)
然后停止 WSL ( wsl --shutdown) 并重新启动。
通过 usbipd ( ) 连接设备后usbipd wsl attach --busid XXX,相应的设备 ( ) 即可通过和权限/dev/ttyUSB0进行访问。group="dialout"+rw