今天在学习linux驱动开发的时候,因为使用的是WSL,导致我的内存卡识别不到,无法烧录所用程序,下面是解决方案
image
通过指令sudo mount -t drvfs F:\ ./mnt/f(SD卡格式为FAT32),可以将对应盘符的设备挂载到指定文件夹中,并查看文件,这也是官方给出的方案
image
但是无法作为设备被识别到,此时可以正常使用mv或者cp指令对存储设备进行操作。

但是我需要存储设备作为设备被识别到,也就是ls /dev/sd这种才能烧录我的uboot或者裸机二进制文件
根据微软官方给出的建议,我们选择了usbipd-win来将外部存储设备挂载到wsl
win:
winget install --interactive --exact dorssel.usbipd-win 下载usbipd(在windows命令窗执行)
usbipd --version # 输出版本号即安装成功
wsl:
sudo apt install linux-tools-virtual hwdata
win:(以管理员身份打开命令提示窗)
usbipd list #查看自己设备
image
我这里的设备是3-3
usbipd bind --force --busid 3-3 # 绑定设备
usbipd attach --wsl --busid 3-3 # 转发到WSL2
之后的输出是这样就表示成功连接到wsl
image
wsl:
之后我们就在/dev/sd
找到我们的设备,然后正常挂载到文件夹便可以使用了
image

之后的话资源管理器就识别不到这个设备了,拔出在插入的话需要在执行一次
usbipd attach --wsl --busid 3-3 # 转发到WSL来连接到wsl

感觉应该也可以把一些别的外设,比如串口连接到wsl上,但是意义不大好像。
第一次写博客,格式挺乱的,见谅