一、主要参考的内容

px4的开发者手册

https://dev.px4.io/zh/setup/dev_env_linux.html

其中有的shell指令

权限设置

警告:永远不要使用sudo来修复权限问题,否则会带来更多的权限问题,需要重装系统来解决。

把用户添加到用户组 "dialout":

 
sudo usermod -a -G dialout $USER

然后注销后,重新登录,因为重新登录后所做的改变才会有效。

安装

更新包列表,安装下面编译PX4的依赖包。PX4主要支持的系列:

提示:安装Ninja Build System可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。

 
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
sudo apt-get update
# 必备软件
sudo apt-get install python-argparse git-core wget zip \
python-empy qtcreator cmake build-essential genromfs -y
# 仿真工具
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jre
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-8-jdk openjdk-8-jre

树莓派

树莓派开发者应该从下面地址下载树莓派Linux工具链。安装脚本会自动安装交叉编译工具链。如果想要用原生树莓派工具链在树莓派上直接编译,参见这里

 
git clone https://github.com/pixhawk/rpi_toolchain.git
cd rpi_toolchain
./install_cross.sh

在工具链安装过程中需要输入密码。

如果不想把工具链安装在默认位置/opt/rpi_toolchain,可以执行./install_cross.sh <PATH>向安装脚本传入其它地址。安装脚本会自动配置需要的环境变量。

最后,运行以下命令更新环境变量:

source ~/.profile

Raspberry Pi 2 开发板

以下命令编译生成Raspbian(posix_pi2_release)版本的固件。

cd Firmware
make posix_rpi2_release # for cross-compiler build

"mainapp"可执行文件位于目录build_posix_rpi2_release/src/firmware/posix下。 将其复制到RPi(用你的RPi的IP或主机名替换YOUR_PI,关于如何访问你的RPi,查看介绍)

然后使用以下命令设置你的RPi的IP(或主机名):

export AUTOPILOT_HOST=192.168.X.X

并上传:

cd Firmware
make posix_rpi_cross upload # for cross-compiler build

然后,通过ssh连接并运行它(以root权限):

sudo ./px4 px4.config

二、自己的添加和总结

make posix_rpi_cross后出现的问题:

-- CMAKE_MODULE_PATH: /home/myfly2/src/myFirmware/Firmware/cmake
-- Build Type: RelWithDebInfo
-- PX4 VERSION: v1.6.5--g4ccbeb4
-- CONFIG: posix-rpi-cross
-- CMAKE_INSTALL_PREFIX: /usr
-- The CXX compiler identification is unknown
-- The C compiler identification is unknown
-- The ASM compiler identification is unknown
-- Found assembler: arm-linux-gnueabihf-gcc
CMake Error at CMakeLists.txt: (project):
The CMAKE_CXX_COMPILER: arm-linux-gnueabihf-g++ is not a full path and was not found in the PATH. Tell CMake where to find the compiler by setting either the environment
variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH. CMake Error at CMakeLists.txt: (project):
The CMAKE_C_COMPILER: arm-linux-gnueabihf-gcc is not a full path and was not found in the PATH. Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH. CMake Error at CMakeLists.txt: (project):
The CMAKE_ASM_COMPILER: arm-linux-gnueabihf-gcc is not a full path and was not found in the PATH. Tell CMake where to find the compiler by setting either the environment
variable "ASM" or the CMake cache entry CMAKE_ASM_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH. -- Warning: Did not find file Compiler/-ASM
-- Configuring incomplete, errors occurred!
See also "/home/myfly2/src/myFirmware/Firmware/build_posix_rpi_cross/CMakeFiles/CMakeOutput.log".
See also "/home/myfly2/src/myFirmware/Firmware/build_posix_rpi_cross/CMakeFiles/CMakeError.log".
/bin/sh: : cd: can't cd to /home/myfly2/src/myFirmware/Firmware/build_posix_rpi_cross
Makefile:: recipe for target 'posix_rpi_cross' failed
make: *** [posix_rpi_cross] Error

解决办法:

修改~/.profile,增加环境:

export RPI_TOOLCHAIN_DIR=/opt/rpi_toolchain/gcc-linaro-arm-linux-gnueabihf-raspbian
export PATH=$RPI_TOOLCHAIN_DIR/bin:$PATH
export AUTOPILOT_HOST=192.168.1.105

然后:

source ~/.profile

继续出现问题2:

-- CMAKE_MODULE_PATH: /home/myfly2/src/myFirmware/Firmware/cmake
-- Build Type: RelWithDebInfo
-- PX4 VERSION: v1.6.5--g4ccbeb4
-- CONFIG: posix-rpi-cross
-- CMAKE_INSTALL_PREFIX: /usr
-- The CXX compiler identification is GNU 4.8.
-- The C compiler identification is GNU 4.8.
-- The ASM compiler identification is GNU
-- Found assembler: /opt/rpi_toolchain/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc
-- Check for working CXX compiler: /opt/rpi_toolchain/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++
-- Check for working CXX compiler: /opt/rpi_toolchain/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /opt/rpi_toolchain/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc
-- Check for working C compiler: /opt/rpi_toolchain/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.12")
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake: (message):
couldn't find python module jinja2: for debian systems try: sudo apt-get install python-jinja2 or for all other OSs/debian: sudo -H pip install jinja2 (missing: PY_JINJA2)
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake: (_FPHSA_FAILURE_MESSAGE)
cmake/common/px4_base.cmake: (find_package_handle_standard_args)
CMakeLists.txt: (px4_find_python_module) -- Configuring incomplete, errors occurred!
See also "/home/myfly2/src/myFirmware/Firmware/build_posix_rpi_cross/CMakeFiles/CMakeOutput.log".
/bin/sh: : cd: can't cd to /home/myfly2/src/myFirmware/Firmware/build_posix_rpi_cross
Makefile:: recipe for target 'posix_rpi_cross' failed
make: *** [posix_rpi_cross] Error

