1.打开ardupilot官网的编译环境网址
2.wsl设置,官网英文看不懂可以网页翻译为中文
3.在Microsoft store下载wsl和ubuntu,18版本,20版本都可以,22版本没试过。
注意:初次进入ubuntu要进行账户和密码设置,刚进去要等一会,才会提示设置账户和密码。
4. Ubuntu 说明安装 ArduPilot 开发环境在网络良好的地方进行,否则后面会出现很多问题
点击进去,官网有三行代码,复制在ubuntu中输入
- sudo
- sudo
- sudo
5.进行git克隆,或者使用清华镜像源
复制一下代码,在ubuntu进行输入。
官方网站GitHub - ArduPilot/ardupilot: ArduPlane, ArduCopter, ArduRover, ArduSub source
注意这里下载的是master版本,我们需要的版本要进行标签的更改
git clone https://github.com/ardupilot/ardupilot.git
cd ardupilot
git submodule update --init -recursive
如果需要稳定版本的固件代码还需要添加新分支
git fetch --tags
git checkout ArduSub-stable -b new-branch
git submodule update --init --recursive
6.环境
Tools/environment_install/install-prereqs-ubuntu.sh -y 安装需要的包,会安装好多。试着运行命令,看能不能运行。这条命令会自动把所有的包安装完。如果运行不了,试着以下解决方法:可能默认这个ubuntu.Sh文件是没有运行权限的,网上搜一下给这个文件运行权限。或者自己搜一下解决办法,网上很多。最后实在不行,就只能打开这个ubuntu.sh文件,看里面的代码,手动把里面的包一个个安装了。
配置环境3-------安装一些必需的包_+ pip2 -q install --user -u future lxml pymavlink -CSDN博客权限教程网址。
7. 交叉编译链
下载,输入一下代码
这里可能出现各种问题,版本好不符等,我在下面提供一个老版本的,如果要替换老版本的,就用下面网址,上面的是最新的版本,我下面会说,如何组合上面的代码。
老版本代码:
如何获取代码进行组合:
下载 |GNU Arm Embedded Toolchain 下载 – Arm Developer
上面是官网,有各种资源包,下载Linux x86_64 Tarball类型的资源包,
鼠标放在要下载的资源包上,点击鼠标右键,在新窗口打开链接,不用下载,组合代码在ubuntu上进行下载,点进去会知道下载网址,以供ubuntu进行访问下载。
如下网址:按照红色标注进行复制组合代码,前面加上wget ,(有空格),截取到bz2。
组合好代码进行复制到ubuntu上。
8.去旧迎新
①输入代码:pushd .
②输入代码:sudo apt-get remove gcc-arm-none-eabi
用来卸载新版的gcc-arm-none-eabi
③输入代码:tar -jxf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
用来安装下载好的gcc-arm-none-eabi,不同版本的需要自己进行代码组合。
④输入代码:sudo mv gcc-arm-none-eabi-10.3-2021.10 /opt
注意空格。
⑤输入代码:exportline="export PATH=/opt/gcc-arm-none-eabi-10.3-2021.10/bin:\$PATH"
if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
注意不同版本要进行代码组合。
⑥# => 使路径生效
. ~/.profile
popd
可以输入:arm-none-eabi-gcc --version查看版本是否成功。
9. 最后试着编译一下
./waf configure --board fmuv3
./waf sub
以上就是编译成功,即编译环境成功。
附加问题解决方案:
Ubuntu 64位系统,而上述arm-none-eabi是直接下载的编译好的32位,还需要安装一个东西
sudo apt-get install lsb-core
可以检查arm-none-eabi 4.9是否安装成功,输入以下指令:
arm-none-eabi-gcc --version
就是这部分。其中sudo apt-get install lsb-core这一步安装的包,不一定好用,不能用就自己搜一下,安装一个包。就是输入了arm-none-eabi-gcc --version这条指令,应该会显示一个包的版本号,显示就是成功了,不显示就是没成功。
不行就安装一下 libc6-i386系列包,网上搜一下。
另外官网有推荐下载用于更快构建的 ccache,推荐安装
cd /usr/lib/ccache
sudo ln -s /usr/bin/ccache arm-none-eabi-g++
sudo ln -s /usr/bin/ccache arm-none-eabi-gcc
可以加快编译环境。
指定编译器python3.6
./waf configure --board fmuv3
/usr/bin/python3.6 ./waf sub
固件文件将在ardupilot/build/Pixhawk1/bin/ardusub.apj
apt-get install lsb-core
可以检查arm-none-eabi 4.9是否安装成功,输入以下指令:
arm-none-eabi-gcc --version
就是这部分。其中sudo apt-get install lsb-core这一步安装的包,不一定好用,不能用就自己搜一下,安装一个包。就是输入了arm-none-eabi-gcc --version这条指令,应该会显示一个包的版本号,显示就是成功了,不显示就是没成功。
不行就安装一下 libc6-i386系列包,网上搜一下。
另外官网有推荐下载用于更快构建的 ccache,推荐安装
cd /usr/lib/ccache
sudo ln -s /usr/bin/ccache arm-none-eabi-g++
sudo ln -s /usr/bin/ccache arm-none-eabi-gcc
可以加快编译环境。
指定编译器python3.6
./waf configure --board fmuv3
/usr/bin/python3.6 ./waf sub
固件文件将在ardupilot/build/Pixhawk1/bin/ardusub.apj