我已经安装了Petalinux 2014.4在我的Zynq板,但NAND闪光灯没有安装时,我启动板。我想知道是否有可能通过提取包来更改rootfs.cpio,然后对fstab进行更改,从而使cpio返回。如果是的话,那之后只运行petalinux就够了吗?
谢谢:)
发布于 2015-03-03 12:46:10
如果您可以访问ramdisk映像文件,则可以修改其内容。我假设您的图像文件是使用gzip压缩的。此外,我假设您使用use和压缩的ramdisk映像有一个use前导。
首先,您需要删除U头:
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的一部分,位于tools目录中的各个源中。
我不熟悉PetaLinux,所以我不知道这个一般的答案是否适合你的需求和期望。
发布于 2015-11-06 07:31:53
使用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)之前的空格替换为Tab。
您可以通过转到$(TARGETINST)安装目录并运行components/rootfs/targetroot-inst.sh来读取PetaLinux命令的帮助
发布于 2018-08-21 15:04:46
更方便,而开发是使用任何标准发行版。Petalinux可以用来创建内核,u引导文件。然后在sd卡上安装一个您喜欢的Linux并启动它。例如,您可以使用标准工具来安装软件包。
https://stackoverflow.com/questions/28545706
复制相似问题