目录
确保SD卡(mmcblk1) 和 eMMC(mmcblk0) 均可用,log如下:
一、EMMC rootfs分区烧录
-
将TF卡插入开发板并且设置为TF卡启动
-
格式化脚本在rootfs 根目录,确保脚本有可执行权限
root@j721s2-evm:~# cd /
root@j721s2-evm:~# chmod +x mksdboot.sh
-
确保SD卡(mmcblk1) 和 eMMC(mmcblk0) 均可用,log如下:
root@j721s2-evm:/# ls -l /dev/mmcblk*
brw-rw---- 1 root disk 179, 32 Feb 27 2024 /dev/mmcblk0
brw-rw---- 1 root disk 179, 64 Jan 9 07:19 /dev/mmcblk0boot0
brw-rw---- 1 root disk 179, 96 Jan 9 07:19 /dev/mmcblk0boot1
brw-rw---- 1 root disk 179, 33 Jan 9 07:19 /dev/mmcblk0p1
brw-rw---- 1 root disk 179, 34 Jan 9 07:19 /dev/mmcblk0p2
crw------- 1 root root 240, 0 Jan 9 07:19 /dev/mmcblk0rpmb
brw-rw---- 1 root disk 179, 0 Jan 9 07:19 /dev/mmcblk1
brw-rw---- 1 root disk 179, 1 Jan 9 07:19 /dev/mmcblk1p1
brw-rw---- 1 root disk 179, 2 Jan 9 07:19 /dev/mmcblk1p2
-
解除挂载eMMC分区:
root@j721s2-evm:/# umount /dev/mmcblk0*
umount: /dev/mmcblk0: not mounted.
umount: /dev/mmcblk0boot0: not mounted.
umount: /dev/mmcblk0boot1: not mounted.
umount: /dev/mmcblk0rpmb: not mounted.
-
停止udev守护进程以避免在格式化eMMC时自动挂载分区
root@j721s2-evm:/# udevadm control -s
-
对eMMC进行分区
root@j721s2-evm:/# ./mksdboot.sh --device /dev/mmcblk0
-- Main device is: /dev/mmcblk1p2
************************* WARNING ***********************************
* *
* Selected Device is greater then 16GB *
* Continuing past this point will erase data from device *
* Double check that this is the correct SD Card *
* *
*********************************************************************
Would you like to continue [y/n] : y
************************************************************
* THIS WILL DELETE ALL THE DATA ON /dev/mmcblk0 *
* *
* WARNING! Make sure your computer does not go *
* in to idle mode while this script is *
* running. The script will complete, *
* but your SD card may be corrupted. *
* *
* Press <ENTER> to confirm.... *
************************************************************
按照提示输入y或按下Enter
-
将SD卡和eMMC的rootfs分区分别挂载在不同文件夹
root@j721s2-evm:/# umount /run/media/*
root@j721s2-evm:/# mkdir /mnt/sd-rootfs
root@j721s2-evm:/# mount /dev/mmcblk1p2 /mnt/sd-rootfs
root@j721s2-evm:/# mkdir /mnt/emmc-rootfs
root@j721s2-evm:/# mount /dev/mmcblk0p2 /mnt/emmc-rootfs
-
拷贝SD卡 rootfs分区到eMMC的rootfs分区
root@j721s2-evm:/mnt# cp -r /mnt/sd-rootfs/* /mnt/emmc-rootfs
root@j721s2-evm:/mnt# sync
需要等待拷贝完成
二、EMMC BOOT分区烧录
-
将SD卡和eMMC的BOOT分区分别挂载在不同文件夹
root@j721s2-evm:/# umount /run/media/*
root@j721s2-evm:/# mkdir /mnt/sd-boot
root@j721s2-evm:/# mount /dev/mmcblk1p1 /mnt/sd-boot
root@j721s2-evm:/# mkdir /mnt/emmc-boot
root@j721s2-evm:/# mount /dev/mmcblk0p1 /mnt/emmc-boot
-
拷贝SD卡 BOOT分区中eMMC的BOOT内容到eMMC的BOOT分区
root@j721s2-evm:/# cp /mnt/sd-boot/ospi_update/uEnv.txt /mnt/emmc-boot/uEnv.txt
root@j721s2-evm:/# cp /mnt/sd-boot/ospi_update/u-boot.img /mnt/emmc-boot/u-boot.img
root@j721s2-evm:/# sync
至此,eMMC内的内容烧录完毕。