How to cross-compile for ARM7 ( Turris Omnia )?

Hi.
I'm trying to create an environment in which I'll be able to cross-compile different programs (eg. Gotify, mitmproxy, Grafana) for my Turris Omnia 2 with OpenWrt omnia 15.05 r47055 (Turris OS 3.11.16) and Kernel 4.4.199. I'm totally new to linux compiling, so cross-compiling is for me a brainf*ck. I already spent hours in searching for a proper, understandable-for-me tutorial, no success yet. I have access to both Win10 and Debian machine, so I can use one of them for creating this environment.

After some research into the subject, I was advised that maybe the best solution would be to download the already-prepared env inside a Docker container. I also know that I might have later additional problems with musl library.

So recently I found this stuff: https://github.com/dockcross/dockcross, it looks like it might be a good fit for my endeavour. But I have some question marks here.

As far I understand, my Omnia has these properties:

  • Target: mvebu
  • Subtarget: cortexa9
  • Package architecture: arm_cortex-a9_vfpv3
  • CPU: Marvell Armada 385 88F6820
  • uname -a shows: armv7l

So which of the docker images from the dockcross will be the best fit?

  1. dockcross/linux-armv5-musl - Linux armv5 cross compiler toolchain using musl as base "libc".
  2. dockcross/linux-armv7 - Generic Linux armv7 cross compiler toolchain.
  3. dockcross/linux-armv7a - Toolchain configured for ARMv7-A used in Beaglebone Black single board PC with TI SoC AM3358 on board, Cortex-A8.

1 - Has a musl inside, which I will need for sure leter-on,
2 - Seems the most generic - so will I have to further upgrade/refine it?
and 3 - seems to be the closest with the Cortexa8 instead of Cortex9 used in my Omnia

So I'm totally lost here. And I don't want to pick a random one and then after hours of trials and errors, discover that that wasn't the right one. Or maybe this approach is totally wrong, and you will know of any other, easier way of cross-compilation?

PS. And no, I don't want to have those programs run in Docker container, I want them compiled for my OpenWRT system.

I will appreciate any help. Thanks.

Welcome to the forum.
You might want to look for an SDK provided by the vendor.

Disclaimer: I have no experience with this particular device and firmware.

Thanks. I did. Here are my findings: