参考资料:微软官方文档连接 USB 设备 | Microsoft Learn
在Win11上用WSL2安装Ubuntu来开发简直不要太爽!!!但是很多小伙伴会发现,欸~为什么我在宿主机上插入的USB设备Ubuntu怎么识别不到啊!?这时很多小伙伴拿出浏览器kuku一通搜索就会知道,原来是因为WSL2运行的是一个虚拟化环境,并不能直接访问宿主机(Windows)的硬件资源,这时大部分的教程 or GPT都会给出一个方法,那就是下载安装usbip这个包,但是当你运行sudo apt install usbip这个指令的时候大概率会出现如下报错来提示我们不具备下载的条件:
那我们到底该如何正确安装usbip这个库呢?同学们请继续往下看,我们之所以不具备这个包的安装条件就是因为这个包的支持依赖于Linux的某些内核模块,而我们WSL2的内核并不直接支持这些模块,那么本着见着拆招的思想我们只要把缺少的内核重新装上加入 USB 存储设备支持不就好啦?顺着这个思路我们找到WSL2的内核仓库microsoft/WSL2-Linux-Kernel: The source for the Linux kernel used in Windows Subsystem for Linux 2 (WSL2)接着我们将我们需要的内核源码克隆到我们的WSL2-Ubuntu中(很大,直接下载拖进Linux会快很多)
make KCONFIG_CONFIG=Microsoft/config-wsl oldconfig
#method-2
#尝试使用非交互式配置,即不需要手动调整配置,直接使用 defconfig 自动生成默认配置
make KCONFIG_CONFIG=Microsoft/config-wsl defconfig
复制代码
理论上来说运行完上述正确指令会出现如下窗口,我们选择进入 Device Drivers -> USB support -> Support for Host-side USB ,选中 USB Mass Storage support( * 号是直接编译进内核,M 是编译为内核模块,内核模块需要手动加载),把下面弹出来的一堆驱动都选上,保存完之后就可以退出了: