我有一台华为 EchoLife EG8145V5,我正在尝试为其构建一些软件。它有某种内置的 Linux 发行版,但我想补充一下,因为有“大量”可用的存储空间。该系统是围绕 BusyBox 构建的。
但是,要构建软件,我需要设置一个与 CPU 架构相匹配的构建环境,这就是我的不足之处,因为我找不到可以与 QEMU 一起使用的内核。我确实找到了一个内核,但它没有生成兼容的二进制文件。
我唯一知道的是我从中得到了什么cat /proc/cpuinfo
:
processor : 0
model name : ARMv7 Processor rev 1 (v7l)
BogoMIPS : 1594.16
Features : swp half thumb fastmult edsp thumbee tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x4
CPU part : 0xc09
CPU revision : 1
CPU physical :0
processor : 1
model name : ARMv7 Processor rev 1 (v7l)
BogoMIPS : 1594.16
Features : swp half thumb fastmult edsp thumbee tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x4
CPU part : 0xc09
CPU revision : 1
CPU physical :1
Hardware : Hisilicon A9
Revision : 0000
Serial : 0000000000000000
我无法找到存储在任何地方的内核映像本身,这会让这一切变得容易得多。那么,我的下一步应该是什么?我还能做些什么来找到设置良好 qemu 开发环境所需的详细信息?
我确实有一个基于cortex-a9
和vexpress-a9
机器的设置,加上我在某处找到的一些内核(不记得在哪里)并且它在某种程度上工作。只是动态链接的二进制文件不起作用,即使在用patchelf --set-soname
and修补它之后patchelf --set-soname
- 我要么得到段错误,要么权限被拒绝。
编辑 1:
我确实设法找到了内核配置。粘贴在这里有点太长了,但是我应该寻找什么可以引导我走上正确轨道的行吗?
编辑2:
我已经设法从路由器中提取了 busybox 二进制文件。file busybox
产生这个:
ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /mnt/jffs2/app/output/ld-linux.so.3, for GNU/Linux 2.6.26, BuildID[sha1]=736041808c34871ed689d38e7cacfe18b1e65736, stripped