繁体   English   中英

对rootfs进行修改(zynq上的petalinux)

[英]Do modification to rootfs (petalinux on zynq)

我已经在Zynq板上安装了Petalinux 2014.4,但是在启动该板时未安装NAND闪存。 我想知道是否有可能通过解压缩软件包来更改rootfs.cpio,然后对fstab进行更改,从而使cpio恢复。 如果是,那么在那之后只运行petalinux-build就足够了吗?

谢谢 :)

如果可以访问ramdisk映像文件,则可以,您可以修改其内容。 我假设您的图片文件是使用gzip压缩的。 此外,我假设您使用U-Boot,并且压缩的ramdisk映像具有U-Boot序言。

首先,您需要剥离U-Boot标头:

dd bs=64 skip=1 if=uramdisk.cpio.gz of=ramdisk.cpio.gz

接下来,我们解压缩:

gunzip ramdisk.cpio.gz

最后,我们提取CPIO存档:

mkdir ramdisk && cd ramdisk
cpio -i -F ../ramdisk.cpio

您可以以root用户身份执行后一个命令,或者在再次归档之前将文件所有权更改回root用户。 这是启动您的init程序所必需的。 修改后,您可以再次创建图像文件:

find . | cpio -o -H newc | gzip -9 > ../ramdisk_new.cpio.gz
mkimage -A arm -T ramdisk -C gzip -d ramdisk_new.cpio.gz uramdisk.image.gz

注意,mkimage工具是U-Boot的一部分,位于tools目录中的相应源中。

我对PetaLinux不熟悉,所以我不知道这个一般答案是否适合您的需求和期望。

使用cpio打包工具是可以的。 但是,每次更新rootfs时都需要完成此操作。

您也可以使用PetaLinux内置工具来完成此操作。 设置完毕后,无需其他步骤。

创建应用程序:

petalinux-create -t apps -n fstab_mount_sd --template install --enable

在创建的components/apps/fstab_mount_sd目录中,修改Makefile以将内容追加到当前fstab文件中,或将原始fstab替换为您的fstab文件版本。

这是fstab_mount_sd Makefile的示例:

install:    
    $(TARGETINST) -a "/dev/mmcblk0p1       /media/card          auto           defaults,sync,noauto      0  0" /etc/fstab

$(TARGETINST) -a表示将以下文本附加到目标文件。

注意:makefile中的命令应以Tab开头。 用制表符替换上一个代码块中$(TARGETINST)之前的空格。

您可以通过转到PetaLinux安装目录并运行components/rootfs/targetroot-inst.sh来阅读$(TARGETINST)命令的帮助。

使用任何标准发行版进行开发时都更加方便。 Petalinux可用于创建内核u-boot文件。 然后在SD卡上安装您喜欢的Linux并启动它。 您可以使用标准的工具来安装软件包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM