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

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.