連線 USB 裝置
本指南將逐步解說使用 USB/IP 開放原始碼專案 usbipd-win,將 USB 裝置連線至執行於 WSL 2 上 Linux 發行版本所需的步驟。
在您的 Windows 電腦上設定 USB/IP 專案,可啟用常見的開發人員 USB 案例,例如快閃儲存 Arduino 或存取智慧卡讀卡機。
- 執行 Windows 11 (組建 22000 或更新版本)。 (可支援 Windows 10,請參閱下方附註)。
- 需要具有 x64 處理器的電腦。 (x86 和 Arm64 目前不支援 usbipd-win)。
- WSL 已安裝 並使用最新版本進行設定。
- 已安裝 Linux 發行版本並設定為 WSL 2。
注意
若要檢查您的 Windows 版本及組建號碼,請選取 [Windows 標誌鍵 + R]、輸入 winver,然後選取 [確定]。 您可以選取 [開始]>[設定]>[Windows Update]>[檢查更新],以更新至最新的 Windows 版本。
若要檢查 Linux 核心版本,請開啟您的 Linux 發行版本,然後輸入命令:uname -a
。 若要手動更新至最新的核心,請開啟 PowerShell 並輸入命令: wsl --update
。
重要
WSL 現在透過 Microsoft 市集同時支援 Windows 10 和 Windows 11,這表示 Windows 10 用戶現在可以存取最新的核心版本,而不需要從來源編譯。 如需如何更新至市集支援 WSL 版本的資訊,請參閱 windows 10 和 11 上現已正式推出 Microsoft 市集中的 WSL。 如果您無法更新為市集支援的 WSL 版本並自動接收核心更新,請參閱 USBIPD-WIN 專案存放庫 ,以取得將 USB 裝置連線到 WSL 2 上執行的 Linux 散發套件的指示,方法是建置您自己的已啟用 USBIP 的 WSL 2 核心。
不支援在 WSL 中原生使用連線 USB 裝置,因此您必須安裝開放原始碼 usbipd-win 專案。
核心需求
若要搭配使用 USBIPD 搭配 Windows 子系統 Linux 版 (WSL),您必須擁有 5.10.60.1 或更高版本的 Linux 核心版本。 如果已安裝的核心版本早於 5.10.60.1,則可以先使用 關閉任何執行中的 WSL wsl --shutdown
實例來更新它,然後執行命令: wsl --update
。
在 WSL 上安裝 USBIPD
- 移至 usbipd-win 專案的最新版本頁面。
- 選取將下載安裝程式的 .msi 檔案。 (您可能會收到警告,要求您確認您信任此下載)。
- 執行下載的 usbipd-win_x.msi 安裝程式檔案。
注意
或者,您也可以使用 Windows 封裝管理員 (winget) 來安裝 usbipd-win 專案。 如果您已安裝 winget,只要使用命令 winget install --interactive --exact dorssel.usbipd-win
即可安裝 usbipd-win。 如果您不考慮互動式,則如果需要安裝驅動程式,winget 可能會立即重新啟動電腦。
這將會安裝:
- 名為
usbipd
的服務 (顯示名稱:USBIP 裝置主機)。 您可以使用 Windows 的服務應用程式來檢查此服務的狀態。
- 命令列工具
usbipd
。 此工具的位置將會新增至 PATH 環境變數。
- 稱為
usbipd
的防火牆規則,可允許所有本機子網連線至服務。 您可以修改此防火牆規則來微調存取控制。
附加 USB 裝置之前,請確定 WSL 命令列已開啟。 這會讓 WSL 2 輕量型 VM 保持作用中。
以系統管理員模式開啟 PowerShell 並輸入下列命令,列出所有連線到 Windows 的 USB 裝置。 列出裝置之後,請選取並複製您想要連結至 WSL 之裝置的總線標識碼。
usbipd list
在連接 USB 裝置之前, usbipd bind
命令必須用來共用裝置,讓它能夠連接到 WSL。 這需要系統管理員許可權。 選取您想要在 WSL 中使用的裝置總線標識碼,然後執行下列命令。 執行命令之後,請再次使用 命令 usbipd list
確認裝置已共用。
usbipd bind --busid 4-4
若要連接 USB 裝置,請執行下列命令。 (您不再需要使用提升許可權的系統管理員提示。)確定已開啟 WSL 命令提示字元,讓 WSL 2 輕量型 VM 保持作用中。 請注意,只要USB裝置連接到WSL,Windows 就無法使用它。 連結至 WSL 之後,任何以 WSL 2 身分執行的散發,都可以使用 USB 裝置。 確認裝置已使用 usbipd list
連接。 從 WSL 提示字元中,執行 lsusb
以確認 USB 裝置已列出,而且可以使用 Linux 工具進行互動。
usbipd attach --wsl --busid <busid>
開啟 Ubuntu (或您慣用的 WSL 命令列),並使用命令列出附加的 USB 裝置:
lsusb
您應該會看到您剛才附加的裝置,且能夠使用一般 Linux 工具與其互動。 視您的應用程式而定,您可能需要設定 udev 規則,以允許非根使用者存取裝置。
在 WSL 中使用裝置之後,您可以實際中斷 USB 裝置的連線,或從 PowerShell 執行此命令:
usbipd detach --busid <busid>
若要深入了解其運作方式,請參閱 Windows 命令列部落格和 GitHub 上的 usbipd-win 存放庫。
如需影片示範,請參閱 WSL 2:連線 USB 裝置 (分頁與空間展示)。