解压 xxxx.cpio.gz.u-boot

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; 

原文地址:https://www.cnblogs.com/hutiann/p/11431328.html