cross-compile 'make' fails on Linux Mint
I followed the instructions listed at https://docs.onion.io/omega2-docs/cross-compiling.html, and am stuck at a build error. Here is the entire build output for 'make':
WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist WARNING: Makefile 'package/utils/busybox/Makefile' has a build dependency on 'libpam', which does not exist WARNING: Makefile 'package/network/utils/curl/Makefile' has a dependency on 'libgnutls', which does not exist WARNING: Makefile 'package/network/utils/curl/Makefile' has a dependency on 'libopenldap', which does not exist WARNING: Makefile 'package/network/utils/curl/Makefile' has a dependency on 'libidn2', which does not exist WARNING: Makefile 'package/network/utils/curl/Makefile' has a dependency on 'libssh2', which does not exist WARNING: Makefile 'package/boot/kexec-tools/Makefile' has a dependency on 'liblzma', which does not exist WARNING: Makefile 'package/network/services/lldpd/Makefile' has a dependency on 'libnetsnmp', which does not exist make world make target/compile make -C target/linux compile make diffconfig make package/cleanup make package/compile make -C package/libs/libjson-c host-compile make -C package/libs/libubox host-compile make -C package/system/opkg host-compile make package/install make -r world: build failed. Please re-run make with -j1 V=s to see what's going on /home/mike/omega-cross-compile/source/include/toplevel.mk:216: recipe for target 'world' failed make: *** [world] Error 1
I have assumed those warnings are not the cause of the build error, but otherwise there is little to go on so far.
So I follow that up with 'make -j1 V=s' as instructed, and when I make that call, the build never throws an error - instead, it gets stuck at the same place in the build (no matter how many times I try it, or if I do 'make clean' first, or if I use sudo, or reboot, etc). The build proceeds just fine until it reaches this line:
mkdir -p /home/mike/omega-cross-compile/source/staging_dir/packages/ramips
(The username is 'mike' obviously.)
I've let this run for over a day to see if it's taking tens of hours to do whatever it's trying to do after creating the directory, but I never see further progress. I did confirm that the ramips directory got created. Any thoughts on what is blocking me? Thanks.
@indianajones Here are the steps I would take:
- make clean
- make -j 9
Step 1 will cause make to only build components that are used in the Omega firmware release and will drastically reduce your build time. It may also solve your issue as I suspect the issue is a confluence of dependency issues. If it still fails then please run make -j 1 V=s and post the log.
@crispyoz wow, that worked! So I also got an error message when I started the make:
WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig!
Nonetheless, the make succeeded with no other warnings. I re-ran 'make menuconfig' and saw that my settings were still correct, except it didn't save the target board (Omega 2+). So I've fixed that an am running make again, which I imagine will still work. I didn't get the above error message after fixing the target board in menuconfig.
So thanks a bunch for the help!
@indianajones Good news, well done.