问题一:从下图可知mmc有3个分区,uboot是储存在分区1吗?有没有分区0?
问题二:zImage和设备树以及根文件系统都保存在分区2?
问:要如何在 u-boot 处升级 u-boot?
答:参考博客:U-Boot命令之EMMC和SD卡操作命令_一只青木呀的博客-CSDN博客_mmc read
问:要如何在 u-boot 出访问 boot2 分区?
答:参考博客:https://www.daimajiaoliu.com/daima/47229f0d3100400
# 在 linux 处,用 shell 命令写入数据:
echo 0 > /sys/block/mmcblk1boot1/force_ro && echo ABCD | dd of=/dev/mmcblk1boot1 bs=4 count=1 seek=0 && sync
# 重启设备,
reboot
# 在 u-boot 处切换到 boot2 分区
=> mmc dev 1 2
# 读取 boot2 分区的数据到 RAM 中,偏移为 0,大小为 1 块
=> mmc read 80800000 0 1
# 打印 RAM 空间的数据
=> md.b 80800000
问:如何知道 mmc dev 1 2 为切换到 boot2 分区?
答:在 github 搜索关键字 MMC_PART_BOOT2 可得以下结果;
问:为何 mmc part 没有显示 boot 分区?
答:看 u-boot 代码,只是读取了 MBR 分区表,并 Print all primary/logical partitions,所以不会显示 boot 分区;
问:为何 boot1、boot2 分区大小都为 4MB?
[ 2.059249] mmcblk1boot0: mmc1:0001 008GB0 partition 1 4.00 MiB
[ 2.065829] mmcblk1boot1: mmc1:0001 008GB0 partition 2 4.00 MiB
答:见博客:linux mmc分区_eMMC 原理 3 :分区管理_负智年帖的博客-CSDN博客
不是,原因见下:
问:为何 mmc part 没有显示 boot 分区?
答:看 u-boot 代码,只是读取了 MBR 分区表,并 Print all primary/logical partitions,所以不会显示 boot 分区;
请问一下,你是根据哪里看的内核,设备树,文件系统都在/dev/mmcblkp2 分区里面
能否具体解释一下,在该文件没找到
阅读文件:Uboot-2017.03/include/configs/mx6ullevk.h
能否具体解释一下,在该文件没找到
没找到什么?你要找什么?
你是怎么判断内核,设备树,文件系统都在/dev/mmcblkp2 分区里?根据你的回答在mx6ullevk.h里找到,能否详细说明一下
我有一个疑问这个分区是下载软件生成的还是我们固件?
100ask,提供的烧录工具,是在 ram 中运行 u-boot;然后接收电脑的 usb 数据,也就是 100ask-imx6ull-pro-512d-systemv-v1.img 文件,将其写入 emmc;
emmc 前 1k 空间用来存储 partition table;分区的制作,和 分区表 是由 buildroot 最后打包的时候制作的;如下图:
请问一下,buildroot这个分区是可以自己配置?还是固定的不能修改的?
可以自己修改,配合 u-boot 一起修改,不然系统起不来;
文件为:
Buildroot_2020.02.x/board/100ask/nxp-imx6ull/genimage.cfg