WSL2中对TF卡操作的学习;f1c200s固件应用
背景
学习嵌入式linux中,其中不乏需要对TF卡进行操作的,记录下
安装USBIPD
首先因为是在WSL2中进行的操作,所以需要usbipd这个工具,windows跟wsl2中都需安装相应工具,自行百度
对TF卡做一些前置操作
一般tf卡的文件系统格式为NTFS,在linux中是使用不了的,又因为还没去研究NTFS格式的TF卡在linux中如何格式化为linux可以挂载的文件系统格式,所以,在操作之前,我就在windows上将tf卡清空了所有分区。
使用USBIPD,使TF卡呈现在WSL中
在windows终端输入命令usbipd wsl attach --busid 12-2
(不一定都是是12-2),使wsl2连接上usb设备
安装fdisk工具sudo apt-get install fdisk
,应该也有其他工具可以对TF卡进行格式化,分区等操作,但没研究过
使用fdisk工具对TF进行分区,格式化等
sudo fdisk /dev/sdb
每个磁盘名称不同,请注意
若已存分区即按 d 删除各个分区。我这里没有分区
通过 n 新建分区,第一分区申请为1M,第二分区128M,剩下的空间都给第三分区
n p [Enter] [Enter] [Enter] +1M
n p [Enter] [Enter] [Enter] +128M
n p [Enter] [Enter] [Enter] [Enter]
w 保存写入并退出
完成之后的
分区格式化
sudo mkfs.vfat /dev/sdb1 # 将第1分区格式化成FAT
sudo mkfs.ext4 /dev/sdb2 # 将第2分区格式化成EXT4
sudo mkfs.ext4 /dev/sdb3 # 将第3分区格式化成EXT4
挂载
在mnt下创建目录,当作挂载点
☁ ~ sudo mkdir /mnt/test2
☁ ~ sudo mount /dev/sde2 /mnt/test2
接下来就可在这里面进行文件操作了
可以使用df -h
看到所挂载的/dev/sde2,还可以看到使用率
lsblk
也是相同的功能
磁盘是磁盘,但在linux中磁盘必须挂载了才能进行操作,否则也就只是符号而已
f1c200s的TF卡
能在wsl中看到tf卡的磁盘符号后,如果有挂载的,先取消挂载
sudo umount /dev/sd*
使用fdisk工具,存在分区的先删除分区。图中删除了两个分区
图中创建了两个分区,第一个分区32M大小,第二个分区为1000M大小,对后w
保存退出
可以看到多了两个分区
将两个分区格式化一下,使其可以使用
使用sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
命令,将uboot烧入tf卡的指定位置if指的是输入文件, of指的是输出文件, 这里的输出文件为主机电脑的/dev/sdb文件, 也就
是TF卡,这个可以用gparted 软件查看,该软件可以直接用命令安装即可:sudo apt-get install
gparted,安装好后打开该软件,如图2.15在右上角可以看到两个硬盘sda,其中一个是主机的本地
硬盘,另一个是TF,即sdb这里可以看到TF卡的卷标名为sdb,因此这里的of=/dev/sdb 烧录到8k偏
移地址处是指绝对地址,这个绝对地址指的是TF卡的物理地址。这里为何是8k处而不是其他地址
是由于F1C200S 内部的IROM中的一小段代码决定的。
这里一般第一个分区放内核跟设备树,第二个分区放根文件系统