编译INAV固件的详细步骤
本文编译环境:win11,wsl2,ubuntu22.04 本文视频教程已上传至B站: 《INAV源码的编译》 1.0 INAV固件的编译环境 WSL2、ubuntu22.04系统。 本人之前用ubuntu20.04系统,可以正常编译APM...
本文编译环境:win11,wsl2,ubuntu22.04
本文视频教程已上传至B站:《INAV源码的编译》
1.0 INAV固件的编译环境
WSL2、ubuntu22.04系统。
本人之前用ubuntu20.04系统,可以正常编译APM、BF、PX4固件,但是编译不了INAV固件,因此我将linux系统升级到了ubuntu22.04!
如果大家的子系统是ubuntu20.04,并且需要编译INAV固件的,可以参考这个文档进行重装升级!019a5718-883f-77b1-b4f5-02c7fb0fc176
1.1下载WFG100硬件配置文件
访问:0199a3ef-6738-7cdb-ba80-1e5530dd389a
将WFG100飞控的INAV硬件配置文件压缩包,下载至本地电脑,所下图所示:
1.2 下载INAV源码
git clone https://github.com/iNavFlight/inav.git1.3 切换到指定版本
cd inav
git checkout 8.0.11.4 将硬件配置文件放置到指定的文件夹下
将INAV固件的硬件定义文件,放到以下目录中/inav/src/main/target如下图所示:

1.5 创建构建目录
创建一个独立的构建目录,以便管理构建文件。
mkdir build
cd build这会在 inav 根目录下创建一个 build 文件夹并切换到该目录。
1.6 安装Ruby工具
在 inav/build 目录下,安装,执行以下命令
sudo apt update
sudo apt-get upgrade -y
sudo apt install ruby ruby-dev rubygems -y
ruby -v #查看是否安装完成1.7 安装camake工具
在 inav/build 目录下,安装,执行以下命令
sudo apt install cmake -y1.8 配置项目
使用 CMake 配置 INAV 项目的构建环境。无需手动准备工具链,CMake 会自动下载并配置所需工具。
在 inav/build 目录下,执行以下命令:
cmake ..这个过程会非常漫长!大家要耐心等待。(电脑最好可以魔法出去)。
有些朋友的网络可能不太好,在下载过程中由于网络波动卡顿,可能会报错出现一些问题。
如果发生了报错只能先清除之前下载的所有东西,再重新下载了,执行以下命令:
cd ~
cd inav/
rm -rf downloads/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz
cd ~
cd inav/build/
rm -rf * # 清除构建缓存清理完缓存文件后,再重新执行:
cmake ..最后执行成功的界面,如下图所示:

1.9 编译固件
使用 make 编译 INAV 固件,指定 WFG100 为目标平台。-j12 表示并行编译,最大使用 12 个线程(可以根据自己电脑的性能,调整线程数)。
make WFG100 -j12这将开始编译并生成适用于 WFG100 飞控的INAV固件文件。
1.10 查找生成的.elf固件
编译完成后,生成的固件文件 WFG100.elf 会位于 inav/build/bin 目录下。
如下图所示,WFG100.elf就是INAV飞控的固件!

注:.elf的固件必须要stm32cubeprogrammer工具才能烧录!
1.11 通过.elf固件,生成.hex固件。
有些朋友可能需要.hex固件来通过地面站进行烧录,因此可以执行以下命令,通过已有的.elf,再生成.hex固件!
cd ~
cd inav
sudo apt install binutils-arm-none-eabi
arm-none-eabi-objcopy -O ihex build/bin/WFG100.elf build/bin/WFG100.hex执行完上面 命令后,到inav/build/bin 目录下,就会看到.hex 和.elf的 固件都生成了 !

其他注意事项
1)编译时间:首次编译可能需要较长时间,尤其是并行编译时,确保计算机性能良好。
2)问题排查:如果编译过程中出现问题,请检查补丁是否正确应用,或者 CMake 配置是否有误。
3)网速问题:执行cmake ..命令时,可能需要等待很久,这跟网速有关!电脑最好可以魔法出去!