Компьютеры · Инструкция
Что делать, если USB после attach не виден в WSL через lsusb
Что делать, если USB после attach не виден в WSL через lsusb — проверить цепочку от Windows до Linux: `usbipd list`, bind, attach и только затем `lsusb`.
Короткий ответ
Сначала проверьте в 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
- Откройте WSL-терминал и оставьте его запущенным. В другой PowerShell выполните `usbipd list` и найдите точный BUSID.
- Если устройство не помечено как shared, в PowerShell администратора выполните `usbipd bind --busid <BUSID>`.
- В обычном PowerShell выполните `usbipd attach --wsl --busid <BUSID>` и снова посмотрите `usbipd list`.
- В WSL выполните `lsusb`. Если устройства нет, проверьте, что дистрибутив работает в WSL 2 через `wsl -l -v`.
- Обновите 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.