【分享】提取PetaLinux rootfs.cpio.gz的内容
作者: 付汉杰 hankf@xilinx.com hankf@amd.com
测试环境: PetaLinux 2021.2
开发过程中,经常要检查rootfs的内容。使用命令,“gzip -d rootfs.cpio.gz”,“cpio -i < rootfs.cpio”,可以解压rootfs.cpio.gz的内容。
如果经常解压,可以采用下面的脚本,简化操作。
#!/bin/bash
echo -e "\nBegin to run script: $0"
# array definition, work for /bin/bash, does not work for /bin/sh
file_array_check=(
bl31.bin
bl31.elf
BOOT.BIN
boot.scr
Image
image.ub
rootfs.cpio.gz
rootfs.manifest
system.dtb
u-boot.bin
u-boot.elf
vmlinux
)
# Get array elements number
file_array_check_length=${#file_array_check[@]}
# C-language style loop
# Check PetaLinux image/linux directory.
for (( i=0; i<$file_array_check_length; i++))
{
CHECK_FILE=${file_array_check[i]}
echo "Check No.$i directory: $CHECK_FILE";
if [ ! -f $CHECK_FILE ]; then
echo "Not PetaLinux project image directory. No file: $CHECK_FILE. "
echo "Exit."
exit 1
fi
}
mkdir -p rootfs
rm -rf ./rootfs/*
ls -l ./rootfs
cd rootfs
cp ../rootfs.cpio.gz ./
gzip -d rootfs.cpio.gz
cpio -i < rootfs.cpio
ls -l
cd ../
付汉杰 hankf@amd.com