发新帖

Windows11 23H2上使用Linux子系统编译Ardupilot

[复制链接]
1720 0
本帖最后由 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子系统软件包。
  1. sudo apt-get update && sudo apt-get upgrade
复制代码


输入安装Linux子系统时输入的密码。


等待更新完成。


中途有需要输入密码的就输入安装时设置Linux子系统密码。



输入 Y 回车。


等待命令完成。


输入以下命令下载Ardupilot源代码(以固定翼稳定版固件为例)。
  1. git clone --recursive --branch ArduPlane-stable https://github.com/ArduPilot/ardupilot.git
复制代码



命令完成后输入以下命令进入源代码目录。
  1. cd ardupilot
复制代码



输入以下命令安装编译环境。
  1. ./Tools/environment_install/install-prereqs-ubuntu.sh -y
复制代码

按照提示输入密码。


等待命令完成。




至此编译环境搭建完成。


编译ArduPilot固件:


首先打开之前安装的Ubuntu(开始菜单)。


输入
  1. cd ardupilot
复制代码



教程以编译CubeBlack为例。
输入
  1. python3 ./waf configure --board CubeBlack
复制代码


提示缺少arm-none-eabi-ar组件
输入
  1. sudo apt-get install gcc-arm-none-eabi
复制代码


输入 Y 回车


等待命令完成。


再次输入编译命令
  1. python3 ./waf configure --board CubeBlack
复制代码



提示缺少make,输入以下命令安装。
  1. sudo apt-get install make
复制代码




提示输入密码。


等待命令完成。


再次输入编译命令,之前的报错已经消失。


输入以下命令编译固定翼固件(包含垂起)。
  1. python3 ./waf plane
复制代码


提示缺少安装包,输入以下命令安装。
  1. sudo apt-get install python3-pip
复制代码


提示输入密码。




输入Y 然后回车。


等待命令完成后,再次输入以下命令。
  1. python3 ./waf plane
复制代码



提示和之前一样。


输入以下命令。
  1. python3 -m pip install empy
复制代码



等待命令完成。


然后再次输入编译命令。
  1. python3 ./waf plane
复制代码


提示了缺少模块。




输入以下命令安装。
  1. pip install future
复制代码



等待命令完成。


再次输入编译命令。
  1. python3 ./waf plane
复制代码


继续提示缺少组件。


输入以下命令安装。
  1. pip install -U pymavlink future lxml
复制代码


命令完成后继续输入编译命令。
  1. python3 ./waf plane
复制代码


提示如下则编译完成。


每次修改完主板定义后可以使用以下命令清理编译缓存。

  1. python3 ./waf distclean
复制代码

以下命令可以列出可用的板名称。
  1. 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 文件夹 可以输入如下命令。
  1. rm -rf ardupilot/
复制代码







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

更多

客服中心

400-800-8888 周一至周日8:30-20:30 仅收市话费
快速回复 返回顶部 返回列表