Pixhawk原生固件Linux环境下编译

本文档详细介绍了如何在Ubuntu 14.04.1环境下编译Pixhawk原生固件的过程,包括安装虚拟机、操作系统、基础环境、gcc、cmake等工具及下载和编译固件的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       Pixhawk原生固件在Linux下编译的资料网上很多,官网(http://dev.px4.io/starting-installing-linux.html)也有其具体流程,本文只是针对自己从安装ubuntu14.04.1操作系统到编译成功Pixhawk原声代码写了一个简单的文档,当然由于自己不是特别熟悉Linux环境及其命令,其中不乏一些多余的步骤,也希望大家指正出来,互相学习。

 

一.    安装vmware和ubuntu14.04.1操作系统

我使用的是Vmware 10,当前还可以使用更高级版本的,看自己需求,http://www.xiazaiba.com/html/24456.html

          操作系统ubuntu的话,众网友推荐14版本的,其他版本的可能编译出问题,所以自己直接安装的ubuntu14.04.1,下载地址为http://drivers.mydrivers.com/drivers/484_193760.htm

          具体利用vmware怎么安装系统,网上一大堆步骤,不再赘述。安装好之后,界面如下:


                恩,最基本的做好了。确保主机可以上网虚拟机才可以上网

二.    根据官网搭建基础环境

官网:http://dev.px4.io/starting-installing-linux.html

打开ubuntu系统的调试终端(Ctrl+Alt+T),输入以下命令,逐条输入

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 apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-7-jdk openjdk-7-jre clang-3.5 lldb-3.5 -y


安装好上述之后,再安装基于硬件的Nuttx操作系统:

 

sudo apt-get remove modemmanager
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 texinfo build-essential \
    libftdi-dev libtool zlib1g-dev \
    python-empy gcc-arm-none-eabi -y

三.    安装gcc

这一步尤为重要,很多编译过不了这一关,当然还是安装官网推荐的版本4.8.4或者4.9.2,本人安装的前者,操作如下:

pushd .

cd ~
//卸载当前版的gcc-arm-none-eabi
sudo apt-get remove gcc-arm-none-eabi
//下载需要的版本
wget https://launchpad.net/gcc-arm-embedded/4.9/4.9-2014-q4-major/+download/gcc-arm-none-eabi-4_9-2014q4-20141203-linux.tar.bz2
//解压
tar -jxf gcc-arm-none-eabi-4_9-2014q4-20141203-linux.tar.bz2
//将解压后的gcc,移动到自己想要的文件夹下
sudo mv gcc-arm-none-eabi-4_9-2014q4 /opt
//添加路径
exportline="export PATH=/opt/gcc-arm-none-eabi-4_9-2014q4/bin:\$PATH"
//使路径生效
if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi

. ~/.profile

popd


注意:我使用的ubuntu是64位的,还要增加如下补丁 (32位的跳过),执行如下命令:

sudo apt-get install lsb-core

最后,检查gcc是否安装成功,命令:

arm-none-eabi-g++ -v

若出现如下界面,代表安装交叉编译环境成功,否则,继续执行如上步骤。

 

四.    安装cmake

此时可以查看自己目前系统的cmake版本是多少,命令:

cmake --version

当然,我已经安装cmake 3.4.3,所以显示是这样,3版本的都可以,若是其他的版本的,则按照以下步骤安装:

种方法(一步步执行):

种方法:

       官网(https://cmake.org/download/)下载cmake,下图两个选择,自己根据方便选择,如果下载了第一个,则根据第一种方法去做,如果下载了第二个,则如下步骤:


1.解压

niu88@ubuntu:/opt/tar -zxvf  cmake-3.4.3-Linux-x86_64.tar.gz  

2.然后 安装

    niu88@ubuntu:/opt/./bootstrap   
    niu88@ubuntu:/opt/make  
    niu88@ubuntu:/opt/make install   

3.安装完毕后查看是否安装成功:  

niu88@ubuntu:/opt/cmake --version  

   cmake version 3.4.3

       此时,cmake安装成功。  


五.    安装git

可以使用apt-get方式安装,也可以下载源代码安装,我们这里使用apt-git安装。但由于直接使用 sudo apt-get install git 安装的版本较老,或者会出现安装错误,因此我

们使用如下方法:

sudoadd-apt-repository ppa:git-core/ppa
sudoapt-get update
sudoapt-get install git

安装完成后,检查是否安装成功

git--version

 

六.    下载原生固件

关于这个官网已经给的很清楚了,http://dev.px4.io/starting-building.html

git clone https://github.com/PX4/Firmware.git
cd Firmware
git submodule update --init --recursive

七.    编译原生固件

更新完之后,在Firmware文件夹下:

make px4fmu-v2_default

       此时还可能会出现如下问题:即could not find genromfs


       执行:

sudoapt-get install genromfs

       还有如下问题:


       执行:

sudoapt-get install python-empy

其他问题,暂时没发现,那么最后的编译结果为:


    终于看到了曙光,当然,步骤中还有其他没有涉及以及错的问题,以后再和众网友慢慢发现和弥补完善了。

 

<think>好的,我现在需要帮助用户决定Ardupilot的编译环境应该搭建在笔记本电脑还是树莓派上。首先,我得回忆一下Ardupilot编译的基本要求。编译Ardupilot需要较多的计算资源,尤其是内存和CPU。树莓派虽然方便,但性能可能不足,尤其是较旧的型号。笔记本电脑通常配置更高,编译速度更快。 接下来,用户可能的使用场景需要考虑。如果用户需要频繁编译或进行复杂调试,笔记本电脑会更高效。而如果用户需要在嵌入式环境中测试,或者希望低功耗长期运行,树莓派可能更合适,尽管编译时间更长。 然后,操作系统的因素。Ardupilot官方推荐Linux环境,无论是Ubuntu还是其他发行版。笔记本电脑安装Linux可能更直接,而树莓派原生运行Linux,但需要确保系统版本兼容。用户如果习惯Windows,可能需要虚拟机或WSL,这可能影响性能,但笔记本处理起来还是比树莓派强。 存储空间也是一个点。Ardupilot的代码库和依赖项可能占用较多空间,笔记本电脑通常有更大的存储,树莓派可能需要外接存储,尤其是microSD卡速度可能成为瓶颈。 网络连接方面,编译时需要下载依赖,树莓派和笔记本都可以,但笔记本的有线网络可能更稳定,下载速度更快。 长期使用的话,维护和扩展性。笔记本升级硬件容易,树莓派受限于硬件,但更便携。如果用户需要携带到现场测试,树莓派可能方便,但编译还是建议在笔记本完成,然后传输到飞控。 综合这些因素,应该推荐笔记本电脑作为主要编译环境,尤其是初次搭建的用户,这样能减少问题,加快速度。树莓派可以作为辅助或特定场景使用。可能还要提到交叉编译的可能性,或者使用树莓派作为编译服务器,但需要配置,对新手不友好。 最后,给出步骤时,要简明,强调安装依赖、克隆代码、编译指令。同时提醒树莓派用户可能遇到的问题,如内存不足,建议增加交换空间或使用更轻量级的系统。 需要确保回答结构清晰,分点列出优缺点,然后给出建议,帮助用户根据自身情况选择。同时保持语言口语化,避免技术术语过于复杂,让用户容易理解。</think>Ardupilot编译环境搭建的选择(笔记本电脑 vs 树莓派)主要取决于你的使用场景和硬件性能。以下是分步对比分析: --- ### **一、笔记本电脑的优势** 1. **性能更强** - 编译速度更快:Ardupilot代码库庞大(C++项目),笔记本的CPU/内存(建议≥8GB)能显著缩短编译时间 - 存储空间充足:完整编译环境需要约20GB空间,SSD硬盘比树莓派的microSD卡更稳定 - 多任务处理:可同时运行IDE、文档查阅等工具 2. **系统兼容性更好** - 官方推荐Ubuntu Linux环境,笔记本安装双系统/WSL2更简单 - 调试工具链(如arm-none-eabi-gcc)配置更流畅 3. **开发效率更高** - 可直接连接飞控硬件进行实时烧录测试 - 支持VSCode等现代IDE的完整功能 --- ### **二、树莓派的适用场景** 1. **低功耗嵌入式开发** - 适合长期运行的自动化编译测试(需外接电源) - 可作为轻量级持续集成(CI)服务器 2. **硬件接口测试** - 直接通过GPIO连接传感器进行底层协议验证 - 模拟真实嵌入式环境(但编译过程仍需等待) 3. **硬件配置要求** - 最低需求:树莓派4B(4GB内存)+ 散热风扇 - 必须扩展swap空间(至少2GB交换文件) - 编译时间可能比笔记本慢3-5倍 --- ### **三、分步搭建建议** #### **推荐方案:笔记本为主 + 树莓派为辅** 1. **在笔记本电脑搭建主环境** ```bash # Ubuntu示例 sudo apt-get install git make gcc-arm-none-eabi git clone https://github.com/ArduPilot/ardupilot cd ardupilot git submodule update --init --recursive ./waf configure --board Pixhawk1 # 根据飞控型号选择 ./waf build ``` 2. **树莓派作为辅助测试平台** - 通过SSH远程访问笔记本的编译环境 - 仅将编译好的固件传输到树莓派进行硬件级测试 --- ### **四、特殊情况处理** - **树莓派独立编译应急方案** ```bash # 增加swap空间(临时) sudo dphys-swapfile swapoff sudo nano /etc/dphys-swapfile # 修改CONF_SWAPSIZE=2048 sudo dphys-swapfile setup sudo dphys-swapfile swapon ``` --- ### **五、最终建议** - **新手首选笔记本电脑**:避免硬件性能瓶颈导致的编译失败 - **进阶开发者可尝试树莓派**:需做好性能优化(散热/存储/内存) - 重要提示:无论选择哪种平台,务必定期执行`git pull`更新代码库 可根据你的飞控型号(如CubeOrange, Pixhawk等)和开发频率灵活选择组合方案。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值