【发布时间】:2016-09-12 16:50:52
【问题描述】:
我正在为非 mmu 架构编译一个busybox rootfs。 此编译的输出是一个 ELF 32 位 LSB 可执行文件。
file _install/bin/busybox:
ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 2.6.32,
我想要一个 BFLT 可执行文件(与 uclinux 相同)。 如何将 ELF 转换为 BFLT 或从 busybox 生成 BFLT 文件?
没有 Buildroot 也能做到这一点吗?
添加信息:
- 我正在使用工具链 arm-none-linux-gnueabi
- 构建为静态可执行文件
- 选项强制 NOMMU 构建启用
【问题讨论】:
-
@user3142 您是否尝试过下载 uCLinux 源代码树并构建它? IIRC,它带有一个包含busybox的rootfs。默认构建应该为您提供支持 NOMMU 架构的二进制文件。
-
您很可能会使用 objcopy 将您的部分呈现为平坦的连续二进制文件,至少如果您为链接器提供了合适的内存映射。我怀疑你可能会在你已经拥有的构建脚本中找到一些这样的例子,但你也可以去寻找其他版本。还可以考虑使用 readelf 或 objdump 来确定您实际拥有的部分集合。
标签: linux embedded-linux busybox uclinux rootfs