我正在尝试将 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
uspip
usbipd 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 终端。
也许这博客会有所帮助。