今天在學習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上,但是意義不大好像。
第一次寫博客,格式挺亂的,見諒