本帖最后由 payne_pan 于 2015-11-10 19:07 编辑
看了帖子树莓派2手工打造Linux APM飞控 http://bbs.5imx.com/bbs/forum.ph ... 54297&extra=&page=1 很受益
编译这部份我结合实践详细谈一下
=======原文============
3. 飞控源程序我已经上传到GitHub上了https://github.com/raspilot/ardupilot-raspilot
自行编译的话可以在树莓派上
git clone https://github.com/raspilot/ardupilot-raspilot.git
cd ArduCopter
make raspilot
或者可以下载编译好的程序文件,网盘地址:http://pan.baidu.com/s/1jGACRkE
运行程序在树莓派上执行 sudo ./ArduCopter.elf -A 192.168.1.100:14550 (把ip换成自己电脑的ip,在MissionPlanner里选择udp连接方式,端口号14550)
4. 打好rt-patch的系统我还没打包成镜像,打包好后会上传到网盘上。不过树莓派原生系统用来测试也足够了。
===================
3)这部分编译应该使用交叉编译,提高效率(在PC机上编译树梅派运行的文件)
下面先说下4)这部分
要求:安装了Ubuntu Linux的连网PC机
根据官方文档 https://www.raspberrypi.org/docu ... /kernel/building.md 步骤如下: 1) 下载 kernel 的 source
$ git clone --depth=1 https://github.com/raspberrypi/linux
如何知道kernel 的当前版本,两个方法 a) make kernelversion
b) head Makefile -n 3
2) 配置kernel
RASPBERRY PI 1 (OR COMPUTE MODULE) DEFAULT BUILD CONFIGURATION$ cd linux
$ KERNEL=kernel
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcmrpi_defconfig
RASPBERRY PI 2 DEFAULT BUILD CONFIGURATION
$ cd linux
$ KERNEL=kernel7
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
这时候,生成.config文件 如何你不满意可以用 make ARCH=arm menuconfig 继续改
3) 安装toolchain
git clone https://github.com/raspberrypi/tools
把工具路径设置到$PATH export PATH=$PATH:~/rapi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
4) 开始编译( 应该略过,打了rt patch 再编译)
make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
5) 打 rt 补丁 (把rapi 改为实时控制系统) 官方文档 https://www.raspberrypi.org/docu ... /kernel/patching.md 我的步骤: a) 看 kernel 版本 (4.1.12) $ head Makefile -n 4
VERSION = 4
PATCHLEVEL = 1
SUBLEVEL = 12
EXTRAVERSION =
根据kernel版本下载rt补丁(可先在浏览器https://www.kernel.org/pub/linux/kernel/projects/rt/中浏览 ) wget https://www.kernel.org/pub/linux ... .1.10-rt11.patch.gz
解开gz文件,patch kernel 文件 gunzip patch-4.1.10-rt11.patch.gz
cat patch-4.1.10-rt11.patch | patch -p1
而后重新编译kernel make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
这里省略制作SD (参考:https://www.raspberrypi.org/docu ... /kernel/building.md)
1) 而后交叉笔记 raspilot 就简单了 git clone https://github.com/raspilot/ardupilot-raspilot.git
cd ArduCopter
make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- raspilot
(make raspilot 用起来也没有问题)
而后把ArduCopter.elf, 拷贝到树莓派上运行。 ArduPlane 与此类似
|