PX4环境git submodule update --init --recursive失败的解决办法

3 篇文章 0 订阅

最近开始搭建PX4环境,搭建是需要从github下载工程,然后使用语句git submodule update --init --recursive更新工程子模块,但往往由于网络原因这一步需要很久,甚至会失败。因为github是外网,在上面下载代码会受到很大限制,往往会出现下面的问题:在这里插入图片描述

即无法连接到github,查阅了相关资料后,我发现了解决更新子模块失败的方法:
1.打开你下载的PX4源码,即Firmware文件夹,找到其中的.gitmodules,如下图:在这里插入图片描述
在这里插入图片描述
2…gitmodules有以上格式,path代表其要更新的子模块位置,url代表从哪个地方下载源码,既然github连接困难,就将url中所有github.com改为github.com.cnpmjs.org,改完后保存
在这里插入图片描述
3.保存后CRTL+ALT+T打开终端,然后cd到Firmware文件夹下,运行git submodule sync,将改动更新
在这里插入图片描述
4.更新完后,再次运行submodule update --init --recursive,就可以完成PX4子模块更新

后续补充

在后来翻看PX4源码后,我发现除了Firmware主目录文件夹下有.gitmodules文件,在某些子模块也存在,同理,我们也需要修改这些.gitmodules文件,具体做法补充如下

cd PX4源码文件夹/src/drivers/uavcan/libuavcan
gedit .gitmodules

修改.gitmodules文件,将该文件改为如下

[submodule "dsdl"]
	path = dsdl
	url = https://github.com.cnpmjs.org/UAVCAN/dsdl
	branch = legacy-v0
[submodule "libuavcan/dsdl_compiler/pyuavcan"]
	path = libuavcan/dsdl_compiler/pyuavcan
	url = https://github.com.cnpmjs.org/UAVCAN/pyuavcan

将子模块更新网站从github.com改为github.com.cnpmjs.org,然后运行

git submodule update --init

接下来,按同样的步骤修改以下文件夹中的.gitmodules文件,每次修改完文件,需要利用git submodule update --init更新一下
需要修改的文件目录如下

cd PX4源码文件夹/src/drivers/uavcan/libuavcan
cd PX4源码文件夹/Tools/jMAVSim
cd PX4源码文件夹/Tools/sitl_gazebo
cd PX4源码文件夹/platforms/qurt/dspal
cd PX4源码文件夹/src/drivers/uavcan/libuavcan/libuavcan/dsdl_compiler/pyuavcan
cd PX4源码文件夹/Tools/sitl_gazebo/external/OpticalFlow
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值