【轉載】WSL 如何連線USB裝置

Xsuns發表於2024-04-27

【轉載】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 專案。

  1. 轉到 usbipd-win 專案的最新發布頁
  2. 選擇 .msi 檔案,該檔案將下載安裝程式。 (你可能會收到一條警告,要求你確認你信任此下載)。
  3. 執行下載的 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 或更高版本

  1. 透過以管理員模式開啟 PowerShell 並輸入以下命令,列出所有連線到 Windows 的 USB 裝置。 列出裝置後,選擇並複製要附加到 WSL 的裝置匯流排 ID。
usbipd list
  1. 在附加 USB 裝置之前,必須使用命令 usbipd bind 來共享裝置,從而允許它附加到 WSL。 這需要管理員許可權。 選擇要在 WSL 中使用的裝置匯流排 ID,然後執行以下命令。 執行命令後,請再次使用命令 usbipd list 驗證裝置是否已共享。
usbipd bind --busid 4-4
  1. 若要附加 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 裝置(製表符與空格顯示)

相關文章