Подключение USB-устройств

В этом руководстве описаны действия, необходимые для подключения USB-устройства к дистрибутиву Linux, работающему в WSL 2 с помощью проекта с открытым исходным кодом USB/IP, usbipd-win.

Настройка проекта USB/IP на компьютере Windows позволяет использовать распространенные сценарии USB разработчика, такие как мигание Arduino или доступ к смарт-средству чтения карта.

Необходимые компоненты

  • Под управлением Windows 11 (сборка 22000 или более поздняя версия). (Поддержка Windows 10 возможна, см. примечание ниже).
  • Требуется компьютер с процессором x64. (x86 и Arm64 в настоящее время не поддерживаются с usbipd-win).
  • WSL устанавливается и настраивается с помощью последней версии.
  • Дистрибутив Linux установлен и установлен в WSL 2.

Примечание.

Чтобы проверить версию и номер сборки Windows, нажмите клавиши WINDOWS+R, введите winver и щелкните ОК. Вы можете выполнить обновление до последней версии Windows, выбрав Пуск>Параметры>Центр обновления Windows>Проверить наличие обновлений. Чтобы проверка версию ядра Linux, откройте дистрибутив Linux и введите команду: uname -a Чтобы вручную обновить до последнего ядра, откройте PowerShell и введите команду wsl --update.

Важно!

WSL теперь поддерживает Windows 10 и Windows 11 через Microsoft Store, что означает, что пользователи Windows 10 теперь имеют доступ к последним версиям ядра, не требуя компиляции из источника. Сведения о том, как обновить версию WSL, поддерживаемую магазином Магазина, теперь общедоступна в Windows 10 и 11 . Если вы не можете обновить версию WSL, поддерживаемую Магазином, и автоматически получать обновления ядра, см . в репозитории проекта USBIPD-WIN инструкции по подключению USB-устройств к дистрибутиву Linux, работающему в WSL 2, путем создания собственного ядра WSL 2 с поддержкой USBIP.

Установка проекта USBIPD-WIN

Поддержка подключения USB-устройств изначально недоступна в WSL, поэтому вам потребуется установить проект usbipd-win с открытым исходным кодом.

  1. Перейдите на последнюю страницу выпуска для проекта usbipd-win.
  2. Выберите файл .msi, который скачайте установщик. (Вы можете получить предупреждение с просьбой подтвердить, что вы доверяете этому скачиванию).
  3. Запустите скачанный файл установщика usbipd-win_x.msi.

Примечание.

Кроме того, можно установить проект usbipd-win с помощью Диспетчер пакетов Windows (winget). Если вы уже установили winget, просто используйте команду: winget install --interactive --exact dorssel.usbipd-win чтобы установить usbipd-win. Если вы не используете режим --interactive, winget может немедленно перезагрузить компьютер, если это необходимо для установки драйверов.

Будет установлено:

  • Служба называется usbipd (отображаемое имя: узел устройства USBIP). Вы можете проверка состояние этой службы с помощью приложения "Службы" из Windows.
  • Средство usbipdкомандной строки. Расположение этого средства будет добавлено в переменную среды PATH.
  • Правило брандмауэра, вызываемое usbipd для разрешения подключения ко всей локальной подсети к службе. Это правило брандмауэра можно изменить, чтобы настроить управление доступом.

Подключение USB-устройства

Перед подключением USB-устройства убедитесь, что командная строка WSL открыта. Это приведет к активности упрощенной виртуальной машины WSL 2.

Примечание.

В этом документе предполагается, что установлено usbipd-win 4.0.0 или установлено более поздней версии.

  1. Список всех USB-устройств, подключенных к Windows, откройте PowerShell в режиме администратора и введите следующую команду. После перечисления устройств выберите и скопируйте идентификатор шины устройства, который вы хотите подключить к WSL.

    usbipd list
    
  2. Перед присоединением USB-устройства необходимо использовать команду usbipd bind для совместного использования устройства, что позволяет подключить его к WSL. Для этого требуются права администратора. Выберите идентификатор шины устройства, который вы хотите использовать в WSL, и выполните следующую команду. После выполнения команды убедитесь, что устройство используется повторно с помощью команды usbipd list .

    usbipd bind --busid 4-4
    
  3. Чтобы подключить USB-устройство, выполните следующую команду. (Вам больше не нужно использовать запрос администратора с повышенными привилегиями.) Убедитесь, что командная строка WSL открыта, чтобы обеспечить активную виртуальную машину WSL 2. Обратите внимание, что до тех пор, пока USB-устройство подключено к WSL, оно не может использоваться Windows. После подключения к WSL USB-устройство может использоваться любым дистрибутивом, работающим как WSL 2. Убедитесь, что устройство подключено с помощью usbipd list. В командной строке WSL выполните команду lsusb , чтобы убедиться, что USB-устройство отображается и может взаимодействовать с помощью средств Linux.

    usbipd attach --wsl --busid <busid>
    
  4. Откройте Ubuntu (или предпочтительную командную строку WSL) и перечислите подключенные USB-устройства с помощью команды:

    lsusb
    

    Вы увидите только что подключенное устройство и сможете взаимодействовать с ним с помощью обычных средств Linux. В зависимости от приложения может потребоваться настроить правила udev, чтобы разрешить пользователям, не являющихся корневыми, получать доступ к устройству.

  5. После завершения работы с устройством в WSL можно физически отключить USB-устройство или выполнить следующую команду из PowerShell:

    usbipd detach --busid <busid>
    

Дополнительные сведения о том, как это работает, см. в блоге командной строки Windows и репозитории usbipd-win на GitHub.

Демонстрация видео см. в разделе WSL 2: Подключение USB-устройства (вкладки и шоу Пробелы).