CH10 调整EMMC和SD的挂载顺序10.1 前面章节自动挂载EMMC的问题 在前面章节实现自动挂载EMMC,EMMC的磁盘符是mmcblk1,由于EMMC是焊接在核心板PCB上的,而SD卡是可以插拔的,SD卡的磁盘符为mmcblk0。这个时候如果不插入TF卡那么EMMC会识别为mmcblk0,那么会导致一个问题,我们无法实现开机自动挂载EMMC了。为了解决这个问题,我们应该把EMMC和SD的磁盘符号顺序对调下。 10.2 修改 kernel部分zynq-7000.dtsi
如下图是SD 和EMMC调整前的顺序 如下图是SD 和EMMC调整后的顺序。 10.2 修改S60mount_emmc.sh文件# # Start mount emmc.... # case "$1" in start) echo "开始挂载EMMC,创建路径/mnt/emmc" mkdir -p /mnt/emmc mount -t ext2 /dev/mmcblk0p1 /mnt/emmc ret=$? if [ $ret -ne 0 ]; then echo "EMMC正在格式化..." echo -e "n \n p \n 1 \n \n \n w \n" | fdisk /dev/mmcblk0 mkfs.ext2 /dev/mmcblk0p1 mount -t ext2 /dev/mmcblk0p1 /mnt/emmc fi echo "EMMC挂载成功!" echo "开始挂载tf,创建路径/tmp" mkdir -p /tmp mount /dev/mmcblk1p1 /tmp echo "开挂载成功!" if [ -f "/tmp/update_qspi.bin" ]; then echo "start update qspi flash ..." dd if=/tmp/update_qspi.bin of=/dev/mtdblock0 echo "update qspi finished!" fi ;; stop) ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit $? | 10.4 编译
执行 cd /mnt/workspace/osrc/scripts source settings64.sh cfg_kernel.sh make_kernel.sh cfg_rootfs.sh make_rootfs.sh make_sdcard_image.sh Make_qspi_image.sh 10.6 测试结果
执行 deploy_sdcard_image.sh 之后复制qspi_image.bin文件到TF卡,并且把名字改为update_uboot.bin。 拔掉TF卡插入到开发板,开发板启动模式切换到SD模式,接通串口到电脑,用串口软件观察输出结果。 |