【分享】提取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 ../
posted @ 2022-02-22 11:07  HankFu  阅读(847)  评论(0编辑  收藏  举报