busybox 编译mkfs.ext4

现在主流的android的设备上都是采用EXT4文件系统,所以今天想在NAND上跑一下EXT4。编译完源码,将sbin下的文件全部拷贝到我的SD卡上,然后将SD。
但是不管如何运行都是报:not found的错误。
 /mnt/ext # mount -t ext4 /dev/mtdblock3  /usr/
mount: mounting /dev/mtdblock3 on /usr/ failed: Invalid argument
虽然我是静态编译的,但是不知道还是有两个依赖库。
/e2fsprogs-1.41.14/install/sbin$ XXXXX-linux-readelf  -d mkfs.ext4
Dynamic section at offset 0x35020 contains 21 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000c (INIT)                       0x200195c
 0x0000000d (FINI)                       0x20285a0
 0x6ffffef5 (GNU_HASH)                   0x2000168
 0x00000005 (STRTAB)                     0x2000efc
 0x00000006 (SYMTAB)                     0x200062c
 0x0000000a (STRSZ)                      1116 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000015 (DEBUG)                      0x0
 0x00000003 (PLTGOT)                     0x203d0f0
 0x00000002 (PLTRELSZ)                   1064 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0x2001534
 0x00000011 (REL)                        0x2001504
 0x00000012 (RELSZ)                      48 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffe (VERNEED)                    0x2001474
 0x6fffffff (VERNEEDNUM)                 2
 0x6ffffff0 (VERSYM)                     0x2001358
 0x00000000 (NULL)                       0x0
1.将编译器下面的lib库(因为libpthread.so.0还依赖于其他库,所以把整个库全部拷贝过去了)拷贝到SD中,将SD卡mount到/mnt目录下面
并添加路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/lib
但是运行的时候还是报:not found的错误。
 /mnt/ext # mount -t ext4 /dev/mtdblock3  /usr/
mount: mounting /dev/mtdblock3 on /usr/ failed: Invalid argument

2.这下我就无解了。找人帮忙,一个专门搞这方面研究一个哥们。
/home/cuixiaogang/e2fsprogs-1.41.14/install/sbin$ XXX-XXX-readelf -l mkfs.ext4
Elf file type is EXEC (Executable file)
Entry point 0x2001970
There are 8 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  PHDR           0x000034 0x02000034 0x02000034 0x00100 0x00100 R E 0x4
  INTERP         0x000134 0x02000134 0x02000134 0x00013 0x00013 R   0x1
      [Requesting program interpreter: /lib/ld-linux.so.2]
  LOAD           0x000000 0x02000000 0x02000000 0x34eb0 0x34eb0 R E 0x8000
  LOAD           0x035000 0x0203d000 0x0203d000 0x00fa4 0x015f4 RW  0x8000
  DYNAMIC        0x035020 0x0203d020 0x0203d020 0x000d0 0x000d0 RW  0x4
  NOTE           0x000148 0x02000148 0x02000148 0x00020 0x00020 R   0x4
  TLS            0x035000 0x0203d000 0x0203d000 0x00004 0x00054 R   0x4
  GNU_EH_FRAME   0x02f840 0x0202f840 0x0202f840 0x010c4 0x010c4 R   0x4
这儿有一个绝对路径
[Requesting program interpreter: /lib/ld-linux.so.2]
所以建了一个链接过去;
ln -s /mnt/libld-linux.so.2   /lib/ld-linux.so.2
然后运行了一下mkfs.ext4,成功了
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值