Як підключити USB-пристрої в підсистемі Windows для Linux під Windows 11

У підсистемі Windows для Linux під Windows 11 можна підключити USB-пристрої та працювати з ними безпосередньо.

Швидкі посилання

  • Що таке 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, необхідні параметри налаштовані з коробки, тому ручна повторна компіляція не потрібна. Корпорація Майкрософт також внесла в проект інтерфейс командного рядка, щоб увімкнути 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 проекту 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 спробувати. Це неофіційна оболонка графічного інтерфейсу навколо двійкового файлу 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 Some_Random_Username за чайові!