ARM-LINUX基础
+ -

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 目标分区(请确认设备名正确,否则可能误格式化!)

0 篇笔记 写笔记

关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!