2

I have a Huawei EchoLife EG8145V5 for which I am trying to build some software. It has a built-in Linux distro of some sort, but I would like to add to it, as there is "plenty" of storage space available. The system is built around BusyBox.

However, to build the software, I need to set up a build environment that matches the CPU architecture, and this is where I come up short, as I am unable to find a kernel that I can use with QEMU. I did find one kernel, but it did not produce a compatible binary.

The only thing I know is what I get from 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

I am unable to find the kernel image itself stored anywhere, which would make this a whole lot easier. So, what should be my next step? Anything else I can do to find the details I need to set up a good qemu dev environment?

I do have a setup based around the cortex-a9 and the vexpress-a9 machine, plus some kernel I found somewhere (can't remember where) and it is working to some degree. It's just that dynamically linked binaries won't work, even after patching it with patchelf --set-soname and patchelf --set-soname - I either get segfault or permission denied.

EDIT 1:

I did manage to find the kernel config. It's a bit too long to paste here, but are there any lines I should look for that should lead me on the right track?

EDIT 2:

I've managed to extract the busybox binary from the router. file busybox produces this:

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.