mmc分区信息
2025-08-01
13
0
sd卡或者mmc都会被认为是mmc设备,只不过一个被认为外设,一个被认为内设。
使用mmc list可以看u-boot中存在的mmc设备
=> mmc list
FSL_SDHC: 0
FSL_SDHC: 1 (eMMC)
重新扫描描用mmc rescan
对于扫到的设备,通过mmc dev id 选中设备
=> mmc dev 1
switch to partitions #0, OK
mmc1(part 0) is current device
使用mmc info查看设备信息
=> mmc info
Device: FSL_SDHC
Manufacturer ID: 15
OEM: 100
Name: 8GTF4
Tran Speed: 52000000
Rd Block Len: 512
MMC version 4.0
High Capacity: Yes
Capacity: 7.3 GiB
Bus Width: 8-bit
Erase Group Size: 512 KiB
分区信息:
=> mmc part
Partition Map for MMC device 1 -- Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 65536 42f6af2a-01 0c Boot
2 67584 15202304 42f6af2a-02 83
可以看到,这里有2个分区,实际为三个分区
- 分区0:为uboot分区,这里不显示,实际从2扇区开始,因为01保存的是分区表(MBR分区)
- 分区1:这里为zImage和设备树分区,为fat分区
- 分区2:为ext4分区,存储根文件系统
分区类型:
=> fstype mmc 1:1
fat
=> fstype mmc 1:2
ext4
=> fstype mmc 1:0
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
查看信息如下:
=> fatinfo mmc 1:1
Interface: MMC
Device 1: Vendor: Man 000015 Snr 0eece813 Rev: 0.6 Prod: 8GTF4R
Type: Removable Hard Disk
Capacity: 7456.0 MB = 7.2 GB (15269888 x 512)
Filesystem: FAT32 "boot "
=> fatls mmc 1:1
39459 imx6ull-14x14-emmc-10.1-1280x800-c.dtb
39459 imx6ull-14x14-emmc-4.3-480x272-c.dtb
39459 imx6ull-14x14-emmc-4.3-800x480-c.dtb
39459 imx6ull-14x14-emmc-7-1024x600-c.dtb
39459 imx6ull-14x14-emmc-7-800x480-c.dtb
40295 imx6ull-14x14-emmc-hdmi.dtb
40203 imx6ull-14x14-emmc-vga.dtb
6785480 zimage
8 file(s), 0 dir(s)
=> ext4ls mmc 1:2
<DIR> 4096 .
<DIR> 4096 ..
<DIR> 16384 lost+found
<DIR> 4096 sys
<DIR> 4096 boot
<DIR> 4096 mnt
<DIR> 4096 lib
<DIR> 4096 run
<DIR> 4096 proc
<DIR> 4096 usr
<DIR> 4096 home
<DIR> 4096 sbin
<DIR> 4096 dev
<DIR> 4096 opt
<DIR> 4096 etc
<DIR> 4096 bin
<DIR> 4096 var
<DIR> 4096 media
<SYM> 8 tmp
<DIR> 4096 .cache
命令 | 说明 | 示例 |
---|---|---|
mmc read | 读取 MMC 中的数据 | mmc read 80800000 600 10 从0x600扇区读取0x10个扇区到0x80800000 |
mmc wirte | 向 MMC 设备写入数据。 | mmc write 80800000 2 32E 将内存80800000开始内容与入2扇区总共3E个 |
fatload加载并启动
=> fatls mmc 1:1
39459 imx6ull-14x14-emmc-10.1-1280x800-c.dtb
39459 imx6ull-14x14-emmc-4.3-480x272-c.dtb
39459 imx6ull-14x14-emmc-4.3-800x480-c.dtb
39459 imx6ull-14x14-emmc-7-1024x600-c.dtb
39459 imx6ull-14x14-emmc-7-800x480-c.dtb
40295 imx6ull-14x14-emmc-hdmi.dtb
40203 imx6ull-14x14-emmc-vga.dtb
6785480 zimage
8 file(s), 0 dir(s)
=> fatload mmc 1:1 80800000 zImage
reading zImage
6785480 bytes read in 226 ms (28.6 MiB/s)
=> fatload mmc 1:1 83000000 imx6ull-14x14-emmc-hdmi.dtb
reading imx6ull-14x14-emmc-hdmi.dtb
40295 bytes read in 21 ms (1.8 MiB/s)
=> bootz 80800000 - 83000000
bootz:启动boot zImage
bootu:启动boot uImage
boot/bootcmd
boot用于启动bootcmd指定的字符串命令
=> setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000;'
=> saveenv
=> boot
LINUX下格式化磁盘分区
sudo mkfs.vfat -F 32 -n "boot" /dev/sdc1
将 /dev/sdc1 分区格式化为 FAT32 文件系统,并设置卷标(label)为 “boot”。
这条命令的作用是 将 /dev/sdc1
分区格式化为 FAT32 文件系统,并设置卷标(label)为 "boot"
。
参数 | 说明 |
---|---|
sudo |
以管理员权限运行(FAT32 格式化需要 root 权限) |
mkfs.vfat |
创建 FAT 文件系统的工具(在 Linux 下) |
-F 32 |
指定 FAT32 格式(可选 -F 12 、-F 16 ,但一般用 32 ) |
-n "boot" |
设置卷标(label)为 boot (可选,用于识别分区) |
/dev/sdc1 |
目标分区(请确认设备名正确,否则可能误格式化!) |