xxxx.cpio.gz.u-boot 为 Ramdisk 文件。
是使用u-boot源码下 tools/mkimage 工具生成的。
.u-boot = 64字节的头部信息 + Filesystem 包
解包方法:
通过:dd if=xxxx.cpio.gz.u-boot of=xxxx.cpio.gz skip=64 bs=1
得到 xxxx.cpio.gz
通过: gunzip xxxx.cpio.gz
得到 xxxx.cpio
通过:cpio -idmv < ../xxxx.cpio
得到文件系统。
打包方法:
1. sudo apt-get install u-boot-tools
./为包含文件系统的路径
2.find . | cpio -o -H newc > ../xxxxxxxxxxxxxxx.cpio
3. gzip name-swupdate.cpio
4. mkimage -A arm64 -O linux -T ramdisk -C none -n name-swupdate -d name-swupdate.cpio.gz name-swupdate.cpio.gz.u-boot
查看ramdisk 头部信息:
mkimage -l name-swupdate.cpio.gz.u-boot
设置 boot arguments :
setenv bootargs console=${_console} rw root=/dev/ram ramdisk_size=86732 rootwait
加载 xxxx.cpio.gz.u-boot到内存tftp 0x500007777 xxxx.cpio.gz.u-boot
加载 内核,加载设备树;
booti 内核地址,0x500000000 , 设备树地址
boot_MMC_Rec=echo "Reco...";run getKernel; run getDtb; run getRootfs; run mkargsRAMFS; booti 0x48088888 0x5000007777 0x48009999;