共用方式為


連接 USB 裝置

本指南將逐步解說使用USB/IP開放原始碼專案 usbipd-win,將USB裝置連線到WSL 2上執行的Linux散發套件所需的步驟。

在您的 Windows 電腦上設定 USB/IP 專案,可啟用常見的開發人員 USB 案例,例如閃爍 Arduino 或存取智慧卡讀取器。

先決條件

  • 執行 Windows 11(版本 22000 或更高)。 (Windows 10 支援可行,請參閱下方附注)。
  • 需要具有 x64 或 ARM64 處理器的機器。 (usbipd-win 目前不支援 x86)。
  • WSL 已安裝 並使用最新版本進行設定
  • 已安裝並 設定為 WSL 2 的 Linux 發行版。

備註

若要檢查您的 Windows 版本和組建編號,請選取 [Windows 標誌鍵 + R],輸入 winver,選取 [ 確定]。 您可以選取 [ 開始>設定>][Windows Update>檢查是否有更新],以更新至最新的 Windows 版本。 若要檢查 Linux 核心版本,請開啟您的 Linux 發行版,然後輸入命令: uname -a。 若要手動更新至最新的核心,請開啟 PowerShell 並輸入命令: wsl --update

這很重要

WSL 現在透過 Microsoft 市集同時支援 Windows 10 和 Windows 11,這表示 Windows 10 用戶現在可以存取最新的核心版本,而不需要從來源編譯。 如需如何更新至 Microsoft 市集支援的 WSL 版本的資訊,請參閱 Windows 10 和 11 上的 WSL 現在已普遍可用。 如果您無法更新為商店支援的 WSL 版本並自動接收內核更新,請參閱 USBIPD-WIN 專案存放庫,以取得將 USB 裝置連線到在 WSL 2 上執行的 Linux 散發套件的指示,方法是建置您自己的 USBIP 啟用的 WSL 2 內核。

安裝 USBIPD-WIN 專案

WSL 原生不支援 USB 裝置連線,因此您需要安裝開放原始碼的 usbipd-win 專案。

核心需求

若要搭配適用於 Linux 的 Windows 子系統使用 USBIPD(WSL),您必須擁有 5.10.60.1 或更高版本的 Linux 核心版本。 如果已安裝的核心版本早於 5.10.60.1,則可以先使用 關閉任何執行中的 WSL wsl --shutdown實例來更新它,然後執行命令: wsl --update

在 WSL 上安裝 USBIPD

  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 5.0.0或更新版本

  1. 系統管理員 模式開啟 PowerShell 並輸入下列命令,列出所有連線到 Windows 的 USB 裝置。 列出裝置之後,請選取並複製您想要連結至 WSL 之裝置的總線標識碼。

    usbipd list
    
  2. 在連接 USB 裝置之前, usbipd bind 命令必須用來共用裝置,讓它能夠連接到 WSL。 這需要系統管理員許可權。 選取您想要在 WSL 中使用的裝置總線標識碼,然後執行下列命令。 執行命令之後,請再次使用 命令 usbipd list 確認裝置已共用。

    usbipd bind --busid 4-4
    
  3. 若要連接 USB 裝置,請執行下列命令。 (您不再需要使用提升許可權的系統管理員提示。)確定已開啟 WSL 命令提示字元,讓 WSL 2 輕量型 VM 保持作用中。 請注意,只要USB裝置連接到WSL,Windows 就無法使用它。 當 USB 裝置連接至 WSL 後,任何執行為 WSL 2 的發行版都可以使用它。 確認裝置已使用 usbipd list連接。 從 WSL 提示字元中,執行 lsusb 以確認 USB 裝置已列出,而且可以使用 Linux 工具進行互動。

    usbipd attach --wsl --busid <busid>
    
  4. 開啟 Ubuntu (或您慣用的 WSL 命令行),並使用 命令列出連結的 USB 裝置:

    lsusb
    

    您應該會看到您剛才連結的裝置,並且能夠使用一般 Linux 工具與其互動。 視您的應用程式而定,您可能需要設定 udev 規則,以允許非根使用者存取裝置。

  5. 在 WSL 中使用裝置之後,您可以實際中斷 USB 裝置的連線,或從 PowerShell 執行此命令:

    usbipd detach --busid <busid>
    

若要深入了解運作方式,請參閱 GitHub 上的 Windows 命令行部落格usbipd-win 存放庫

如需影片示範,請參閱 WSL 2:連線 USB 裝置 (Tabs vs Spaces show)