Recently, I have installed the latest version of Ubuntu on M$ store (22.04 i think) to compile Ardusub 4.1.0 (previously I have successfully compiled the same version but on different PC). I have installed GCC-6, G+±6 from the old bionic archive for the compiler as well as set up all the environment for ArduSub.
However, newer version came up with a lot un-supported packages so I have to manually installed them including GCC-6 G+±6 and ARM cross compiler (arm-linux-gnueabihf and arm-linux-gnueabi). The package were located in /usr/bin.
Everything was alright until I got to config for navigator board using ./waf (I was able to do this with Ubuntu 20.04).
is there a way to fix this ? Much appreciate for your help.
also, this is the attached log file from the build folder. Hope this helps config.log (3.0 KB)
I don’t know if ArduSub 4.1.0 is set up to be buildable with Ubuntu 22.04, so I’ve asked the software team to confirm. If it isn’t there could be a variety of tools missing / with unexpected versions or paths.
Ardupilot is currently building Linux firmwares with gcc 7.5.0. You can specify a toolchain using the --toolchain argument for waf.
This is what it looks like this to use 9.2.1: ./waf configure --board=Navigator --toolchain=/opt/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf
I got lost in the files and packages so I went back to 20.04. I think i may have not installed enough essential packages and the prereqs_install file does not work too well with the new jammy jellyfish for now. Much appreciate for your help !
install-prereqs-ubuntu.sh was last updated in the Sub-4.1 branch in June 2021, so it’s not too surprising it isn’t fully configured for the Ubuntu version that was officially released in April 2022. That is something we should update (presumably by back-porting changes from master), but has not yet been done. In the meantime it may work to use 22.04 by building from the master branch, but I don’t believe that’s something we’ve tested, and there are no guarantees there of code stability.