<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.px4ai.com/index.php?action=history&amp;feed=atom&amp;title=PX4%E5%AD%90%E6%A8%A1%E5%9D%97</id>
	<title>PX4子模块 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.px4ai.com/index.php?action=history&amp;feed=atom&amp;title=PX4%E5%AD%90%E6%A8%A1%E5%9D%97"/>
	<link rel="alternate" type="text/html" href="https://www.px4ai.com/index.php?title=PX4%E5%AD%90%E6%A8%A1%E5%9D%97&amp;action=history"/>
	<updated>2026-05-02T17:24:48Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://www.px4ai.com/index.php?title=PX4%E5%AD%90%E6%A8%A1%E5%9D%97&amp;diff=421&amp;oldid=prev</id>
		<title>2025年9月27日 (六) 12:55 Root</title>
		<link rel="alternate" type="text/html" href="https://www.px4ai.com/index.php?title=PX4%E5%AD%90%E6%A8%A1%E5%9D%97&amp;diff=421&amp;oldid=prev"/>
		<updated>2025-09-27T12:55:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.px4ai.com/index.php?title=PX4%E5%AD%90%E6%A8%A1%E5%9D%97&amp;amp;diff=421&amp;amp;oldid=420&quot;&gt;显示更改&lt;/a&gt;</summary>
		<author><name>Root</name></author>
	</entry>
	<entry>
		<id>https://www.px4ai.com/index.php?title=PX4%E5%AD%90%E6%A8%A1%E5%9D%97&amp;diff=420&amp;oldid=prev</id>
		<title>Root：​创建页面，内容为“{{Note|本文档提供了PX4自动驾驶系统的Git子模块管理和镜像部署的完整指南。}}  == 概述 ==  PX4是一款开源的无人机自动驾驶系统，采用Git子模块管理复杂的依赖关系。本指南详细介绍了如何使用`--recursive`参数以及如何部署高效的PX4镜像服务。  == Git子模块与--recursive参数详解 ==  === 什么是Git子模块？ === Git子模块允许将一个Git仓库作为另一个Git仓库的子…”</title>
		<link rel="alternate" type="text/html" href="https://www.px4ai.com/index.php?title=PX4%E5%AD%90%E6%A8%A1%E5%9D%97&amp;diff=420&amp;oldid=prev"/>
		<updated>2025-09-27T12:52:27Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“{{Note|本文档提供了PX4自动驾驶系统的Git子模块管理和镜像部署的完整指南。}}  == 概述 ==  PX4是一款开源的无人机自动驾驶系统，采用Git子模块管理复杂的依赖关系。本指南详细介绍了如何使用`--recursive`参数以及如何部署高效的PX4镜像服务。  == Git子模块与--recursive参数详解 ==  === 什么是Git子模块？ === Git子模块允许将一个Git仓库作为另一个Git仓库的子…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Note|本文档提供了PX4自动驾驶系统的Git子模块管理和镜像部署的完整指南。}}&lt;br /&gt;
