【轉載】WSL 如何連線USB裝置
- 【轉載】WSL 如何連線USB裝置
- 轉載宣告
- 前言
- 先決條件
- 安裝 USBIPD-WIN 專案
- 附加 USB 裝置
轉載宣告
文字轉載自 Microsoft Learn / Windows / 開發環境 / WSL / 如何連線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 更新”>“檢查更新”來更新到最新的 Windows 版本。 若要檢查 Linux 核心版本,請開啟 Linux 發行版並輸入命令:
uname -a
。 若要手動更新到最新核心,請開啟 PowerShell 並輸入命令:“wsl --update”。
重要
WSL 現在透過 Microsoft Store 同時支援 Windows 10 和 Windows 11,這意味著 Windows 10 使用者現在可以訪問最新的核心版本,而無需從源進行編譯。 請參閱 Microsoft Store 中的 WSL 現已在 Windows 10 和 11 上正式釋出,瞭解如何更新到 Store 支援的 WSL 版本。 如果無法更新到 Store 支援的 WSL 版本並自動接收核心更新,請參閱 USBIPD-WIN 專案儲存庫,瞭解如何透過生成自己的已啟用 USBIP 的 WSL 2 核心,將 USB 裝置連線到在 WSL 2 上執行的 Linux 分發版。
安裝 USBIPD-WIN 專案
WSL 本身並不支援連線 USB 裝置,因此你需要安裝開源 usbipd-win 專案。
- 轉到 usbipd-win 專案的最新發布頁。
- 選擇 .msi 檔案,該檔案將下載安裝程式。 (你可能會收到一條警告,要求你確認你信任此下載)。
- 執行下載的 usbipd-win_x.msi 安裝程式檔案。
備註
或者,也可使用 Windows 程式包管理器程式 (winget) 來安裝 usbipd-win 專案。 如果已安裝 winget,只需使用命令
winget install --interactive --exact dorssel.usbipd-win
安裝 usbipd-win 即可。 如果你省略了 --interactive,winget 可能會立即重啟計算機(如果這是安裝驅動程式所必需的操作)。
這將安裝:
- 名為
usbipd
的服務(顯示名稱:USBIP 裝置主機)。 可使用 Windows 中的“服務”應用檢查此服務的狀態。 - 命令列工具
usbipd
。 此工具的位置將新增到 PATH 環境變數。 - 名為
usbipd
的防火牆規則,用於允許所有本地子網連線到服務。 可修改此防火牆規則以微調訪問控制。
附加 USB 裝置
在附加 USB 裝置之前,請確保 WSL 命令列已開啟。 這將使 WSL 2 輕型 VM 保持活動狀態。
備註
此文件假定已安裝 usbipd-win 4.0.0 或更高版本
- 透過以管理員模式開啟 PowerShell 並輸入以下命令,列出所有連線到 Windows 的 USB 裝置。 列出裝置後,選擇並複製要附加到 WSL 的裝置匯流排 ID。
usbipd list
- 在附加 USB 裝置之前,必須使用命令
usbipd bind
來共享裝置,從而允許它附加到 WSL。 這需要管理員許可權。 選擇要在 WSL 中使用的裝置匯流排 ID,然後執行以下命令。 執行命令後,請再次使用命令 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 裝置(製表符與空格顯示)。