在Ubuntu下编译pixhawk的详细过程
及可能出现的错误汇总
请一定选择稍后安装
Ubuntu的位数根据电脑的位数来选择
这个文件及自己建立一个,方便管理
至少50G,这个是虚拟内存,不必担心,整个系统安装下来大约占你硬盘实际内存6--8G
浏览选择实现下载好的Ubuntu镜像
分配内存4G,4096MB
Ctrl + atl +T 打开命令行终端
输入sudo usermod -a -G dialout $USER,然后登出系统,再登陆
在虚拟机的界面找到 虚拟机-->>安装vmware tools 。进行安装,
完成后再Ubuntu下能看到VMware——tools.9.6.gz.tar。将该文件拷贝到/home目录下。 tar -xvf VMwareTools.9.6.gz.tar可解压
解压之后执行 cd 进入解压后的目录。
执行 sudo ./vmware-install.pl 进行安装
安装过程中按照提示敲yes或者No即可完成安装
完成安装后重启系统(即在终端下敲reboot)。系统重启后可生效。
在Ubuntu下就可以实现Windows下文件和命令的粘贴了;
将脚本文件ubuntu_sim_common_deps.sh复制到home文件夹
输入source ubuntu_sim_common_deps.sh运行脚本,该脚本会自动配置系统,下载需求的代码,该操作需要十几到几十分钟,主要受git上下载速度影响。
完毕
根据提示继续安装 git
sudo apt install git
git下载最新稳定版固件,可以在home文件里夹直接下载:
sudo git clone -b v1.6.5 https://github.com/PX4/Firmware.git
注意看目录,编译的过程中目录很重要
接下来
cd Firmware/ (请大家千万注意目录,目录非常重要)
然后
sudo git submodule update --init --recursive
完成
接下来进入Firmware文件夹下Firmware目标
cd /home/src/Firmware/Firmware(但是我发现我没有找到这个菜单,很显然出现了问题)跳过
继续
最后一步,编译四轴固件
sudo make px4fmu-v2_default
(再提示一遍,请非常注意目录)
很显然,如图所示,出现了问题
我尝试更新数据包,执行sudo apt-get update
但是不行,接着我注销当前用户,再登录,执行sudo make px4fmu-v2_default
如下 提示cmake not find 嗯,这就好办了,安装cmake
执行sudo apt install cmake
好的 安装完继续编译sudo make px4fmu-v2_default
发现还是不行,提示 could not find arm-none-eabi-gcc ,嗯,那好办 ,安装交叉编译器嘛
执行sudo apt install gcc-arm-none-eabi
好的 安装好交叉编译器之后我们继续来
执行sudo make px4fmu-v2_default
很明显。又是缺少安装包
那好,我们就安装genrofms
执行sudo apt install genromfs
依赖包安装好了 ,额(⊙o⊙)… 我们继续执行sudo make px4fmu-v2_default
哎呦 终于开始编译了,看样子我们离成功已经很接近了。如果没有问题,这个大概要十来分钟才能100%编译好
但是,很伤心,还是出错了,
相信到这里大家硬干可以根据提示猜到问题的原因了,又是依赖包的问题,好吧,继续安装依赖包吧。
那我们先安装这三个
解决完问题,咱们继续
哎呦 好像离成功更近了一步
好的 100% 编译成功了,在目录~/src/Firmware/build_px4fmu-v2_default/src/firmware/nuttx中,你会看到一个.px4为后缀的文件,那即是固件库的编译文件,这个文件可以直接烧录进APM。
对了,这里介绍一个备份当前系统的方法。 虚拟机 -->>快照-->>拍摄快照
以后如果你的系统奔溃了或者想回到刚刚编译完固件的这一时刻,可以恢复快照,即能回到当前时刻。
到这里整个过程就完成了,我希望各位能够学到Ubuntu系统下解决问题的方法,因为错误总是会有的,你的错误和我的错误很可能是不一样的,但是掌握了方法解决所有的问题都是一样的 PS :百度也是一个很好的工具。