tinyspot 发表于 2023-11-19 14:05:48

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]
查看完整版本: Windows11 23H2上使用Linux子系统编译Ardupilot