最新Linux系统下搭建PX4/Pixhawk原生固件编译环境!!!
最新Linux系统下搭建PX4/Pixhawk原生固件编译环境!!!==有用的废话==添加用户到dialout工作组安装软件包安装常用python依赖包及管理工具:==安装正确版本的gcc-arm-none-eabi!!!==编译源码下面的列表显示了通用板的构建命令:固件编译:成功==坑!!!!!!!!!!!==总结有用的废话经历了许久的磨难,我终于搭建成功PX4开发环境,入了太多的坑,这里我一一
最新Linux系统下搭建PX4/Pixhawk原生固件编译环境!!!
有用的废话
经历了许久的磨难,我终于搭建成功PX4开发环境,入了太多的坑,这里我一一介绍一番。今天笔者就来总结一下ubuntu系统下搭建PX4开发环境的过程。亲测 、真实有效!!!!有效!!!!Let’s go.
添加用户到dialout工作组
别问为什么,装就对了。
你非要问的话,就是创建独立用户的目的是这样可以让开发环境分离开来,避免出现不同用户间的版本冲突等情况。将用户加入dialout用户组的目的是dialout拥有对串口tty的操作权限
sudo usermod -a -G dialout $USER
注意:注销后重新登录!!!
安装软件包
#更新软件源列表:
- sudo apt-get update -y
#安装git、zip、cmake、qt、ninja等必用软件包:
- sudo apt-get install git zip qtcreator cmake build-essential genromfs ninja-build exiftool -y
注:添加源操作一般成功后会跳出一个“OK”,update成功后会有个“done”。
安装常用python依赖包及管理工具:
- sudo apt-get install python-argparse python-empy python-toml python-numpy python-yaml \
python-dev python-pip -y
- sudo -H pip install --upgrade pip
sudo -H pip install pandas jinja2 pyserial cerberus
安装正确版本的gcc-arm-none-eabi!!!
用户在ubuntu系统下编译的固件要在arm系统中运行,所以一定会用到交叉编译器,先到下面这个网站下一个比较高版本的安装文件:
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
亲测有效,强烈建议2017-q4版本!!!
解压缩:
- tar -jxf gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
配置编译环境,将编译器的路径放到.bashrc或者.profile文件中:
- gedit .bashrc
#在最后一行加入下列代码。注意:gcc-arm-none-eabi-7-2017-q4-major替换成你的- export PATH=$HOME/gcc-arm-none-eabi-7-2017-q4-major/bin:$PATH
查看编译器版本确认是否配置成功:
- echo $PATH
arm-none-eabi-gcc --version
运行指令且结果如下:
环境配置检测
编译源码
- #克隆源码
git clone https://github.com/PX4/Firmware.git- #更新子模块:
git submodule update --init --recursive- #编译:
make px4_fmu-v3_default
下面的列表显示了通用板的构建命令:
Pixhawk 4: make px4_fmu-v5_default
Pixracer: make px4_fmu-v4_default
Pixhawk 3 Pro: make px4_fmu-v4pro_default
Pixhawk Mini: make px4_fmu-v3_default
Pixhawk 2: make px4_fmu-v3_default
mRo Pixhawk: make px4_fmu-v3_default (supports 2MB Flash)
HKPilot32: make px4_fmu-v2_default
Pixfalcon: make px4_fmu-v2_default
Dropix: make px4_fmu-v2_default
MindPX/MindRacer: make airmind_mindpx-v2_default
mRo X-2.1: make auav_x21_default
Crazyflie 2.0: make bitcraze_crazyflie_default
Intel® Aero Ready to Fly Drone: make intel_aerofc-v1_default
Pixhawk 1: make px4_fmu-v2_default
固件编译:
成功
坑!!!!!!!!!!!
1.无法make,或者如下图:
方案:
#make是操作字符 px4fmu是固件名称 -v2是版本号 _default是默认配置
#实际make之后是一个文件名称,需要编译的模块都在其中
#可以输入make p 然后按Tab键,会跳出一连串p开头的文件
2.缺少模板
方案:
缺什么补什么,根据提示补模板。中途会出现如下问题:
方案:终端输入如下:
python2 --version #查看python2安装版本
python3 --version #查看python3安装版本
python --version#查看系统正在使用的版本
现在改为python3
终端输入:
echo alias python=python3 >> ~/.bashrc
source一下:
source ~/.bashrc
版本查看:
python --version
如下图:
紧接着升级pip,
python -m pip install --upgrade pip
3.交叉环境出错
重装交叉环境,切记强烈建议2017-q4版本!!!
总结
第一次发博客,尽量让入pix坑的小伙伴少走弯路吧,我是C先森。。。
更多推荐
所有评论(0)