在第四部分《通过U-boot引导加载内核》中,我们发现U-boot的环境变量修改后无法保存,需要修改源代码来固化环境变量,对启动参数的修改造成了不便。因此本节将继续深入探讨如何将U-boot的环境变量存储在emmc内,同时使用emmc存储Linux内核、设备树以及根文件系统,并在此基础上尝试引导启动最小Linux操作系统。
制作emmc镜像文件
本节制作的emmc镜像文件共256MB,分为两个部分,第一部分存放uImage和dtb,大小为32MB,第二部分存放根文件系统,大小为224MB。
创建挂载路径
sudo mkdir /mnt/rootfs
sudo mkdir /mnt/uboot
创建自动打包脚本
cd /home/workspace/objects
vim makefs-arm32.sh
# 将makefs-arm32.sh的内容替换为以下内容
dd if=/dev/zero of=rootfs-arm.ext3 bs=1M count=256
echo "hard disk partition!"
sgdisk -n 0:0:+32M -c 0:uboot rootfs-arm.ext3
sgdisk -n 0:0:0 -c 0:rootfs rootfs-arm.ext3
sgdisk -p rootfs-arm.ext3
echo "mount loop device!"
LOOPDEV=`losetup -f`
echo $LOOPDEV
sudo losetup $LOOPDEV rootfs-arm.ext3
sudo partprobe $LOOPDEV
sudo losetup -l
ls -l /dev/loop*
echo "format disk to ext3"
echo ${LOOPDEV}p1
echo ${LOOPDEV}p2
sudo mkfs.ext3 ${L

本文介绍了如何将U-boot的环境变量存储在emmc中,以便与Linux内核、设备树分开,并详细描述了制作emmc镜像、修改U-boot配置、以及使用qemu进行启动过程。
最低0.47元/天 解锁文章
2020

被折叠的 条评论
为什么被折叠?