这个问题少了jinja2:

sudo apt-get install python-jinja2  

ubuntu配置px4编译环境的更多相关文章

  1. Ubuntu配置Android编译环境

    1.Ubuntu安装 VMware安装ubuntu之后,安装Vmware tools: 1.安装完ubuntu后,VMware Workstation菜单:虚拟机-->安装 Vmware Too ...

  2. 【转】ubuntu下安装eclipse以及配置python编译环境

    原文网址:http://blog.csdn.net/wangpengwei2/article/details/17580589 一.安装eclipse 1.从http://www.eclipse.or ...

  3. 为 Sublime Text 3059 配置 PHP 编译环境

    关于  Sublime Text 3059 的安装及汉化 请参看 http://www.xiumu.org/note/sublime-text-3.shtml 为 sublime Text 配置 PH ...

  4. 应用 EditPlus 配置 Java 编译环境

    此文全文摘抄自: http://jingyan.baidu.com/album/37bce2be3ceef61002f3a208.html?picindex=7,谢啦 应用成功: EditPlus(文 ...

  5. Sublime Text3 配置Python3编译环境

    Sublime Text3 配置Python编译环境 进入Sublime Text3 ,然后选择菜单:工具(T)==>编译系统(U)==>新编译系统... 把上面的代码换成如下代码: &q ...

  6. Ubuntu 配置 Android 开发 环境

    . 果断换Ubuntu了, Ubuntu的截图效果不好, 不能设置阴影 ... 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article ...

  7. 在Ubuntu安装go编译环境

    在Ubuntu安装go编译环境 好记性不如烂笔头,所以趁热打铁记录下golang编译环境的安装过程. 首先下载一些依赖包: sudo apt-get install bison ed gawk gcc ...

  8. Editplus配置java编译环境

    EditPlus配置java编译环境 第一步:检测自己是否已经有jdk 1.win+r,输入cmd,打开控制台 2.控制台下输入javac出现类似的画面,代表jdk已经成功安装 第二步:打开Editp ...

  9. Linux下配置Objective-C编译环境

    Ubuntu环境下Objective-C编译环境配置参考这里. CentOS环境下Objective-C编译环境配置参考这里. 还在继续探索中.

随机推荐

  1. 【CF1257A】Two Rival Students【思维】

    题意:给你n个人和两个尖子生a,b,你可以操作k次,每次操作交换相邻两个人的位置,求问操作k次以内使得ab两人距离最远是多少 题解:贪心尽可能的将两人往两边移动,总结一下就是min(n-1,|a-b| ...

  2. BZOJ 3456: 城市规划(dp+多项式求逆)

    传送门 解题思路 这道题就是求带标号的无向连通图个数,首先考虑\(O(n^2)\)的做法,设\(f_i\)表示有\(i\)个节点的无向连通图个数,那么考虑容斥,先把所有的无向图求出,即为\(2^{C( ...

  3. POJ - 1655 (点分治-树的重心)

    题目:https://vjudge.net/contest/307753#problem/D 题意:给你一棵树,让你求出一个点,让他的最大子树的节点数尽量小 思路:最大子树节点数尽量小,一看就是树的重 ...

  4. url 上回调函数(JSONP原理)

    1.JSONP原理:就是跨域的 js程序(get请求对应url,获取到文本数据,在script标签中,就是按照 js 程序执行,)执行时  调用  当前程序中写好的函数,并且把跨域的数据(即参数),传 ...

  5. [HDU4969]Just a Joke

    题目:Just a Joke 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4969 分析: 呀,根本不会做,5555~(逃 http://blog.cs ...

  6. appium移动端自动化测试的一些感想

    花了一个多月的时间来复习,学习appium+python+android的UI层的自动化测试. 从最开始的环境搭建,都后面运行脚本报错各类错,到优化脚本结构,基本上问题不断. 相比,selenium做 ...

  7. 重新认识Maven

    PS:第一次接触maven大约是两年前吧,隐约记得之前都是人工寻找并下载很多jar,放在项目的lib中(表示太年轻,没有接触过Ant或者其他类似的工具,就不找别人写的比较了).懒人永远有着自己的小聪明 ...

  8. 让Tomcat支持php

    在服务器上php的安装:1.下载php-4.4.2 for windows的压缩包2.解压缩到D:\software\php4423.将D:\software\php442增加到环境变量PATH中4. ...

  9. upc组队赛15 Supreme Number【打表】

    Supreme Number 题目链接 题目描述 A prime number (or a prime) is a natural number greater than 1 that cannot ...

  10. 常见的3种Class级别的错误

    ClassNotFoundException 很明显,这个错误是找不到类异常,即在当前classpath路径下找不到这个类. ClassNotFoundException继承了Exception,是必 ...