首先,双系统就是两个系统,通过uboot参数切换实现不同分区的系统启动。imx6的zImage和dtb放在mmcblk3p1里,如果要升级zImage和dtb,可以直接mount这个分区,然后覆盖文件就可以了,写入过程也就几秒,在加上sync,不会很长时间,如果要保证万无一失的情况下,可以通过修改uboot参数实现启动不同的zImage,这样可以保证不会死。
硬件是飞凌的imx6dl的开发板,基于imx6dl主要是搞定rootfs的双系统。先上图。
图1
分区p1放的是zImage和dtb,分区2和分区3是rootfs,分区4是数据区,用作overlay挂载,这里用的飞凌开发板的kernel,当然openwrt的内核也是可以运行的,但是网卡驱动有些问题,需要调整下。
要实现双系统切换,首先需要在rootfs里安装fw_printenv,fw_setenv命令,同时,搞定/etc/fw_env.config,图2是我的fw_env.config配置