在 WSL 中使用 USB/IP 时出现“内核未找到 usbipd”

在 WSL 中使用 USB/IP 时出现“内核未找到 usbipd”

我正在尝试将 USB 设备连接到在 WSL2 下运行的 Ubuntu 20.04 发行版。

问题是,当我运行该usbip命令时,它会显示以下消息:

WARNING: usbipd not found for kernel 5.10.16.3-microsoft

  You may need to install the following packages for this specific kernel:
    linux-tools-5.10.16.3-microsoft-standard-WSL2
    linux-cloud-tools-5.10.16.3-microsoft-standard-WSL2

  You may also want to install one of the following packages to keep up to date:
    linux-tools-standard-WSL2
    linux-cloud-tools-standard-WSL2

我尝试这样做:

$ sudo apt install linux-tools-5.10.16.3-microsoft-standard-WSL2

...但不起作用。它返回以下内容:

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-tools-5.10.16.3-microsoft-standard-WSL2
E: Couldn't find any package by glob 'linux-tools-5.10.16.3-microsoft-standard-WSL2'

我一直在谷歌搜索如何安装它们,但没有找到任何相关信息。

笔记:

  • 大约 2 个月前安装了 Ubuntu。
  • 我正在使用 WSL2
  • uspipusbipd wsl attach -b 2-2因为我正尝试将 USB 设备连接到 Ubuntu,所以由 PowerShell调用
  • 内核版本5.10.16.3-microsoft-standard-WSL2

答案1

来自WSL2 USB/IP 先决条件,你需要WSL2 5.10.60.1 内核或更高版本。这是第一个添加 USB/IP 支持的版本。

假设您正在运行 Windows 11,您可以简单地wsl --update从管理员 PowerShell 中获取最新版本。然后wsl --shutdown重新启动。

您也可以从 WSL2 内核源构建自己的内核(确保指定 WSL2 内核配置选项),但大多数人不需要走这条路。

请注意,如果您运行的是 Windows 10,则将应用不同的指示。

继续按照之前链接的文档中的说明进行操作,您将看到需要安装的软件包是:

sudo apt install linux-tools-5.4.0-77-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip $(command -v ls /usr/lib/linux-tools/*/usbip | tail -n1) 20

此时,PowerShellusbipd wsl attach应该就可以工作了。

答案2

始终使用更新版本的内核> 5.10.60.1

但看起来您正在usbipd从 WSL 调用该实用程序,这会导致包错误。

要将 USB 设备连接到 WSL,请始终usbipd wsl attach --busid <busid>从 powershell 终端调用并不是来自 WSL 终端。

也许这博客会有所帮助。

相关内容