n1ro°
RU

Компьютеры · Инструкция

Что делать, если USB после attach не виден в WSL через lsusb

Что делать, если USB после attach не виден в WSL через lsusb — проверить цепочку от Windows до Linux: `usbipd list`, bind, attach и только затем `lsusb`.

Редакция N1RO · Проверено

Короткий ответ

Сначала проверьте в Windows `usbipd list`: устройство должно быть shared/attached к WSL, затем в Linux выполните `lsusb`. Если его нет, проверьте WSL 2, актуальное ядро и повторите bind/attach с правильным BUSID при открытой WSL-сессии.

Где может потеряться USB между Windows и WSL

Microsoft описывает USB-подключение к WSL через проект usbipd-win: сначала Windows видит устройство, затем администратор выполняет `usbipd bind`, после чего обычная консоль может сделать `usbipd attach --wsl --busid ..`. WSL-консоль рекомендуют держать открытой, чтобы лёгкая VM оставалась активной. После attach устройство должно появиться в `lsusb`; доступ конкретной программы может потребовать udev-правил, но это уже следующий этап.

Совет: Сверяйте статус в `usbipd list` до и после каждой команды — так видно, на каком именно шаге цепочка обрывается.

Проверка bind → attach → lsusb

  1. Откройте WSL-терминал и оставьте его запущенным. В другой PowerShell выполните `usbipd list` и найдите точный BUSID.
  2. Если устройство не помечено как shared, в PowerShell администратора выполните `usbipd bind --busid <BUSID>`.
  3. В обычном PowerShell выполните `usbipd attach --wsl --busid <BUSID>` и снова посмотрите `usbipd list`.
  4. В WSL выполните `lsusb`. Если устройства нет, проверьте, что дистрибутив работает в WSL 2 через `wsl -l -v`.
  5. Обновите WSL через `wsl --update`, если ядро старое, затем повторите attach; после появления устройства отдельно настраивайте права приложения.

Предупреждение: Не запускайте неизвестные команды с правами администратора для USB-драйверов, пока штатный usbipd показывает понятный статус устройства.

Как отделить attach от udev-проблемы

  • BUSID соответствует физическому устройству, а не соседнему USB-интерфейсу.
  • Статус `usbipd list` изменился после bind и attach.
  • Проблемный дистрибутив работает в WSL 2.
  • `lsusb` видит устройство до запуска специализированной программы.

Важно: Критерий результата: Устройство появляется в `lsusb`; после этого дальнейшая ошибка локализована на уровне Linux-драйвера или прав, а не usbipd attach.

BUSID, WSL 2 и владение устройством

Пока USB прикреплено к WSL, Windows не может одновременно использовать его как обычное локальное устройство. Если `lsusb` видит устройство, а программа — нет, проблема уже не в attach: проверьте udev, группу пользователя и права на device node. При переподключении USB BUSID может измениться, поэтому не храните старое значение как вечную константу. После `usbipd attach --wsl --busid <BUSID>` не закрывайте все WSL-окна до проверки устройства. Сначала сравните описание устройства в `usbipd list` и строку `lsusb`, чтобы не диагностировать не тот USB-девайс. Если после detach/переподключения BUSID изменился, заново возьмите его из списка. Когда `lsusb` устройство уже показывает, повторный bind обычно не решает проблему доступа приложения к device node.

Что должно быть видно на каждом этапе

Контроль идёт в двух окнах: в Windows `usbipd list` должен показывать attached, а в WSL `lsusb` — само устройство. Если первый этап не выполнен, повторите bind/attach с актуальным BUSID; если второй выполнен, но приложение не видит устройство, переходите к udev и правам пользователя. Так вы не смешиваете транспортную проблему с Linux-доступом.

Что учитывать

Условия меняются. Страница отражает состояние на 2026-09-22; при расхождении с официальной документацией приоритет у первоисточника.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Connect USB devices). Пример и формулировки — редакция N1RO на 2026-09-22.