文章目录:
ubuntu 环境下怎样编译pixhawk px4源码
Ubuntu环境下Pixhawk原生固件PX4的编译
分类:无人机ubuntu代码编译Pixhawk
(3946) (6)
Ubuntu下Pixhawk原生固件PX4的编译这个问题困扰了两天时间,可能是博主脑力不够,主要是环境搭建不起来,主要原因应该是路径的原因,最后在大师傅的帮助下还好成功将路径搭建好,成功编译。
下面就跟大家分享一下环境搭建的过程。
1.操作环境
每次写文章,环境一定要介绍的,不同的环境总会出现不同的问题
我的环境是Windows下面安装虚拟机,虚拟机跑Ubuntu
Windows:win10 64位
虚拟机:VMware Workstation 12 Pro 12.1.0 build-3272444
Ubuntu:Ubuntu15.10
2.编译环境搭建
(1)权限设置
官方提示:
Warning Never ever fix permission problems by using 'sudo'. It will create more permission problems in the process and require a system reinstallation to fix them.
意思是你会遇到权限问题,不要用sudo解决,那样会带来更多问题,但是我没听他的,我没用,最后也是实现了
官方提供指令
[plain] view plain copy
然后注销,重新登录生效
(2)安装
更新包列表,安装下面编译PX4的依赖包。PX4主要支持的系列:
NuttX based hardware: Pixhawk, Pixfalcon
Snapdragon Flight hardware: Snapdragon
Raspberry Pi hardware: Raspberry Pi 2
Host simulation: jMAVSim SITL and Gazebo SITL
注意:安装Ninja Build System可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。
[plain] view plain copy
卸载模式管理器
[plain] view plain copy
更新包列表和安装下面的依赖包。务必安装指定的版本的包
[plain] view plain copy
上面代码中红色部分大家需要一高警惕,gcc-arm-none-eabi版本导致PX4/Firmware编译错误,现在apt-get安装的gcc-arm-none-eabi基本上是4.9的版本,但是这个固件需要gcc-arm-none-eabi 4.8de 版本,所以最后安装好以后,查看你的gcc-arm-none-eabi版本,如果是4.9需要手动安装4.8的版本,安装gcc-arm-none-eabi 4.8的版本的方法如下:
[plain] view plain copy
【Warning】上面红色的路径一定要添加正确,不然问题很多,我第一次就输入错误,结果结果开不了机了,反复输入密码。博主装的是Ubuntu 64位系统,而上述arm-none-eabi是直接下载的编译好的32位,还需要安装一个东西
[plain] view plain copy
可以检查arm-none-eabi 4.8.4是否安装成功,输入以下指令:
[plain] view plain copy
如果出现如上信息,交叉编译环境搭建就搭建成功了
(3)代码编译
根据PX4中文维基官网教程。
安装Git
[plain] view plain copy
下载代码
[plain] view plain copy
初始化
先进入Firmware文件夹,进而进行初始化、更新子模块操作,耐心的等待……
[plain] view plain copy
权限
编译时会遇到权限问题,执行指令
[plain] view plain copy
-R 是对文件下面包含的子文件权限问题,* 是对所有文件的权限问题
编译
[plain] view plain copy
注意到“make”是一个字符命令编译工具,“px4fmu-v2”是硬件版本,“default”是默认配置,所有的PX4编译目标遵循这个规则。
最后附一张编译成功的代码,如果这样你还有问题,请给我留言。
[plain] view plain copy
-- nuttx-px4fmu-v2-default
-- The ASM compiler identification is GNU
-- Found assembler: /opt/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
-- Found PythonInterp: /usr/bin/python (found version "2.7.10")
-- Using C++03
-- Release build type: RelWithDebInfo
-- Adding UAVCAN STM32 platform driver
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lihongwei/Documents/Firmware/build_px4fmu-v2_default
#+@Tools/check_submodules.sh
PX4 CONFIG: px4fmu-v2_default
Scanning dependencies of target git_mavlink
Scanning dependencies of target git_uavcan
Scanning dependencies of target git_gencpp
Scanning dependencies of target git_genmsg
[ 0%] Generating git_init_mavlink_include_mavlink_v1.0.stamp
[ 0%] Generating git_init_src_modules_uavcan_libuavcan.stamp
[ 0%] Generating git_init_Tools_genmsg.stamp
[ 0%] Generating git_init_Tools_gencpp.stamp
[ 0%] Built target git_uavcan
[ 0%] Built target git_mavlink
[ 0%] Built target git_genmsg
[ 0%] Built target git_gencpp
pixhawk 开发环境要安装ubuntu吗
1.首先安装Ubuntu 14.04 LTS,一路默认安装就可以了,具体的过程可以自己上网查询,64位与32位没有区别。Linux下是区分大小写的,在使用过程中一定注意大小写字母,安装过程中分多次要求输入密码!
安装可选软件:(终端启用键Ctrl+Alt+T)
安装五笔输入法软件
sudo apt-get install ibus-table-wubi
安装NotePad++,查看源码工具,我是在Linux下查看代码用的,你可以自己选择其它的
sudo add-apt-repository ppa:notepadqq-team/notepadqq
sudo apt-get update
sudo apt-get install notepadqq
NotePad++的卸载方法:
sudo apt-get remove notepadqq
sudo add-apt-repository --removeppa:notepadqq-team/notepadqq
其它软件根据自己的情况自己安装。
2.将当前用户添加进dialout组中,应该是获取一定的权限
sudo usermod -a -G dialout $USER
3.git源码到本地
首先安装git软件
sudo apt-get install git
创建源码目录
mkdir -p~/src
cd ~/src
git软件源码
cd Firmware
git submodule update --init--recursive
cd ..
4.安装cmake,这个很重要,安装完成后可以使用cmake -v来查看是否成功!
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
sudo apt-get update
sudo apt-get install cmake
5.安装python相关,注意“\”是续行符号,与下一行是一个命令
sudo apt-get install python-argparse git-core wget zip \
python-empy qtcreator cmake build-essential -y
6.删除串口模式管理器
sudo apt-get remove modemmanager
7.更新软件包
sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded -y
sudo apt-get update
注意:下在这些是一个命令,“\”是续行符号,与下一行是一个命令,千万不能分开,复制命令时可以不复制 \,自己手工加上\
sudo apt-get install python-serial openocd \
flex bison libncurses5-dev autoconf texinfobuild-essential \
libftdi-dev libtool zlib1g-dev genromfs \
python-empy
8.安装对应的GCC
Ubuntu 14.04 (Trusty) and 14.10,执行以下命令,其它版本暂时不了解,自己Baidu吧
sudo apt-get install gcc-arm-none-eabi -y
编译源码,V2是指的Pixhawk
cdFirmware
makepx4fmu-v2_default
首先编译需要时间20分钟,网速决定!
显示以下为编译成功:
LinkingCXX executable firmware_nuttx
[100%]Built target firmware_nuttx
Scanningdependencies of target build_firmware_px4fmu-v2
[100%]Generating nuttx-px4fmu-v2-default.px4
[100%]Built target build_firmware_px4fmu-v2
执行make px4fmu-v2_default 进行编译,过程中会自动git需要的文件。
备注,下面命令与此编译无关
安装交叉编译环境
sudo apt-get install rpm
sudo apt-get install gdb
sudo apt-get install genromfs
怎么学习pixhawk源代码
虽然代码是用英语表示的,(据说国人的易语言是中文代码),但实际上英语并不是最主要的,主要的是编程思想或则经验。编程语言单词的重复量相当高,所以呢只要去死记住几个常见的单词,以后就至少在编写代码、阅读代码上没什么障碍了,当然,要想更好的学习,还是学学英语比较合适。
:VMware Workstation 12 Pro 12.1.0 build-3272444Ubuntu:Ubuntu15.102.编译环境搭建(1)权限设置官方提示:Warning Never ever fix permission
m-none-eabi版本,如果是4.9需要手动安装4.8的版本,安装gcc-arm-none-eabi 4.8的版本的方法如下:[plain] view plain copy 【Warning】上面红色的路径一定要添加
t git_gencpp Scanning dependencies of target git_genmsg [ 0%] Generating git_init_mavlink_include_mavlink_v1.0.stamp [ 0%] Generating git_init_