USB-устройства можно подключать в подсистеме Windows для Linux под Windows 11 и работать с ними напрямую.
Быстрые ссылки
- Что такое usbipd-win?
- Подключение USB-устройств в подсистеме Windows для Linux
- Есть ли альтернатива графическому интерфейсу?
Microsoft представила Подсистема Windows для Linux (WSL) некоторое время назад, что обеспечило поддержку запуска приложений Linux прямо из вашей установки Windows без необходимости настраивать виртуальную машину. Будучи таким сложным уровнем совместимости, WSL имел некоторые ограничения. В первоначальной реализации даже не использовалось полноценное ядро Linux, поэтому некоторые приложения столкнулись с проблемами совместимости. В версии 2 было внесено множество улучшений, но чего-то все же не хватало: поддержки подключения физических USB-устройств.
Если вы являетесь активным пользователем подсистемы Windows для Linux и хотите получить доступ к USB-устройствам прямо из экземпляра Linux, работающего под управлением WSL, вам будет приятно узнать, что
значительный прогресс на этом фронте. Благодаря вкладу Microsoft в открытый исходный код usbipd-выигрыш Project, теперь вы можете пользоваться сквозным доступом через USB в WSL. Это означает, что конечные пользователи могут выполнять такие задачи, как перепрошивка устройств Android в подсистеме Windows для Linux, которые иначе не поддерживаются подсистемой Linux.Что такое usbipd-win?
Проект usbipd-win посвящен созданию решения для совместного использования локально подключенных USB-устройств с другими машинами, включая гостевые системы Hyper-V и WSL2. Однако в официальном ядре WSL2 Linux раньше не было поддержки USB/IP-протокол, требуя от пользователей самостоятельной сборки ядра.
Начиная с версии ядра WSL 5.10.60.1 необходимые параметры настраиваются «из коробки», поэтому перекомпиляция вручную не требуется. Microsoft также добавила в проект интерфейс командной строки, позволяющий использовать USB-устройство для совместного использования в Windows и беспрепятственно подключать его из WSL.
Подключение USB-устройств в подсистеме Windows для Linux
Прежде чем начать, убедитесь, что вы работаете Windows 11 и установил все обновления WSL. Как упоминалось ранее, для этого вам нужен дистрибутив WSL 2 Linux.
- Запустите следующую команду из WSL:
Если он показывает версию ядра 5.10.60.1 или более позднюю (как показано ниже), то все в порядке.uname -a
- Если установленная версия ядра старше 5.10.60.1, то ее можно обновить с помощью следующих команд:
wsl --shutdown
wsl --update
- Если установленная версия ядра старше 5.10.60.1, то ее можно обновить с помощью следующих команд:
- Перейдите к репозиторию GitHub проекта usbipd-win. Затем скачать и установить последнюю версию.
- Последняя версия usbipd-win поддерживает автоматическую установку драйверов благодаря драйверам, сертифицированным Программой совместимости оборудования Windows. Он также поддерживает Сборки канала разработки Windows 11.
- Помимо страницы выпуска на GitHub, вы можете установить и обновить приложение, используя Интерфейс командной строки диспетчера пакетов Windows (он же вингет).
winget install--interactive --exact dorssel.usbipd-win
- Установите инструменты пользовательского пространства для USB/IP и базу данных идентификаторов оборудования USB. Если вы используете Ubuntu на WSL, выполните следующие команды:
sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20- Вы можете выбрать различные метапакеты (например,
linux-tools-generic
) также, в зависимости от установленного дистрибутива. Однако на следующем шаге вам может потребоваться настроить переменную пути в соответствии с номером версии метапакета. - Для других дистрибутивов обратитесь к документации соответствующего инструмента управления пакетами.
- Вы можете выбрать различные метапакеты (например,
- Если символическая ссылка, созданная с помощью
update-alternatives
команда на предыдущем шаге не сработала для вас, вы можете вручную изменить параметры sudo, чтобы пользователь root мог найтиusbip
команда. Для этого отредактируйте/etc/sudoers
файл с использованиемsudo visudo
и добавить/usr/lib/linux-tools/
к началу-generic secure_path
. Это должно выглядеть следующим образом:Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
- Откройте новый экземпляр терминала в качестве администратора и введите следующую команду, чтобы вывести список всех USB-устройств, подключенных к Windows.
usbipd wsl list
- Запишите значение BUSID USB-устройства, которое вы хотите подключить к WSL. Затем выполните следующую команду, чтобы инициировать процесс вложения. WSL запросит у вас пароль для запуска команды sudo.
Например, здесь мы подключаем интерфейс Fastboot устройства Android к WSL из хост-экземпляра Windows 11:usbipd wsl attach --busid <busid>
- Теперь откройте новый экземпляр WSL 2 и запустите
lsusb
Команда для просмотра доступных USB-устройств. В нем должно быть указано подключенное устройство (устройства). - Вот и все! Теперь вы можете работать со своим USB-устройством прямо из WSL.
Когда вы закончите, вы можете отсоединить устройство, используя команду, показанную ниже. Еще раз запустите его из экземпляра терминала, работающего от имени администратора.
usbipd wsl detach --busid <busid>
Есть ли альтернатива графическому интерфейсу?
Если интерфейс командной строки не является вашей сильной стороной, вы можете дать wsl-usb-интерфейс попытка. Это неофициальная оболочка с графическим интерфейсом для бинарного файла usbipd-win, которая значительно упрощает список USB-устройств и взаимодействие между хост-ОС и экземпляром WSL.
- Убедитесь, что установлена последняя версия usbipd-win и обновлено ядро WSL.
- Загрузите последнюю версию установщика wsl-usb-gui со страницы релизов проекта GitLab.
- Запустите загруженный файл MSI.
- Перед установкой программы установщик также проверяет наличие предварительных условий и пытается их настроить при необходимости. Однако было бы лучше обновлять все самостоятельно, чтобы избежать непредвиденных проблем с совместимостью.
- После успешной установки вы сможете найти только что созданный ярлык с именем WSL-USB в меню «Пуск». Запустите приложение оттуда.
- Нажать на Обновить кнопку, чтобы заполнить список USB-устройств, подключенных к основной ОС.
- Использовать Прикреплять и Отсоединить кнопки, чтобы раскрыть весь потенциал сквозного подключения USB.
С этого момента вы готовы идти вперед и возиться со всеми вашими USB-устройствами, которые вы хотите в WSL. Наше полное руководство поможет вам в этом, но как только сквозной порт USB настроен так, как вам нравится, он просто отходит на второй план. Чтобы узнать больше, взгляните на Официальная документация Microsoft по подключению USB-устройств по WSL и Раздел Wiki usbipd-win на GitHub.
Благодаря старшему члену XDA Some_Random_Username за совет!