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
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.
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?
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