PX4最新版ubuntu编译环境搭建
PX4最新版ubuntu编译环境搭建
本博客的撰写主要也是博主的自己血泪之路,参考了各种博客,然而对于我并没有什么卵用,简直是成功的都一样,不成功的各有各的不同,最后在快要放弃而转去使用别人搭建好的环境时,成功了!!!下面就是自己的流程:
软件:VM12+ubuntu16.04
参考网址:https://dev.px4.io/en/setup/dev_env_linux.html
下面为实现步骤
- VM12安装+**
- ubuntu16.04下载与安装
- 编译环境搭建
VM12安装+**
软件下载:百度有提供
**:百度搜索***
例如:5A02H-AU243-TZJ49-GTC7K-3C61N(如不行,再去搜)
ubuntu16.04下载与安装
下载地址:http://www.linuxidc.com/Linux/2017-08/146077.htm | http://cn.ubuntu.com/download/
(也可以去官网下载其他版本)
安装与实现文件共享:http://www.jb51.net/article/97387.htm(安装的时候选择中文;当然这里可能会遇到安装成功后,打开老是出现安装时的界面,这个时候把打开电源时进入固件的设置回复默认就好了,如果没有就继续下一步)。文件共享实际上就是可以实现两个系统下文件可以互相拖,流程按照操作就好了。
下面就是非常重要的内容了,不过流程非常简单
编译环境搭建(我是在root下安装的)
注: ~$: sudo su -
切换到root
- 把用户添加到用户组 “dialout”(如果这步没做,会导致很多用户权限问题):
sudo usermod -a -G dialout $USER
然后点击电源键(右上角)注销后登陆,设置成功
-
下载官网脚本进行安装
打开最上面的参考链接,点击对应的脚本(提供的有多个,我下载的是ubuntu_sim_nuttx.sh )复制上方的链接,使用wget +链接 进行下载,当然可通过新建某个文件夹,然后在当前目录下进行下载:
mkdir ~/jiaoben
cd ~/jiaoben
:~/jiaoben# wget 链接
下载完成之后进行安装:
:~/jiaoben# source ubuntu_sim_nuttx.sh
这个时候保证网速良好,实在不行就可以开热点(说起来都是泪啊)
环境是否搭好了可以检验交叉编译工具是否安装成功
:~# arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
这样就表示成功了,但是安装完脚本之后会提示没有安装 arm-none-eabi-gcc,会提示使用apt-get insatll 进行安装,这个时候还是自己手动安装吧,因为按照提示安装的后面会出现 内存溢出的问题,至于为什么可以等成功之后再去研究,先把环境装好再说。
-
gcc下载与环境变量设置
gcc网址:https://launchpad.net/gcc-arm-embedded/+download(常用的)
linux版本的gcc下载:https://launchpad.net/gcc-arm-embedded/+download
安装路径:/usr/bin
下载与解压
:~# wget https://launchpad.net/gcc-arm-embedded/+download
:~# tar jxvf gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2 -C /usr/bin
##寻找路径
:~# cd /usr/bin/gcc-arm-none-eabi-5_4-2016q3/bin
:~/usr/bin/gcc-arm-none-eabi-5_4-2016q3/bin# pwd ##获取路径
/root/usr/bin/gcc-arm-none-eabi-5_4-2016q3/bin
设置环境变量
(大家应该也搜到了设置环境变量不同教程在不同的文件下设置了吧,设置说明也可参照这个链接:http://www.linuxidc.com/Linux/2016-12/138771.htm)我是在 /etc/profile下设置的
~#:gedit /etc/profile
在最后一行 添加 export PATH=/root/usr/bin/gcc-arm-none-eabi-5_4-2016q3/bin:$PATH
点击保存就好。
使环境变量设置生效
然后重启
~#:source /etc/profile
~#:reboot
当然其他操作,如切换其他版本gcc,推荐博客:http://blog.csdn.net/al86866365/article/details/47424727
- 下载源码
源码下载网站:https://github.com/PX4/Hardware
源码下载链接:https://github.com/PX4/Hardware.git
操作:
下载
mkdir -p ~/src
cd ~/src
git clone https://github.com/PX4/Firmware.git
cd Firmware
git submodule update --init --recursive
cd ..
编译
cd Firmware
make px4fmu-v2_default
编译成功:
找到箭头所指的文件,说明编译成功
到这里,环境搭建完毕就可以进行相应的开发了。
常见错误说明
1 /bin/.arm-none-linux-gnueabi-gcc: not found
环境变量都设置好了,但编译就是找不到
解决:ubuntu下所用工具基本默认安装在/usr/bin下,当然gcc安装在其他地方也行,只要环境变量设置好,但是设置好了,不成功就重新设置吧,按照上面gcc的安装方法
2 apt-get install E: 无法定位软件包问题
出现的原因:修改了某些东西,如环境变量或/var/lib/dpkg/info(因为安装的软件信息都会在这个文件夹下进行记录,如果做了修改或删掉了,对不起那就只能重装所有软件或是重新装系统把)根据情况,再改回来;软件源问题推荐博客:http://blog.csdn.net/wuzuodingfeng/article/details/76155829
其他问题自己各种搜就好
3 CMake error at /platforms/nuttx/Nuttx/CmakeLists.txt:100 XXX
Call stack (most recent call first:)XXX…这样的错误
解决:这个问题也困扰了我好久,这个实在ubuntu14.04上出现的错误,然后我换了16.04的版本就没有这样的错误,我也没搞明白,但是这样就解决了。
4.其他问题应该都有解决办法,参考教程不要混乱,指导自己每一步操作要解决什么,否则出错了,找不到错误的时候,就按原始的方法来吧:重装
5. 不要忽略网速
有些错误问题,其实可以归结到网速
有什么问题可以按照上一篇博客的联系方式进行沟通。
当然还有其他的编译环境搭建方式:
参考博客:
http://blog.csdn.net/Jackey_ONLYFORYOU/article/details/53698650
上一篇: 启动时显示以及关闭splash窗体
下一篇: 安卓开发扩展(四)简单热修复