Windows11 23H2上使用Linux子系统编译Ardupilot
本帖最后由 tinyspot 于 2023-11-20 10:39 编辑1.在Windows 11上启用linux子系统。
开始菜单点击设置然后选择应用(如图)
点击可选功能,找到更多Windows功能。
勾选适用于Linux的Windows子系统。
点击确定。
点击立即重新启动。系统重启完成后点击如下链接打开Microsoft Store 并安装Ubuntu。
https://apps.microsoft.com/detail/9MTTCL66CPXJ?hl=en-us&gl=US
点击Install
点击打开Microsoft Store。
然后点击获取。
安装完成后点击打开。
输入Linux子系统用户名。
输入Linux子系统密码。
再输一遍Linux子系统密码。
显示如下,Linux子系统安装完成。
输入以下命令更新Linux子系统软件包。
sudo apt-get update && sudo apt-get upgrade
输入安装Linux子系统时输入的密码。
等待更新完成。
中途有需要输入密码的就输入安装时设置Linux子系统密码。
输入 Y 回车。
等待命令完成。
输入以下命令下载Ardupilot源代码(以固定翼稳定版固件为例)。
git clone --recursive --branch ArduPlane-stable https://github.com/ArduPilot/ardupilot.git
命令完成后输入以下命令进入源代码目录。
cd ardupilot
输入以下命令安装编译环境。
./Tools/environment_install/install-prereqs-ubuntu.sh -y
按照提示输入密码。
等待命令完成。
至此编译环境搭建完成。
编译ArduPilot固件:
首先打开之前安装的Ubuntu(开始菜单)。
输入
cd ardupilot
教程以编译CubeBlack为例。
输入
python3 ./waf configure --board CubeBlack
提示缺少arm-none-eabi-ar组件
输入
sudo apt-get install gcc-arm-none-eabi
输入 Y 回车
等待命令完成。
再次输入编译命令
python3 ./waf configure --board CubeBlack
提示缺少make,输入以下命令安装。
sudo apt-get install make
提示输入密码。
等待命令完成。
再次输入编译命令,之前的报错已经消失。
输入以下命令编译固定翼固件(包含垂起)。
python3 ./waf plane
提示缺少安装包,输入以下命令安装。
sudo apt-get install python3-pip
提示输入密码。
输入Y 然后回车。
等待命令完成后,再次输入以下命令。
python3 ./waf plane
提示和之前一样。
输入以下命令。
python3 -m pip install empy
等待命令完成。
然后再次输入编译命令。
python3 ./waf plane
提示了缺少模块。
输入以下命令安装。
pip install future
等待命令完成。
再次输入编译命令。
python3 ./waf plane
继续提示缺少组件。
输入以下命令安装。
pip install -U pymavlink future lxml
命令完成后继续输入编译命令。
python3 ./waf plane
提示如下则编译完成。
每次修改完主板定义后可以使用以下命令清理编译缓存。
python3 ./waf distclean
以下命令可以列出可用的板名称。
python3 ./waf list_boards
编译其他目标命令
python3 ./waf copter 编译多轴固件
python3 ./waf heli 编译直升机固件
python3 ./waf plane 编译固定翼固件(包括垂起固定翼)
python3 ./waf rover 编译小车固件
python3 ./waf sub 编译潜艇固件
python3 ./waf antennatracker 编译天线跟踪固件
python3 ./waf AP_Periph 编译外设固件
编译bootloader:
python3 ./waf configure --board YourBoard --bootloader
python3 ./waf clean
python3 ./waf bootloader
编译主板:
python3 ./waf configure --board YourBoard
如果需要删除 ardupilot 文件夹 可以输入如下命令。
rm -rf ardupilot/
页:
[1]