Je možné připojit USB zařízení ve Windows Subsystem for Linux pod Windows 11 a pracovat s nimi přímo.
Rychlé odkazy
- Co je usbipd-win?
- Připojte USB zařízení pod Windows Subsystem for Linux
- Existuje nějaká alternativa GUI?
Microsoft představil Subsystém Windows pro Linux (WSL), což přineslo podporu pro spouštění aplikací pro Linux přímo z instalace Windows bez nutnosti nastavení virtuálního počítače. Jelikož je WSL tak složitou vrstvou kompatibility, měla určitá omezení. Počáteční implementace dokonce nepoužívala plnohodnotné linuxové jádro, takže několik aplikací čelilo problémům s kompatibilitou. Verze 2 přinesla spoustu vylepšení, ale něco stále chybělo: podpora pro připojení fyzických USB zařízení.
Pokud jste aktivním uživatelem Windows Subsystému pro Linux a chcete přistupovat k USB zařízením přímo z linuxové instance běžící pod WSL, pak budete rádi, když víte, že došlo k významný pokrok na této frontě. Díky příspěvkům Microsoftu k open-source usbipd-win projektu, můžete nyní využívat USB pass-through přístup ve WSL. Znamená to, že koncoví uživatelé mohou provádět úkoly, jako je flashování zařízení Android pod Windows Subsystem for Linux, které jinak nejsou podporovány podsystémem Linux.
Co je usbipd-win?
Projekt usbipd-win je o vytvoření řešení pro sdílení místně připojených zařízení USB s jinými stroji, včetně hostů Hyper-V a WSL2. Oficiální linuxové jádro WSL2 však dříve postrádalo podporu pro USB/IP protokol, což vyžaduje, aby si uživatelé sestavili jádro sami.
Od verze jádra WSL 5.10.60.1 jsou požadované parametry konfigurovány přímo z krabice, takže není potřeba žádná ruční rekompilace. Společnost Microsoft také přispěla k projektu rozhraním příkazového řádku, které umožňuje sdílení zařízení USB v systému Windows a bezproblémové připojení z WSL.
Připojte USB zařízení pod Windows Subsystem for Linux
Než začnete, ujistěte se, že běžíte Windows 11 a nainstalovali jste všechny aktualizace WSL. Jak již bylo zmíněno dříve, potřebujete distribuci WSL 2 Linux, aby to fungovalo.
- Spusťte následující příkaz z WSL:
Pokud se zobrazuje verze jádra 5.10.60.1 nebo novější (jak je uvedeno níže), můžete začít.uname -a
- Pokud je nainstalovaná verze jádra starší než 5.10.60.1, lze ji aktualizovat pomocí následujících příkazů:
wsl --shutdown
wsl --update
- Pokud je nainstalovaná verze jádra starší než 5.10.60.1, lze ji aktualizovat pomocí následujících příkazů:
- Přejděte na repozitář GitHub projektu usbipd-win. Pak stáhnout a nainstalovat nejnovější verzi.
- Nejnovější verze usbipd-win podporuje tichou instalaci ovladače díky certifikovaným ovladačům Windows Hardware Compatibility Program. Také podporuje Sestavení kanálu pro vývojáře systému Windows 11.
- Kromě stránky vydání na GitHubu můžete aplikaci nainstalovat a aktualizovat pomocí Windows Package Manager CLI (aka winget).
winget install--interactive --exact dorssel.usbipd-win
- Nainstalujte nástroje uživatelského prostoru pro USB/IP a databázi hardwarových identifikátorů USB. Pokud používáte Ubuntu na WSL, proveďte následující příkazy:
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- Můžete se rozhodnout pro různé meta balíčky (např.
linux-tools-generic
) také v závislosti na nainstalované distribuci. Možná však budete muset v dalším kroku upravit proměnnou path podle čísla verze meta balíčku. - Pro ostatní distribuce nahlédněte do dokumentace příslušného nástroje pro správu balíčků.
- Můžete se rozhodnout pro různé meta balíčky (např.
- V případě, že symbolický odkaz vytvořený pomocí
update-alternatives
příkaz v předchozím kroku pro vás nefungoval, můžete ručně upravit možnosti sudo tak, aby uživatel root mohl najítusbip
příkaz. Chcete-li tak učinit, upravte soubor/etc/sudoers
pomocí souborusudo visudo
a přidat/usr/lib/linux-tools/
do začátku-generic secure_path
. Mělo by to vypadat následovně:Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
- Otevřete novou instanci terminálu jako správce a zadejte následující příkaz pro zobrazení seznamu všech zařízení USB připojených k systému Windows.
usbipd wsl list
- Poznamenejte si hodnotu BUSID zařízení USB, které chcete připojit k WSL. Poté spusťte následující příkaz, abyste zahájili proces připojení. WSL vás vyzve k zadání hesla pro spuštění příkazu sudo.
Zde například připojujeme rozhraní Fastboot zařízení Android k WSL z hostitelské instance Windows 11:usbipd wsl attach --busid <busid>
- Nyní otevřete novou instanci WSL 2 a spusťte
lsusb
pro zobrazení dostupných USB zařízení. Měl by obsahovat seznam připojených zařízení. - A je to! Nyní můžete pracovat se svým USB zařízením přímo z WSL.
Až budete hotovi, můžete zařízení odpojit pomocí příkazu uvedeného níže. Znovu jej spusťte z instance Terminálu spuštěné jako správce.
usbipd wsl detach --busid <busid>
Existuje nějaká alternativa GUI?
V případě, že rozhraní příkazového řádku není vaší silnou stránkou, můžete dát wsl-usb-gui pokus. Je to neoficiální obal GUI kolem binárního souboru usbipd-win, který výrazně zjednodušuje seznam zařízení USB a interoperabilitu mezi hostitelským OS a instancí WSL.
- Ujistěte se, že je nainstalována nejnovější verze usbipd-win a že jádro WSL je aktuální.
- Stáhněte si nejnovější instalační program wsl-usb-gui ze stránky vydání projektu GitLab.
- Spusťte stažený soubor MSI.
- Před instalací programu instalační program také zkontroluje předpoklady a v případě potřeby se je pokusí nastavit. Bylo by však lepší si vše aktualizovat sami, abyste se vyhnuli nepředvídaným problémům s kompatibilitou.
- Po úspěšné instalaci byste měli být schopni najít nově vytvořeného zástupce s názvem WSL USB v nabídce Start. Spusťte aplikaci odtud.
- Klikněte na Obnovit k vyplnění seznamu USB zařízení připojených k hostitelskému OS.
- Použijte Připojit a Odpojit tlačítka pro uvolnění plného potenciálu USB pass-through.
Od této chvíle jste připraveni vyrazit a pohrát si se všemi svými USB zařízeními, která chcete ve WSL. Náš úplný průvodce vám pomůže na cestě, ale jakmile je průchod USB nastaven tak, jak se vám líbí, prostě zmizí do pozadí. Chcete-li se dozvědět více, podívejte se na Oficiální dokumentace společnosti Microsoft o připojení zařízení USB pod WSL a GitHub Wiki sekce usbipd-win.
Díky XDA Senior Member Some_Random_Username za tip!