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.xzfdisk,在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、dtbmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bb.org_defconfigmake 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=0x80008000fdtaddr=0x80F80000loadimage=fatload mmc 0 ${loadaddr} uImageloadfdt=fatload mmc 0 ${fdtaddr} am335x-boneblack.dtbbootcmd=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' failedsudo 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参考
Building BBB Kernel
How to Cross compile kernel for BeagleBone Black ?
制作更新BeagleBone-Black的Bootloader内核和文件系统
Compiling and Deploying BeagleBone Black KernelXenomai版本内核安装
安装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_defconfigmake ARCH=arm menuconfig反选选项:CPU Power Management -> CPU Frequency scaling -> CPU Frequency scalingKernel Features -> Contiguous Memory AllocatorKernel 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
相关文章推荐
- Linux_kernel_内核引导+文件系统引导(图片说明)
- android kernel 启动以后怎么挂载文件系统, init.rc怎么启动服务开启脚
- IMX6QDL Android5.0 Kernel3.10 无法挂载system文件系统
- Uboot到Kernel到文件系统(Cortex_A9)移植详细文档
- 长聚微嵌 DMA-210U Android 入门第一天------烧写uboot、kernel和文件系统
- tq210-kernel 3.0.8 SD卡作为文件系统
- U-boot、Kernel、文件系统的几种下载方式总结(基于TQ2440开发板)
- 内核kernel、根文件系统rootfs如何映射到对应的nand flash
- TK1 R21.4 只更新kernel,不更新文件系统
- 内核kernel、根文件系统rootfs如何映射到对应的nand flash
- android kernel 与文件系统
- 内核kernel、根文件系统rootfs如何映射到对应的nand flash
- 嵌入式交叉编译器,uboot,kernel,根文件系统,tslib,qt编译配置
- android kernel 与文件系统
- 关于uboot,kernel,文件系统存储在开发板nand
- android kernel 与文件系统
- qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统
- mini2440 -- 设置Kernel通过nfs方式启动文件系统
- kernel与文件系统通信