系统构建--从emmc中加载根文件系统

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rikeyone/article/details/88395073

本文介绍的是使用分区block设备作为根文件系统的加载方法,使用QEMU来模拟硬件来进行讲解。

制作嵌入式Linux系统的rootfs

cd rootfs/
sudo dd if=/dev/zero of=rootfs.ext3 bs=1M count=50
sudo mkfs.ext3 rootfs.ext3
sudo mount -t ext3 rootfs.ext3 /mnt -o loop
sudo cp _install/* /mnt -fra
sudo umount /mnt
sudo chmod 666 rootfs.ext3

最后会生成一个名字为rootfs.ext3的文件,这个就是我们想要的一个rootfs,文件系统格式为ext3,可以使用qemu进行测试。

qemu加载

qemu-system-arm -M vexpress-a9 \
    -smp 4 \
    -m 1024m \
    -kernel linux-4.0/arch/arm/boot/zImage \
    -append "root=/dev/mmcblk0 rw console=ttyAMA0 loglevel=8" \
    -dtb linux-4.0/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \
    -sd rootfs/rootfs.ext3 \
    -nographic

关键是传入“root=/dev/mmcblk0 rw”的cmdline,以及对应的qemu选项“-sd rootfs/rootfs.ext3”。

u-boot加载

如果我们在实际硬件上使用,并且使用uboot作为bootloader,我们只需要有对应的emmc外设即可,并且在外设提前烧录rootfs中的内容即可。传递的cmdline还和上面qemu测试时一致:

root=/dev/mmcblk0 rw

猜你喜欢

转载自blog.csdn.net/rikeyone/article/details/88395073
今日推荐