PX4开发环境搭建--源码下载+基本工具链

PX4 开发环境搭建(2022.5.28)

  • 前言
  • 一、基本工具
  • 二、基本步骤
    • 1.安装虚拟机和Ubuntu操作系统
      • 注意
    • 2. 修改虚拟机上源网站
      • (1)备份原来的sources.list
      • (2) 打开sources.list进行修改
      • (3)刷新列表
        • 附:apt命令介绍
    • 3. 配置虚拟机上git环境
    • 4. 下载PX4(包括子模块)源码
    • 5. 配置PX4所需库和工具
    • 6. 测试
  • 总结


前言

由于各种原因,国内网络搭建PX4开发环境会比较困难。(而且最近gitee也挂了。)
其实安装过程自己最近几年尝试过很多次,都因为网络问题半途而废了。由于被封闭太久,脑子不太正常,突然又想尝试一下在自己电脑上搭建PX4环境。
本文主要是给自己做个记录。配置过程中参考了许多大佬的经验和文章,非常感谢。另外,相关工具和信息有时效,不能保证几天之后依旧可用。本人对Ubuntu, git等都是小白级别,相信还有很多大佬有更加有效的方法,如果有人看到本文,并且发现有不足,恳请指正。


一、基本工具

Windows 10 笔记本
VirtualBox 6.1
Ubuntu 18.04
可靠的github国内镜像(https://blog.csdn.net/Ejzq1/article/details/123560340)

二、基本步骤

1.安装虚拟机和Ubuntu操作系统

VirtualBox一键安装,在虚拟机上安装Ubuntu操作系统相关流程比较简单。

注意

VirtualBox和Ubuntu的版本,这在VirtualBox的下载页面上写了,自己第一次配置的时候没有注意,VirtualBox6.1 不支持将Ubuntu 22.04,但是自己这么安装了,导致后面的界面问题,浪费了好几个小时。
VirtualBox中安装好Ubuntu 18.04之后,会发现界面很小。这时候需要在VirtualBox 的窗口中选择Device-> Insert Guest Additional CD
PX4开发环境搭建--源码下载+基本工具链_第1张图片
此时Ubuntu桌面上会出现一个光盘图标,直接双击运行(虽然这很不Linux),运行完毕之后重启虚拟机。之后的操作都在Ubuntu上进行。

2. 修改虚拟机上源网站

后面(第4步)需要安装各种工具包,如果没有梯子等,建议使用国内镜像。这里使用阿里云。(之前使用清华源,居然发现有些lib没有。。。不过也有可能是自己在当中有什么操作问题)。网上有很多相关资料。 可参考:
https://developer.aliyun.com/article/639051

(1)备份原来的sources.list

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

(2) 打开sources.list进行修改

sudo gedit /etc/apt/sources.list

在文件最前面加上

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

(3)刷新列表

sudo apt-get update
sudo apt-get upgrade

注:这里我只操作了 apt-get update,刷新源网站地址,从而在后面安装各种库时,都从阿里云中下载,加快速度。但是没有执行upgrade。upgrade是把当前安装的lib都升级。之所以没有升级,是因为之前遇到过在安装PX4工具链时,库版本太高而无法安装。个人认为相关升级可以到后面安装时自动进行。

附:apt命令介绍

sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
sudo apt-cache search package 搜索软件包
sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装
sudo apt-get remove package --purge 删除包,包括配置文件等
sudo apt-get build-dep package 安装相关的编译环境
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-cache depends package 了解使用该包依赖那些包
sudo apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖

3. 配置虚拟机上git环境

sudo apt-get install git

之后需要修改git的路径。这就需要用到国内稳定的镜像,并且镜像内容需要经常更新。(自己开始没有注意这点,用了一个很久没更新的镜像,在源码下载和工具链配置完成后进行build才发现很多错误。去github上查看,发现clone下来的完全对不上。)最好自己查找一下。这次使用的是:https://hub.fastgit.xyz/ (参考:https://blog.csdn.net/Ejzq1/article/details/123560340)
git有相关全局配置,可以通过以下命令修改

git config --global url."https://hub.fastgit.xyz".insteadOf https://github.com

通过这个配置,后面git时所有的 github.com 都会被替换成 hub.fastgit.xyz
这个配置的结果可以通过下面方式来看

git config --list

或者直接查看,并且编辑git的config 文件。(这个文件一开始好像没有,似乎只有执行了 git config --global url. “”… insteadof… 这句命令之后才会出现)

git config --global --edit

4. 下载PX4(包括子模块)源码

ctrl+alt+t,然后新建文件夹

mkdir Developer
cd Developer

在Developer文件夹下

git clone https://github.com/PX4/PX4-Autopilot.git --recursive

这里虽然用了 github.com,但是实际上用的是前面修改的 hub.fastgit.xyz。注意有 --recursive。这里执行完毕之后,由于是默认文件夹,在在Developer文件夹下会出现 PX4-Autopilot文件夹
然而,即使recursive了,其实也没有把所有子模块的代码下载下来,还需要执行

cd PX4-Autopilot
git submodule update --init --recursive

才能把子模块也clone下来。
在这里自己踩过一个坑。git下载子模块的是根据PX4-Autopilot文件夹下面的一个隐藏文件 .gitmodules中的内容来的(隐藏文件显示 ctrl+ H)。最开始时,在执行第一次git clone时没有加 recursive,因为怀疑子模块还是会直接从github.com网站下载,速度很慢,所以先希望它不要下载子模块,在有了最上层的PX4-Autopilot之后,修改.gitmodules里面的url路径为再执行 子模块的更新。但是发现,这么做好像没法更新!执行了 submodule update之后,没有任何反应!在这里也浪费了很多时间。后来还是重新克隆了一个PX4-Autopilot,步骤如上所述,并且没有手动改下.gitmodules。前面子模块无法更新的原因,至今是个谜。
“完整的”PX4包括其子模块(我认为“完整的”,因为至少后面可以编译)大概有1.8G,但是错误方法clone,没有子模块的只有824Mb。

5. 配置PX4所需库和工具

在做了上述clone之后,其实PX4的开发者们为方便大家开发,准备好了一个脚本,一键安装工具。

cd PX4-Autopilot/Tools/setup
bash ./ubuntu.sh

后面就可以等着了(当然中间需要输入几次密码)。完成之后重启系统。可以尝试make。

6. 测试

在PX4-Autopilot文件夹下面使用以下命令进行测试

make px4_sitl jmavsim

如果配置和源码下载正常,就可以看到青青草原和小四旋翼飞机啦~


总结

在Ubuntu上配置PX4环境主要有两个部分,都有难点

  • PX4依赖配置,难点是访问国外apt源速度慢,解决方案是修改系统的sources.list
  • PX4完整的源码下载,这里的难点是github 访问太慢(还是网络问题),解决方案是修改git的全局配置,使用github的国内最新、稳定镜像

你可能感兴趣的:(ubuntu,linux,github)