Как да свържете USB устройства в Windows Subsystem за Linux под Windows 11

Възможно е да свържете USB устройства в Windows Subsystem за Linux под Windows 11 и да работите директно с тях.

бързи връзки

  • Какво е usbipd-win?
  • Свържете USB устройства под Windows подсистема за Linux
  • Има ли алтернатива на GUI?

Microsoft представи Подсистема Windows за Linux (WSL) преди известно време, което донесе поддръжка за стартиране на Linux приложения направо от вашата инсталация на Windows, без да е необходимо да настройвате виртуална машина. Като такъв сложен слой за съвместимост, WSL имаше някои ограничения. Първоначалното внедряване дори не използваше пълноценно Linux ядро, така че няколко приложения се сблъскаха с проблеми със съвместимостта. Версия 2 направи много подобрения, но нещо все още липсваше: поддръжка за свързване на физически USB устройства.

Ако сте активен потребител на Windows подсистема за Linux и искате да имате достъп до USB устройства направо от екземпляра на Linux, работещ под WSL, тогава ще се радвате да знаете, че е имало значителен напредък на този фронт. Благодарение на приноса на Microsoft към отворения код

usbipd-win проект, сега можете да се насладите на 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 дистрибуция, за да работи това.

  1. Изпълнете следната команда от WSL:
    uname -a
    Ако показва версия на ядрото 5.10.60.1 или по-нова (както е показано по-долу), значи сте готови.
    • Ако инсталираната версия на ядрото е по-стара от 5.10.60.1, тогава тя може да бъде актуализирана с помощта на следните команди:
      wsl --shutdown
      wsl --update
  2. Преминете към GitHub repo на проекта usbipd-win. Тогава изтеглете и инсталирайте най-новата версия.
    • Най-новата версия на usbipd-win поддържа тихо инсталиране на драйвери, благодарение на сертифицираните драйвери от Програмата за хардуерна съвместимост на Windows. Също така поддържа Изграждане на канал за разработчици на Windows 11.
    • В допълнение към страницата за пускане в GitHub, можете да инсталирате и актуализирате приложението, като използвате Windows Package Manager CLI (известен още като крило).
      winget install--interactive --exact dorssel.usbipd-win
  3. Инсталирайте инструментите за потребителско пространство за 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), както и в зависимост от инсталираната дистрибуция. Въпреки това може да се наложи да коригирате променливата на пътя в следващата стъпка, според номера на версията на метапакета.
    • За други дистрибуции вижте документацията на съответния инструмент за управление на пакети.
  4. В случай, че символната връзка, създадена с помощта на 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:..."
  5. Отворете нов екземпляр на терминала като администратор и въведете следната команда, за да изброите всички USB устройства, свързани към Windows.
    usbipd wsl list
  6. Запишете стойността на BUSID на USB устройството, което искате да прикачите към WSL. След това изпълнете следната команда, за да започнете процеса на прикачване. Ще бъдете подканени от WSL за парола, за да изпълните sudo команда.
    usbipd wsl attach --busid <busid>
    Например, тук прикачваме Fastboot интерфейс на устройство с Android към WSL от хост Windows 11 екземпляр:
  7. Сега отворете нов екземпляр на WSL 2 и стартирайте lsusb команда, за да видите наличните USB устройства. Той трябва да изброява прикачените устройства.
  8. Това е! Вече можете да работите с вашето USB устройство направо от WSL.

Когато сте готови, можете да отделите устройството, като използвате командата, показана по-долу. Още веднъж го стартирайте от екземпляр на терминал, работещ като администратор.

usbipd wsl detach --busid <busid>

Има ли алтернатива на GUI?

В случай, че интерфейсът на командния ред не е вашата силна страна, можете да дадете wsl-usb-gui опит. Това е неофициална GUI обвивка около двоичния файл usbipd-win, който значително опростява списъка с USB устройства и оперативната съвместимост между хост ОС и екземпляра на WSL.

  1. Уверете се, че най-новата версия на usbipd-win е инсталирана и WSL ядрото е актуално.
  2. Изтеглете най-новата инсталационна програма на wsl-usb-gui от страницата за издания на GitLab на проекта.
  3. Стартирайте MSI файла, който сте изтеглили.
    • Преди да инсталира програмата, инсталаторът също така проверява за предпоставките и се опитва да ги настрои, ако е необходимо. Въпреки това би било по-добре да поддържате всичко актуализирано сами, за да избегнете непредвидени проблеми със съвместимостта.
  4. При успешна инсталация трябва да можете да намерите новосъздадения пряк път с име WSL USB в менюто "Старт". Стартирайте приложението от там.
  5. Кликнете върху Опресняване бутон за попълване на списъка с USB устройства, свързани към хост ОС.
  6. Използвай Прикрепете и Отделяне бутони, за да разгърнете пълния потенциал на USB преминаването.

Оттук нататък вие сте готови да продължите напред и да бърникате с всичките си USB устройства, които искате в WSL. Нашето пълно ръководство ще ви помогне по пътя, но след като USB преминаването е настроено както ви харесва, то просто изчезва на заден план. За да научите повече, разгледайте Официалната документация на Microsoft за свързване на USB устройства под WSL и GitHub Wiki секцията на usbipd-win.

Благодарение на XDA Senior Member Some_Random_Username за върха!