您的位置:首页 > 大数据 > 人工智能

Beaglebone Black开发环境搭建(uboot、kernel、文件系统、Xenomai)

2017-03-23 23:30 453 查看

Beaglebone Black开发环境搭建(2017/03/12)

UBoot 编译

安装交叉编译器:
sudo apt-get install gcc-arm-linux-gnueabihf


arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别

下载uboot源码:
git clone git://git.denx.de/u-boot.git


下载速度奇慢,只有10KB/s

[ ] 方案1:
tsocks git clone git://git.denx.de/u-boot.git


才40KB/s,偶尔会高一点,还是太慢。

[x] 方案2:用迅雷下载
ftp://ftp.denx.de/pub/u-boot/u-boot-2016.09.tar.bz2


几分钟就可以下载完成。

编译uboot

make clean


make distclean


make am335x_boneblack_defconfig


ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-


make


制作UBoot SD启动卡

清空SD分区表:
sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1024 count=1024


fdisk

输入x(extra functionality),设置sector=63、heads=255、cylinders=

输入n,创建大小为1G的分区(我们的boot分区)。

输入t->c,改变分区为fat32格式。

输入a,设置磁盘可启动。

mkfs.vfat /dev/mmcblk0p1

复制MLO到新创建的分区,然后再复制u-boot.img过去。

插入SD卡即可启动uboot。

待了解问题:

[ ] u-boot.img和u-boot.bin的区别

[ ] u-boot环境变量存放的位置如何设置

文件系统

下载:https://rcn-ee.com/rootfs/eewiki/minfs/debian-8.6-minimal-armhf-2016-09-17.tar.xz

fdisk,在SD卡上创建ext4分区,创建完需要调用mkfs.ext4初始化分区。

挂载刚刚创建的分区

解压debian-8.6-minimal-armhf-2016-09-17.tar.xz,解压出来的内容是一个.tar文件包,和另外两个文件。将.tar文件解压到挂载点。

umount挂载点。

内核编译

流程

下载源码

[ ]
tsocks git clone https://github.com/beagleboard/linux.git[/code] 
[x] 下载: https://codeload.github.com/beagleboard/linux/zip/4.4

编译uImage、dtb

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bb.org_defconfig


make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage dtbs LOADADDR=0x80008000 -j4


复制镜像文件和设备树二进制文件到boot分区

sudo cp arch/arm/boot/dts/am335x-boneblack.dtb ../mnt_boot/


sudo cp arch/arm/boot/uImage ../mnt_boot/


设置uboot环境变量

loadaddr=0x80008000


fdtaddr=0x80F80000


loadimage=fatload mmc 0 ${loadaddr} uImage


loadfdt=fatload mmc 0 ${fdtaddr} am335x-boneblack.dtb


bootcmd=run loadimage; run loadfdt; bootm ${loadaddr} - ${fdtaddr}


bootargs=console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait


插入内存卡,启动!

遇到的问题:

步骤2

[x]
arch/arm/boot/compressed/Makefile:178: recipe for target 'arch/arm/boot/compressed/piggy.lzo' failed


sudo apt-get install liblzo2-dev
(没有用)

sudo apt-get install lzop


[x]
"mkimage" command not found - U-Boot images will not be built

arch/arm/boot/Makefile:83: recipe for target 'arch/arm/boot/uImage' failed


export PATH=$PATH:<your-uboot-source-path>/tools


参考

Building BBB Kernel

How to Cross compile kernel for BeagleBone Black ?

制作更新BeagleBone-Black的Bootloader内核和文件系统

Compiling and Deploying BeagleBone Black Kernel

Xenomai版本内核安装

安装Xenomai常规的方法是往已有的Linux内核打patch,然而Beaglebone Black官方已经提供打好patch的内核分支,我们只需要checkout该版本的内核,编译安装即可。

流程

下载内核源码: https://codeload.github.com/beagleboard/linux/zip/4.4-xenomai

配置内核,去掉容易引起高延时的配置。

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bb.org_defconfig


make ARCH=arm menuconfig


反选选项:


CPU Power Management -> CPU Frequency scaling -> CPU Frequency scaling


Kernel Features -> Contiguous Memory Allocator


Kernel Features -> Allow for memory compaction


编译内核

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage dtbs LOADADDR=0x80008000 -j4


复制镜像文件和设备树二进制文件到boot分区,同内核编译章节步骤3。

安装Xenomai libraries。

下载:http://xenomai.org/downloads/xenomai/stable/latest/xenomai-3.0.3.tar.bz2

安装到rootfs下面。

./configure CFLAGS="-march=armv7-a -mfpu=vfp3" \
LDFLAGS="-march=armv7-a -mfpu=vfp3" --host=arm-linux-gnueabihf \
--with-core=cobalt --enable-smp
sudo make DESTDIR=/home/ting/build/BBB/linux/mnt_rootfs install


同内核编译章节步骤4、5。

运行:



参考

Xenomai on the Beaglebone Black in 14 easy steps

Installing Xenomai 3.x
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息