Cross Compile - Howto?

That’s an easy to fix error. Just create a symlink ln -s ../feeds/base/package/utils package/utils (c.f. https://dev.openwrt.org/ticket/18552)

thanks for this
but i;m blocked later

Makefile:1753: recipe for target ‘/home/debian/turris-os-sdk/build_dir/target-arm_cortex-a9+vfpv3_musl-1.1.11_eabi/linux-mvebu/compat-wireless-2016-10-08/.configured_yynyyyyyyyyyyynyyyyyyyyyyyyyyyyyynyyyyyyyyyynyyyyyyyyyyyyyynnnyyynnynnyyyyynnnnnnnnyyyyyyyyyy’ failed
make[3]: [/home/debian/turris-os-sdk/build_dir/target-arm_cortex-a9+vfpv3_musl-1.1.11_eabi/linux-mvebu/compat-wireless-2016-10-08/.configured_yynyyyyyyyyyyynyyyyyyyyyyyyyyyyyynyyyyyyyyyynyyyyyyyyyyyyyynnnyyynnynnyyyyynnnnnnnnyyyyyyyyyy] Error 123 (ignored)
cmp /home/debian/turris-os-sdk/build_dir/target-arm_cortex-a9+vfpv3_musl-1.1.11_eabi/linux-mvebu/compat-wireless-2016-10-08/include/linux/ath9k_platform.h /home/debian/turris-os-sdk/build_dir/target-arm_cortex-a9+vfpv3_musl-1.1.11_eabi/linux-mvebu/linux-4.4.13/include/linux/ath9k_platform.h
/home/debian/turris-os-sdk/build_dir/target-arm_cortex-a9+vfpv3_musl-1.1.11_eabi/linux-mvebu/compat-wireless-2016-10-08/include/linux/ath9k_platform.h /home/debian/turris-os-sdk/build_dir/target-arm_cortex-a9+vfpv3_musl-1.1.11_eabi/linux-mvebu/linux-4.4.13/include/linux/ath9k_platform.h differ: char 1165, line 34

Hi it’s me again :wink:

I am currently trying to compile snapraid with blkid support. However, if i set the configure flag --with-blkid I get error:

checking for library containing blkid_probe_all... no
configure: error: blkid requested but not found

I’ ve installed libbklid-dev, uuid-dev and libbklid1 on the ubuntu build host. So I am wondering if there’s any support for building files requing libbklid in the toolchain?

(At the moment, I havent created a package for snapraid, I am just using the commands from post #1)

Thanks for help!!

Ok solved it by creating a package file. However,I get an error when compiling it but it seems to work and provide support for blkid.

cp -fpR /home/chr/turris-omnia/OpenWrt-SDK-mvebu_gcc-4.8-linaro_musl-1.1.11_eabi.Linux-x86_64/build_dir/target-arm_cortex-a9+vfpv3_musl-1.1.11_eabi/snapraid-11.0-rc-6-gac3714a/snapraid /home/chr/turris-omnia/OpenWrt-SDK-mvebu_gcc-4.8-linaro_musl-1.1.11_eabi.Linux-x86_64/build_dir/target-arm_cortex-a9+vfpv3_musl-1.1.11_eabi/snapraid-11.0-rc-6-gac3714a/ipkg-mvebu/snapraid/usr/bin/snapraid
find /home/chr/turris-omnia/OpenWrt-SDK-mvebu_gcc-4.8-linaro_musl-1.1.11_eabi.Linux-x86_64/build_dir/target-arm_cortex-a9+vfpv3_musl-1.1.11_eabi/snapraid-11.0-rc-6-gac3714a/ipkg-mvebu/snapraid -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| xargs -r rm -rf
Package snapraid is missing dependencies for the following libraries:
libblkid.so.1
make[2]: *** [/home/chr/turris-omnia/OpenWrt-SDK-mvebu_gcc-4.8-linaro_musl-1.1.11_eabi.Linux-x86_64/bin/mvebu-musl/packages/base/snapraid_11.0-rc-6-gac3714a-2_mvebu.ipk] Error 1
make[2]: Leaving directory `/home/chr/turris-omnia/OpenWrt-SDK-mvebu_gcc-4.8-linaro_musl-1.1.11_eabi.Linux-x86_64/package/snapraid'
make[1]: *** [package/snapraid/compile] Error 2
make[1]: Leaving directory `/home/chr/turris-omnia/OpenWrt-SDK-mvebu_gcc-4.8-linaro_musl-1.1.11_eabi.Linux-x86_64'
make: *** [package/snapraid/compile] Fehler 2

Hi I was actually wondering if someone could help me out as I am rather new and unfamiliar with how to cross compile.

I currently have cloned the openwrt repo from github and have my target set to Marvell Armada 37x/38x/xp with the options of Advanced Config Options, Build OpenWrt sdk, and Package Toolchain selected. After making I try to compile a simple helloworld c program using arm-openwrt-gcc -o hello helloworld.c and move the binary over to the Omnia. When I try to run it I get the message that ./hello:not found. Are there additional steps that I must take?

My overarching goal is to get Ryu built on the Omnia however it seems like it depends on some C files thus the cross compilation needed. Thank you.

So I’ve noticed that the newest image of openwrt that I built contains the directory

toolchain-arm_cortex-a9+vfpv3_gcc-5.3.0_musl-1.1.16_eabi

but the libc.so version on the omnia is 1.1.15, so I believe it is a versioning issue. I was able to run the hello world program on a Linksys router. Is the solution as simple as just copying over the libc.so (ver 1.1.16 in the toolchain /lib/) and replacing the file on the router? Thank you again.

1 Like

I ran into similar issues. Hacky solution to this mismatch is providing the linker with -static this will cross compile the executable statically and it won’t require exact version match during run. I wouldn’t recommend changing libraries on your device.

Solution has to be found to build Turris OS just like OpenWRT. I ran into exact same problems you described.