imx6上搭建xenomai
来源:互联网 发布:java replace用法 编辑:程序博客网 时间:2024/06/03 07:57
在i.mx6上搭建xenomai
在i.mx6上主要要构建uboot, 带xenomai的kernel
U-Boot编译
1. 下载交叉编译工具:
这里推荐采用直接安装的方法,也可以通过下载gcc-linaro进行编译安装
在ubuntu 16.04的环境下
sudo apt-get install gcc-arm-linux-gnueabihf
再通过
arm-linux-gnueabi-gcc -v
来查看安装情况。
2. 解压下载U-boot源代码,并设置环境变量
源码可以通过http://git.toradex.com/cgit/u-boot-toradex.git/进行获得。
注:下载的源码直接用Linux进行git,不要在windows下,否则下载的链接关系会失效
设置环境变量(可写入.bashrc文件),直接运行即可
export ARCH=armexport CROSS_COMPILE=arm-linux-gnueabihf-
3. 配置uboot
这里我使用i.mx6的 uboot预定义配置,
make colibri_imx6_nospl_defconfig
4. 进一步的图形化修改配置选项(如果不修改,不需要这一步)
make menuconfig
5. 编译,生成u-boot.bin
make -j3 2>&1| tee build.log
这里的-j3 里的3指的是线程数量,就是你要用几个线程去编译这个工程,一般会是 CPU核心数的2倍,tee的作用同时输出到控制台和文件。make > build.log 是将所有标准输出到这个文件中,并没有定义标准错误应该是定义到了标准输出,也就是说如果make执行出现错误,那么就不会写到 build.log中,而是输出到屏幕上,2>&1是错误和结果都重定向到build.log中!
这样生成的u-boot.bin即为所需
内核编译
1. 下载解压内核文件和xenomai文件
内核源码可以通过http://git.toradex.com/cgit/linux-toradex.git/获得,直接解压即可
xenomai源码可以通过http://xenomai.org/downloads/xenomai/stable/获得,直接解压即可
ipipe.patch补丁文件需要根据http://xenomai.org/downloads/ipipe/v4.x/arm/下载合适的版本再制作而成。
保证内核源码和xenomai源码在同一目录下,我的为/home/xun/Downloads目录下,并把制作的ipipe.patch放入xenomai文件夹中
2.往内核打入xenomai补丁
进入linux-toradex文件夹,运行
../xenomai-3.0.5/scripts/prepare-kernel.sh --linux=/home/xun/Downloads/linux-toradex --arch=arm --adeos=/home/xun/Downloads/xenomai-3.0.5/ipipe.patch
这个步骤主要是产生各种checking file,主要是将Linux和xenomai两个内核链接到一起,还需要编译Linux内核。
3. 编译内核
由于之前可以构建好编译工具,可以直接开始进行编译,当然先设置好环境变量
export ARCH=armexport CROSS_COMPILE=arm-linux-gnueabihf-
然后先复制默认配置到系统文件中
cp /home/xun/Downloads/linux-toradex/arch/arm/configs/colibri_imx6_defconfig .config
再继续进行内核功能的选择配置
make menuconfig ARCH=arm
注:在make menuconfig时,如果遇到 fatal error: curses.h: No such file or directory
这时候只要sudo apt-get install libncurses5-dev libncursesw5-dev从而安装ncurses-devel包即可
再进行内核配置,关于具体的内核配置,后面会专门讲到。配置完成后,保存好自己的配置,以后可以直接使用
cp .config xun.config
直接开始编译内核
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j3 2>&1| tee build.log
注:在make最后生成vmlinux时,遇到/bin/sh: 1: lzop: not found错误,通过安装lzoplzop压缩工具包即可 sudo apt-get install lzop
最后产生的vmlinux在源文件目录,产生的zImage在/linux-toradex/arch/arm/boot目录下。
生成uImage
将内核编译完后zImage放在u-boot根目录下的tools文件夹中,保证zImage和mkimage放在同一个目录下,执行:
./mkimage -A arm -O linux -T kernel -C none -a 10008000 -e 10008000 -n linux-4.1.19 -d zImage uImage
则得到生成的uImage,这样就直接可以下载运行了
这里的uImage是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。
用法:
-A arm —- 架构是arm
-O linux —- 操作系统是linux
-T kernel —- 类型是kernel
-C none —- 压缩类型为无压缩
-a 10008000 —- image的载入地址(hex)
-e 10008000 —- 内核的入口地址(hex),(旧的版本,应当偏移0x40为10008040,因为信息头的大小是0x40)
-n linux-4.1.19 —- image的名字
-d zImage —- 无头信息的image文件名
uImage —- 加了头信息之后的image文件名
- imx6上搭建xenomai
- imx6 nfs搭建
- xenomai
- 在ubuntu12.04.1LTS上搭建freescale iMX6开发板sabresd_6dq编译环境
- 在ubuntu12.04.1LTS上搭建freescale iMX6开发板sabresd_6dq编译环境
- xenomai 在ubuntu上的安装测试
- imx6 ubuntu1204 nfs环境搭建
- imx6交叉编译环境搭建
- Beaglebone Black开发环境搭建(uboot、kernel、文件系统、Xenomai)
- OpenCV在IMX6上的移植
- xenomai-GNU/Linux上的RTOS模拟架构实现
- Ubuntu 14.04.05上安装xenomai 2.6.4实时核
- 飞思卡尔 imx6 android 调试环境搭建
- Installing Xenomai
- XENOMAI K2RTDEV
- Xenomai 应用
- Xenomai安装
- xenomai config
- servlet+Jsp电子商城案例-“商品”和“商品分类”实体管理,重点容易失误点总结
- java语言将数据导出成excel代码
- Mongodb数据库的主从分离模式-----可用于应对高并发
- Java笔记之Java的内存与回收
- 【leetcode】438. Find All Anagrams in a String(Python & C++)
- imx6上搭建xenomai
- 萨芬的份额及
- 一种C#的插件式实现(一)_读取xml配置
- java 泛型知识点综合 之 示例程序
- 计算直线的交点数(hd1466)
- 自己搭建自动化巡检系统(四) 处理邻居列表
- 解题报告:HDU_6123 Destroy the cube (容斥+三元环计数)
- Unity GameObject常用属性及操作
- android 自定义控件--用viewGroup实现流式布局