zynq rootfs制作ramdisk及启动失败问题

1.使用rootfs压缩包制作ramdisk

(1) 建立空文件

dd if=/dev/zero of=./ramdisk.Image bs=10M count=10

(2) 将普通文件与设备节点绑定

losetup /dev/loop0 ./ramdisk.image

(3) 格式化/dev/loop0

mkfs.extt2 /dev/loop0

(4) 挂在/dev/loop0设备节点

mkdir tmp

mount -t ext2 /dev/loop0 /zy/rootfs/rootfs2ramdisk/tmp/

(5) 拷贝文件到挂载目录

tar -xvf rootfs.tar -C /zy/rootfs/rootfs2ramdisk/tmp/

(6) 卸载目录

umount ./tmp

(7) 压缩文件

gzip ramdisk.image

(8) 添加uboot头

mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz

 

2. 将 ramdisk 文件系统复制到emmc启动失败

 

        

        从最后一行打印信息显示失败原因是内核调用文件系统初始化失败。所以看了 Document/init 的介绍和百度查了一下,原因是 etc/init、bin/init 、sbin/init等都初始化失败,才会这个错误。对比了自己做的ramdisk和官网的ramgdisk,没发现有大的区别,就这样入坑越来越深。

 

        在反复测试没有解决的情况下,又仔细看了打印信息,ramdisk写入大小和实际大小不一致,这时才想到是不是内核对 ramdisk 的大小做了限制,一查果然如此,在 Device driver->Block driver->ramdisk default size 有设置 ramdisk的大小,原来是 16M,我做的文件系统是 36M,将大小改为 50M 之后,测试成功。

 

 

测试结果如下:

 

 

    更多内容可以关注的微信公众号EmbeddedSharing。

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值