zynq ramdisk.image.gz安装软件

因为emmc挂载的时候出现以下错误,由于官方ramdisk.image是没有安装e2fsck工具的,所以需要在官方的工具上安装e2fsck工具,用于修复emmc

一:从xilinx下载arm_ramdisk.image.gz,并下载 e2fsck-static_1.47.2-3+b1_armhf.deb

        Build and Modify a Rootfs - Xilinx Wiki - Confluence

        Debian -- 软件包下载地址选择 -- e2fsck-static_1.47.2-3+b1_armhf.debDebian -- 软件包下载地址选择 -- e2fsck-static_1.47.2-3+b1_armhf.deb
        e2fsck-static_1.47.2-3+b1_armhf.deb 文件是e2fsck的静态工具(e2fsck-static),可以免安装即可以使用

        将下载的两个文件放到ramdisk目录。

二:我们首先先把e2fsck-static_1.47.2-3+b1_armhf.deb解压出来提取e2fsck-static,如下操作

ar -x  e2fsck-static_1.47.2-3+b1_armhf.deb

   解压后,目录下会存在以下三个文件,e2fsck-static就在data.tar.xz里面

        debian.banary

        data.tar.xz

        control.tar.xz

执行tar解压,解压后出现usr,e2fsck.static 存在usr/sbin下

三:由于官方ramdisk默认空间只有16M,为安装工具需要做扩容

扩容ramdisk 
#首先将arm_ramdisk.image.gz备份并解压:

cp arm_ramdisk.image.gz ramdisk.image.gz

gunzip ramdisk.image.gz  #解压后就会出现ramdisk.image

# 计算新增容量:假设目标大小为40MB,原大小为16MB,需新增24MB
# bs=1M:块大小1MB;seek=16:跳过前16MB(原大小);count=24:新增24MB空白数据

dd if=/dev/zero of=ramdisk_image bs=1M seek=16 count=24 conv=notrunc

#if=/dev/zero:输入源为空白数据(填充 0)。
#conv=notrunc:确保不截断原有数据(关键参数,否则会清空镜像)

e2fsck -f ramdisk_image  # -f:强制检查(即使文件系统看似正常)

resize2fs ramdisk_image

# 示例输出:Resizing the filesystem on ramdisk_image to 8192 (4k) blocks.
# 说明:将文件系统扩展到整个ramdisk分配的空间


#将ramdisk 挂载到目录tmp_mnt

mkdir tmp_mnt

sudo mount -o loop ramdisk.image tmp_mnt/


执行上述的命令后,ramdisk已经挂载到tmp_mnt下,可以进入tmp_mnt直接操作ramdisk内容

四:拷贝e2fsck.static到ramdisk的usr/sbin

#再将e2fsck.static拷贝到挂载的目录的usr/sbin下

sudo cp usr/sbin/e2fsck.static tmp_mnt/usr/sbin

五:解除挂载并重新打包,使用mkimage加上uboot头信息,既可以用于zynq  ramdisk使用

sudo umount tmp_mnt/
chmod u+rwx ramdisk.image

#然后重新打包

gzip ramdisk.image

mkimage -A arm -O linux ramdisk -C gzip -d ramdisk_image.gz uramdisk.image.gz

六:烧录制作好的uramdisk.image.gz到开发板,由于kernel 分配的ramdisk空间是16M的,因此需要修改一下环境参数,如下:

#烧录到系统中,需要将uboot中的ramdisk_size增大。如下
setenv bootargs "console=ttyPS0,115200 root=/dev/ram0 rw  ramdisk_size=262144" #扩大ram支持容量大小

启动ramdisk后,确保根文件系统未挂载,执行修复以下指令修复emmc

e2fsck.static -fy /dev/mmcblk0p1

成功修复后,再次挂载和使用emmc就不会出现上述的报错了,对于安装其他软件一样这个套路,下载xx_static即可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值