WSL: как установить группу для tty-устройства

Я запускаю usbipd в Windows 11, чтобы USB-устройства могли подключаться к WSL. Это работает. Я могу запустить свое последовательное приложение от имени пользователя root, и оно отлично работает. Я бы предпочел не запускать свое приложение как root. Мой пользователь находится в групповом дозвоне (и телетайпе).

Я не могу заставить группу последовательного порта FTDI измениться с root:

      :~$ ls /dev/ttyUS* -Al
crw------- 1 root root 188, 0 May 13 08:07 /dev/ttyUSB0

Обратите внимание, что это группа 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

Я установил правило udev в /etc/udev/rules.d/99-usb-serial.rules:

      ACTION=="add", SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", GROUP:="dialout", MODE:="0666"

У меня есть ощущение, что мои правила udev неверны, но я огляделся и не могу понять, что может быть не так. Мой метод проверки изменений:

  1. внести изменения в правила udev
  2. закройте терминал Ubuntu, в Windows введите wsl --shutdown
  3. Откройте терминал Ubuntu
  4. в windows введите usbipd wsl attach --busid 10-3
    • (устройство подключается, Windows издает шум при этом)
  5. ls /dev и проверьте пользователя и разрешения
      ~$ sudo journalctl -b 0 /dev/ttyUSB1
No journal files were found.
-- No entries --

2 ответа

Вот мой рецепт, чтобы включить изменение разрешений USB-устройства (плата RP2040 pico dev через/dev/ttyACM0или Wemos D1 mini на ) подключен черезusbipdна WSL (работает по крайней мере с дистрибутивами Ubuntu/Debian).

По умолчанию Systemd не запускается при запуске WSL. Перейдя по этой ссылке , я изменил/etc/wsl.confдобавлением:

      [boot]
systemd=true

Затем остановил WSL (wsl --shutdown) и перезапустил.

После подключения устройства через usbipd (usbipd wsl attach --busid XXX), соответствующее устройство (/dev/ttyUSB0) становятся доступными сgroup="dialout"и+rwразрешения.

Мне удалось получить правила для обновления разрешений, создав файл /etc/udev/rules.d/99-usb.devices.rules

      ACTION!="add|change", GOTO="usb_device_rules_end"
SUBSYSTEM!="usb|tty|hidraw", GOTO="usb_device_rules_end"

#ESP32 WOOT Dev Board (Silicon Labs CP210x USB to UART Bridge)
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE="660", GROUP="plugdev", TAG+="uaccess"

LABEL="usb_device_rules_end"

потом я побежал sudo udevadm control --reload

Это мог быть отсутствующий идентификатор продукта?

Другие вопросы по тегам