&lt;br /&gt;
== 概述 ==&lt;br /&gt;
&lt;br /&gt;
PX4是一款开源的无人机自动驾驶系统，采用Git子模块管理复杂的依赖关系。本指南详细介绍了如何使用`--recursive`参数以及如何部署高效的PX4镜像服务。&lt;br /&gt;
&lt;br /&gt;
== Git子模块与--recursive参数详解 ==&lt;br /&gt;
&lt;br /&gt;
=== 什么是Git子模块？ ===&lt;br /&gt;
Git子模块允许将一个Git仓库作为另一个Git仓库的子目录。PX4使用这种机制来管理其依赖关系：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;主仓库&amp;#039;&amp;#039;&amp;#039;: PX4-Autopilot - 核心飞行控制代码&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;子模块&amp;#039;&amp;#039;&amp;#039;: 各种依赖项目（仿真环境、通信协议、硬件驱动等）&lt;br /&gt;
&lt;br /&gt;
=== --recursive参数的作用 ===&lt;br /&gt;
&amp;lt;code&amp;gt;--recursive&amp;lt;/code&amp;gt;参数在克隆仓库时自动初始化和更新所有子模块，确保获得完整的、可立即使用的代码库。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 克隆方式对比&lt;br /&gt;
! 方式 !! 命令 !! 结果&lt;br /&gt;
|-&lt;br /&gt;
| 不使用--recursive || &amp;lt;code&amp;gt;git clone https://github.com/PX4/PX4-Autopilot.git&amp;lt;/code&amp;gt; || 代码不完整，无法编译&lt;br /&gt;
|-&lt;br /&gt;
| 使用--recursive || &amp;lt;code&amp;gt;git clone --recursive https://github.com/PX4/PX4-Autopilot.git&amp;lt;/code&amp;gt; || 代码完整，可直接编译&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 为什么PX4需要子模块？ ===&lt;br /&gt;
PX4依赖许多其他开源项目：&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;仿真环境&amp;#039;&amp;#039;&amp;#039;: Gazebo仿真器&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;通信协议&amp;#039;&amp;#039;&amp;#039;: MAVLink通信库&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;硬件驱动&amp;#039;&amp;#039;&amp;#039;: 各种传感器和控制器驱动&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;算法库&amp;#039;&amp;#039;&amp;#039;: 数学计算和控制系统库&lt;br /&gt;
&lt;br /&gt;
这些项目有自己的开发节奏和版本管理，使用子模块可以更好地管理这些依赖关系。&lt;br /&gt;
&lt;br /&gt;
== PX4镜像部署方案 ==&lt;br /&gt;
&lt;br /&gt;
=== 方案一：授权镜像方案（推荐） ===&lt;br /&gt;
与PX4项目团队合作，获得官方授权后建立镜像。&lt;br /&gt;
&lt;br /&gt;
==== 实施步骤 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 1. 获取GitHub访问令牌&lt;br /&gt;
curl -H &amp;quot;Authorization: token YOUR_GITHUB_TOKEN&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Accept: application/vnd.github.v3+json&amp;quot; \&lt;br /&gt;
  https://api.github.com/repos/PX4/PX4-Autopilot&lt;br /&gt;
&lt;br /&gt;
# 2. 设置镜像仓库&lt;br /&gt;
git clone --mirror git@github.com:PX4/PX4-Autopilot.git&lt;br /&gt;
cd PX4-Autopilot.git&lt;br /&gt;
&lt;br /&gt;
# 3. 配置定时同步（每天凌晨2点同步）&lt;br /&gt;
(crontab -l 2&amp;gt;/dev/null; echo &amp;quot;0 2 * * * cd /path/to/PX4-Autopilot.git &amp;amp;&amp;amp; git remote update&amp;quot;) | crontab -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 方案二：静态资源托管 ===&lt;br /&gt;
仅同步发布版本和文档，不提供实时git服务。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# 仅同步发布版本&lt;br /&gt;
RELEASES_URL=&amp;quot;https://api.github.com/repos/PX4/PX4-Autopilot/releases&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 获取最新发布信息&lt;br /&gt;
curl -s $RELEASES_URL | grep -o &amp;#039;&amp;quot;browser_download_url&amp;quot;: &amp;quot;[^&amp;quot;]*&amp;quot;&amp;#039; | \&lt;br /&gt;
cut -d &amp;#039;&amp;quot;&amp;#039; -f 4 | wget -qi - -P /path/to/releases/&lt;br /&gt;
&lt;br /&gt;
# 同步文档&lt;br /&gt;
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent \&lt;br /&gt;
  -P /path/to/docs/ https://docs.px4.io/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 方案三：Nginx反向代理 ===&lt;br /&gt;
