У підсистемі 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, щоб це працювало.
- Виконайте таку команду з 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 Package Manager CLI (він же крило).
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>
Чи є альтернатива GUI?
Якщо інтерфейс командного рядка не є вашою сильною стороною, ви можете дати wsl-usb-gui спробувати. Це неофіційна оболонка графічного інтерфейсу навколо двійкового файлу usbipd-win, яка значно спрощує перелік USB-пристроїв і взаємодію між головною ОС та примірником WSL.
- Переконайтеся, що встановлено останню версію usbipd-win, а ядро WSL оновлено.
- Завантажте найновіший інсталятор wsl-usb-gui зі сторінки випусків проекту GitLab.
- Запустіть завантажений файл MSI.
- Перед інсталяцією програми інсталятор також перевіряє наявність попередніх умов і за потреби намагається їх налаштувати. Однак було б краще оновлювати все самостійно, щоб уникнути непередбачених проблем із сумісністю.
- Після успішного встановлення ви зможете знайти щойно створений ярлик під назвою WSL USB у меню Пуск. Запустіть програму звідти.
- Натисніть на Оновити кнопку для заповнення списку USB-пристроїв, підключених до головної ОС.
- Використовувати Прикріпити і Від'єднати кнопки, щоб розкрити весь потенціал наскрізного USB.
З цього моменту ви готові йти вперед і возитися з усіма своїми USB-пристроями, які вам потрібні, у WSL. Наш повний посібник допоможе вам у цьому, але як тільки передача USB налаштована так, як вам подобається, вона просто відходить на задній план. Щоб дізнатися більше, перегляньте Офіційна документація Microsoft щодо підключення пристроїв USB під WSL і Розділ GitHub Wiki usbipd-win.
Дякуємо старшому члену XDA Some_Random_Username за чайові!