Jetson Orin Nano Super之jetson-fpv开源代码下载
- 1. 源由
- 2. 方法
- 2.1 优化配置
- 方案一:增加缓冲
- 方案二:降低并发数
- 方案三:临时禁用深度克隆
- 2.2 路径更换
- 方案一:设置代理
- 方案二:替换git协议
- 方案三:替换https协议
- 方案四:手动clone
- 3. 总结
- 4. 参考资料
1. 源由
问题还是源于国内的网络环境,应该说对于技术研发来说非常不友好。
虽然,前面有过很多方式方法,但是“与时俱进”的氛围下,友好程度也在随着外围环境发生变化。
本次为了获取jetson-fpv的代码(主要是子模块),一直下不下来,各种妖怪事情。
因此,再梳理下各种方法,另外也给出一些经验,希望对大家有帮助!
- 时间点不同导致网络情况变化,因此可以换一个时间尝试;
- 代理服务导致网络稳定性异常,因此可以更换代理服务器;
- https协议与git协议的稳定性问题,因此可以更换另一种协议进行尝试;
呵呵!这篇好像名称与内容不符。好多人都这么在问。确实文字可能换成其他的更好,但是写这个主要是为了下载jetson-fpv的代码。因为,笔者升级了Jetson Orin Nano 8GB到Jetpack 6.2 版本,为了用最新的Super 67Tops性能。哈哈!!!
这个jetson-fpv就是一个fpv视频的AI视频分析应用,没什么太多的东西,目前正在评估其性能,后续会有延伸的用途(其支持C/C++/Python)。
全网首台 jetson-fpv | yolo11n | AKM ArduRover 4.5.7
注:将Jetson Orin Nano Super系统整理好,我们就带着OpenIPC去飞一圈!
2. 方法
这里给出的方法主要是技术手段,而针对时间点选取、代理服务器选取,需要自行多多尝试!!!
2.1 优化配置
方案一:增加缓冲
增加 Git 的缓冲区大小,将缓冲区设置为 500 MB。
$ git config --global http.postBuffer 524288000
方案二:降低并发数
Git 默认并发克隆子模块,可能会加重服务器的压力。尝试限制并发数 http.maxRequests
设置为较小的值(如 5),以减少压力。
$ GIT_CURL_VERBOSE=1 git -c http.maxRequests=5 submodule update --init --recursive
方案三:临时禁用深度克隆
临时禁用子模块的深度克隆:
$ git config --global fetch.recurseSubmodules false
$ git submodule update --init --recursive --depth=1
2.2 路径更换
方案一:设置代理
- 查询
$ git config --global --get http.proxy
$ git config --global --get https.proxy
- 设置
$ git config --global http.proxy http://192.168.1.10:808
$ git config --global https.proxy http://192.168.1.10:808
- 取消
$ git config --global --unset http.proxy
$ git config --global --unset https.proxy
方案二:替换git协议
- 查询协议
$ git config --file .gitmodules --get-regexp url
- 修改git协议下载
$ git config --file .gitmodules submodule.<submodule-name>.url git@github.com:user/repo.git
$ git submodule sync
$ git submodule update --init --recursive
- 多模块git协议替换
$ sed -i 's|https://github.com/|git@github.com:|g' .gitmodules
$ git submodule sync
$ git submodule update --init --recursive
方案三:替换https协议
- 查询协议
$ git config --file .gitmodules --get-regexp url
- 修改https协议下载
$ git config --file .gitmodules submodule.<submodule-name>.url https://github.com/user/repo.git
$ git submodule sync
$ git submodule update --init --recursive
- 多模块https协议替换
$ sed -i 's|git@github.com:|https://github.com/|g' .gitmodules
$ git submodule sync
$ git submodule update --init --recursive
方案四:手动clone
$ git config --file .gitmodules --get-regexp url //查看子模块配置URL
$ git config --file .gitmodules --get submodule.<submodule-name>.url //获取子模块路径
$ git clone <submodule-url> <submodule-path> //手动克隆到子模块目录
$ git submodule absorbgitdirs //更新索引
终极方案:逐一排除问题,如果子模块很多,就需要一个一个的整理。
例如:
$ git config --file .gitmodules --get-regexp url
submodule.module/jetson-inference.url https://github.com/dusty-nv/jetson-inference.git
submodule.module/jetson-utils.url https://github.com/dusty-nv/jetson-utils.git
submodule.module/wfb-ng.url https://github.com/svpcom/wfb-ng.git
submodule.module/msposd.url https://github.com/OpenIPC/msposd.git
submodule.module/ByteTrack.url https://github.com/SnapDragonfly/ByteTrack.git
submodule.module/deepstream_python_apps.url https://github.com/NVIDIA-AI-IOT/deepstream_python_apps.git
submodule.module/DeepStream-Yolo.url https://github.com/marcoslucianops/DeepStream-Yolo.git
submodule.module/jetson-yolo.url https://github.com/SnapDragonfly/jetson-yolo.git$ git config --file .gitmodules --get submodule.module/jetson-inference.url
https://github.com/dusty-nv/jetson-inference.git$ git clone https://github.com/dusty-nv/jetson-inference.git module/jetson-inference$ git submodule absorbgitdirs
3. 总结
笔者遇到的问题:时间点不同导致网络情况变化,因此可以换一个时间尝试
莫名其妙的就好了!!!
4. 参考资料
【1】Github操作网络异常笔记