Beaglebone Black开发环境搭建(uboot、kernel、文件系统、Xenomai)
来源:互联网 发布:北京手机数据恢复公司 编辑:程序博客网 时间:2024/05/18 01:17
Beaglebone Black开发环境搭建(2017/03/12)
UBoot 编译
- 安装交叉编译器:
sudo apt-get install gcc-arm-linux-gnueabihf
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- 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
- 几分钟就可以下载完成。
- [ ] 方案1:
- 下载速度奇慢,只有10KB/s
- 编译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。
- 清空SD分区表:
- 待了解问题:
- [ ] 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
- [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' failedexport PATH=$PATH:<your-uboot-source-path>/tools
- [x]
参考
- 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-smpsudo 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
- Beaglebone Black开发环境搭建(uboot、kernel、文件系统、Xenomai)
- Beaglebone black开发环境搭建
- beaglebone black 的Qt开发环境搭建
- beaglebone black 的Qt开发环境搭建
- BeagleBone Black开发环境
- Beaglebone Black——嵌入式QT开发环境搭建
- Beaglebone Black(6.1)Beaglebone Black的c++开发环境Eclipse构建
- Starterware On Beaglebone Black(一) 环境搭建
- 驱动开发环境搭建-uboot,kernel,rootfs
- AM335x的SDK-1.0开发环境搭建-开发板beaglebone black
- Beaglebone开发环境的搭建
- Beaglebone Black 开发笔记
- beaglebone black xenomai移植 ---fwqlzz love is for ever
- Ubuntu下构建BeagleBone Black的Eclipse开发环境
- Uboot Beaglebone Black Usb驱动分析
- 使用EclipseCDT搭建Beaglebone Linux开发环境
- 使用EclipseCDT搭建Beaglebone Linux开发环境
- beaglebone black 开发常用网站
- 《富爸爸穷爸爸》读书笔记
- 机器学习04-多变量梯度下降与特征缩放
- C# Ping类
- 第三章 进程控制 3.1.3 exec系统调用3
- ubuntu firefox安装或升级adobe flash
- Beaglebone Black开发环境搭建(uboot、kernel、文件系统、Xenomai)
- linux基础unit5
- ArrayList源码
- uImage、zImage、bzImage、vmlinux区别
- 手机卫士(一)
- sql查询性能优化
- linux基础unit6
- mybatis利用generator自动生成的代码学习篇
- 常见的查找算法