使用Nginx反向代理将请求重定向到GitHub，同时修改响应内容中的链接。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name cn.px4ai.com;&lt;br /&gt;
    &lt;br /&gt;
    location /PX4/ {&lt;br /&gt;
        proxy_pass https://github.com/PX4/;&lt;br /&gt;
        proxy_set_header Host github.com;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
        &lt;br /&gt;
        # 修改HTML中的GitHub链接&lt;br /&gt;
        sub_filter &amp;#039;github.com/PX4/&amp;#039; &amp;#039;cn.px4ai.com/PX4/&amp;#039;;&lt;br /&gt;
        sub_filter &amp;#039;raw.githubusercontent.com&amp;#039; &amp;#039;cn.px4ai.com/raw&amp;#039;;&lt;br /&gt;
        sub_filter_once off;&lt;br /&gt;
        sub_filter_types text/html text/css application/javascript;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 完整部署指南 ==&lt;br /&gt;
&lt;br /&gt;
=== 环境准备 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 更新系统&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# 安装必要软件&lt;br /&gt;
sudo apt install -y nginx git curl wget&lt;br /&gt;
&lt;br /&gt;
# 创建项目目录&lt;br /&gt;
sudo mkdir -p /opt/px4-mirror/{repos,archives,www}&lt;br /&gt;
sudo chown -R $USER:$USER /opt/px4-mirror&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 下载PX4主仓库 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 切换到工作目录&lt;br /&gt;
cd /opt/px4-mirror/repos&lt;br /&gt;
&lt;br /&gt;
# 克隆PX4主仓库（使用深度克隆减少大小）&lt;br /&gt;
git clone --depth=1 https://github.com/PX4/PX4-Autopilot.git&lt;br /&gt;
cd PX4-Autopilot&lt;br /&gt;
&lt;br /&gt;
# 初始化并更新子模块（这需要较长时间）&lt;br /&gt;
git submodule update --init --recursive --depth=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 创建压缩归档 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 切换到归档目录&lt;br /&gt;
cd /opt/px4-mirror/archives&lt;br /&gt;
&lt;br /&gt;
# 创建完整PX4压缩包（排除.git文件夹以减少大小）&lt;br /&gt;
tar -czf px4-autopilot-complete.tar.gz -C /opt/px4-mirror/repos/PX4-Autopilot . --exclude=.git&lt;br /&gt;
&lt;br /&gt;
# 创建分块压缩包（适合大文件下载）&lt;br /&gt;
split -b 100M px4-autopilot-complete.tar.gz &amp;quot;px4-autopilot-complete.tar.gz.part.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 配置Nginx服务 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name cn.px4ai.com;&lt;br /&gt;
    root /opt/px4-mirror/www;&lt;br /&gt;
    &lt;br /&gt;
    # 启用自动索引&lt;br /&gt;
    autoindex on;&lt;br /&gt;
    autoindex_exact_size off;&lt;br /&gt;
    autoindex_localtime on;&lt;br /&gt;
    &lt;br /&gt;
    # 发布版本下载&lt;br /&gt;
    location /releases/ {&lt;br /&gt;
        root /opt/px4-mirror;&lt;br /&gt;
        autoindex on;&lt;br /&gt;
        &lt;br /&gt;
        # 设置缓存策略&lt;br /&gt;
        expires 6h;&lt;br /&gt;
        add_header Cache-Control public;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    # 文档服务&lt;br /&gt;
    location /docs/ {&lt;br /&gt;
        root /opt/px4-mirror;&lt;br /&gt;
        index index.html;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    # 重定向到文档&lt;br /&gt;
    location / {&lt;br /&gt;
        return 302 /docs/;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 设置自动同步 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# PX4镜像同步脚本&lt;br /&gt;
&lt;br /&gt;
LOG_FILE=&amp;quot;/opt/px4-mirror/sync.log&amp;quot;&lt;br /&gt;
REPO_DIR=&amp;quot;/opt/px4-mirror/repos/PX4-Autopilot&amp;quot;&lt;br /&gt;
ARCHIVE_DIR=&amp;quot;/opt/px4-mirror/archives&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 记录开始时间&lt;br /&gt;
echo &amp;quot;开始同步: $(date)&amp;quot; | tee -a $LOG_FILE&lt;br /&gt;
&lt;br /&gt;
# 更新主仓库&lt;br /&gt;
cd $REPO_DIR&lt;br /&gt;
git pull origin main 2&amp;gt;&amp;amp;1 | tee -a $LOG_FILE&lt;br /&gt;
&lt;br /&gt;
# 更新子模块&lt;br /&gt;
git submodule update --recursive --remote 2&amp;gt;&amp;amp;1 | tee -a $LOG_FILE&lt;br /&gt;
&lt;br /&gt;
# 重新创建压缩包&lt;br /&gt;
cd $ARCHIVE_DIR&lt;br /&gt;
tar -czf px4-autopilot-complete.tar.gz -C $REPO_DIR . --exclude=.git 2&amp;gt;&amp;amp;1 | tee -a $LOG_FILE&lt;br /&gt;
&lt;br /&gt;
# 创建分块压缩包&lt;br /&gt;
split -b 100M px4-autopilot-complete.tar.gz &amp;quot;px4-autopilot-complete.tar.gz.part.&amp;quot; 2&amp;gt;&amp;amp;1 | tee -a $LOG_FILE&lt;br /&gt;
&lt;br /&gt;
# 记录完成时间&lt;br /&gt;
echo &amp;quot;同步完成: $(date)&amp;quot; | tee -a $LOG_FILE&lt;br /&gt;
echo &amp;quot;----------------------------------------&amp;quot; | tee -a $LOG_FILE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 用户使用指南 ==&lt;br /&gt;
&lt;br /&gt;
=== 一键下载完整PX4 ===&lt;br /&gt;
用户可以通过以下命令一键下载完整PX4：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 下载完整压缩包&lt;br /&gt;
wget https://cn.px4ai.com/archives/px4-autopilot-complete.tar.gz&lt;br /&gt;
&lt;br /&gt;
# 解压缩&lt;br /&gt;
tar -xzf px4-autopilot-complete.tar.gz&lt;br /&gt;
&lt;br /&gt;
# 或者下载分块压缩包并合并&lt;br /&gt;
cat px4-autopilot-complete.tar.gz.part.* &amp;gt; px4-autopilot-complete.tar.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 使用Git协议访问 ===&lt;br /&gt;
用户可以将GitHub URL替换为镜像URL：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 原命令&lt;br /&gt;
git clone https://github.com/PX4/PX4-Autopilot.git&lt;br /&gt;
&lt;br /&gt;
# 镜像命令（保持相同使用习惯）&lt;br /&gt;
git clone https://cn.px4ai.com/PX4/PX4-Autopilot.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 常见问题与解决方案 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 常见问题与解决方案&lt;br /&gt;
! 问题 !! 解决方案&lt;br /&gt;
|-&lt;br /&gt;
| 子模块更新失败或内容为空 || &amp;lt;code&amp;gt;git submodule deinit -f . &amp;amp;&amp;amp; git submodule update --init --recursive&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 编译时缺少依赖文件 || 确保使用了&amp;lt;code&amp;gt;--recursive&amp;lt;/code&amp;gt;参数或手动运行了子模块更新&lt;br /&gt;
|-&lt;br /&gt;
| 镜像同步延迟 || 使用多个镜像源或直接使用GitHub源&lt;br /&gt;
|-&lt;br /&gt;
| 存储空间不足 || 使用浅克隆或定期清理旧版本&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 合规性建议 ==&lt;br /&gt;
&lt;br /&gt;
无论选择哪种方案，请确保遵循以下合规性建议：&lt;br /&gt;
* 明确标注镜像来源和版权信息&lt;br /&gt;
* 遵循GitHub的机器人规则，设置合理的请求间隔&lt;br /&gt;
* 仅同步必要的资源，避免完整镜像整个GitHub&lt;br /&gt;
* 考虑使用GitHub官方的镜像方案（如GitHub Enterprise）&lt;br /&gt;
* 定期检查服务条款更新，确保合规性&lt;br /&gt;
&lt;br /&gt;
== 相关页面 ==&lt;br /&gt;
* [[PX4仿真指南]] - 如何使用PX4进行软件在环仿真&lt;br /&gt;
* [[PX4硬件配置]] - 支持的飞控板和传感器&lt;br /&gt;
* [[PX4参数调优]] - 飞行参数调整指南&lt;br /&gt;
* [[Git使用指南]] - 更全面的Git版本控制教程&lt;br /&gt;
&lt;br /&gt;
== 分类 ==&lt;br /&gt;
[[Category:PX4]]&lt;br /&gt;
[[Category:无人机]]&lt;br /&gt;
[[Category:自动驾驶系统]]&lt;br /&gt;
[[Category:Git]]&lt;br /&gt;
[[Category:开源项目]]&lt;br /&gt;
[[Category:软件开发]]&lt;br /&gt;
[[Category:镜像服务]]&lt;br /&gt;
&lt;br /&gt;
{{Footer}}&lt;/div&gt;</summary>
		<author><name>Root</name></author>
	</entry>
</feed>