MarS Board提供的出厂Linux内核是3.0.15的。而Freescale的BSP都早已经更新到3.0.35。为了跟上节奏,我花了点时间把关于marsboard代码从3.0.15移植到了Freescale的内核3.0.35-4.0.0分支。
 
首先从freescale官网下载代码库:

git clone git://git.freescale.com/imx/linux-2.6-imx.git

git checkout imx_3.0.35_4.0.0

比较Embest和Freescale在3.0.15源码的差异,得出Embest对MarS Baord作出的修改。
配置Mars Board的主要代码在:arch/arm/mach-mx6/board-mx6q_marsboard.c 。把它从原来3.0.15的库里复制过来进行修改。还有在arch/arm/plat-mxc/include/mach/iomux-mx6q.h里要修改一下io定义。接下来在arch/arm/tools/mach-types中添加一个编号。最后修改arch/arm/mach-mx6/Kconfig以及arch/arm/mach-mx6/Makefile把新的代码集成进内核。因为目前我还用不到触摸屏,这部分的代码就暂时没有移植。(现在Embest把代码放到了Github上:https://github.com/embest-tech/linux-imx embest_imx_3.0.15_12.04.01分支,所以可以直接得到diff)
 
在编译内核前需要设置下内核配置.config文件。可以复制arch/arm/configs/imx6_marsboard_defconfig,然后make menuconfig,这样可以省点事。
配置内核需要有点耐心。因为不同的配置项间会有依赖关系。如果编译内核不成功就需要查看下哪个依赖项没有被集成进内核,然后重新进行配置。
 
编译内核倒不复杂,首先是要设置内核编译环境。如果是交叉编译,需要设置下环境变量:
export ARCH=arm
export CROSS_COMPILE=~/platform_prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
 
编译内核:
make uImage
make modules
make modules_install INSTALL_MOD_PATH=build
安装内核到CF卡上:
scp arch/arm/boot/uImage <user>@<host>:/boot
rsync -av build/lib/* <user>@<host>:/lib
 
重启,如果一切正常的话,新内核就工作了。
 
以下是uboot环境变量:

videoargs=video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 vmalloc=384M fbmem=25M 
consoleargs=console=ttymxc1,115200 consoleblank=0 
rootfsargs=root=/dev/mmcblk0p1 rootwait rw 
setbootargs=setenv bootargs ${consoleargs} ${videoargs} ${rootfsargs} 
bootcmd=run setbootargs;mmc dev 0;ext2load mmc 0 10800000 /boot/uImage;bootm 
bootcmd_fallback=run setbootargs;mmc dev 0;ext2load mmc 0 10800000 /boot/uImage_fallback;bootm

如果内核有问题无法boot,最好把原先工作的内核重命名为 uImage_fallback,然后在uboot中运行run bootcmd_fallback用原来的内核进入系统。

移植MarS Board代码到内核3.0.35的更多相关文章

  1. 英蓓特Mars board的android4.0.3源码编译过程

    英蓓特Mars board的android4.0.3源码编译过程 作者:StephenZhu(大桥++) 2013年8月22日 若要转载,请注明出处 一.编译环境搭建及要点: 1. 虚拟机软件virt ...

  2. 3.移植驱动到3.4内核-移植DM9000C驱动

    在上章-使内核支持烧写yaffs2,裁剪内核并制作补丁了 本章,便开始移植以前2.6内核的驱动到3.4新内核 1.介绍 首先内核更新,有可能会重新定义新的宏,去除以前的宏,以前更改函数名等 所以移植驱 ...

  3. 为MarS Board安装无线网卡Linux驱动

    玩了几天MarS Board,发现要了解Linux是如何工作的,从嵌入式开发板玩起最有效率.因为会遇到无数的问题和未知领域,然后在解决问题的过程中有深入了解Linux的机会.   为这块开发板专门买了 ...

  4. 配置火星板(MarS Board)的启动参数

    昨天终于拿到了MarS Board.本来上周就应该到的,结果销售人员给我发了块BeagleBone Black... 要是给我的是Sabre Lite也就算了.发错货总是消费者吃亏,好像没怎么听说过占 ...

  5. 如何在Ubuntu/CentOS上安装Linux内核4.0

    大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为‘Hurr durr I'm a sheep’的Linux内核4.0是目前为止最新的主干内核.它是稳定版3. ...

  6. 分析Linux内核5.0系统调用处理过程

    学号: 363 本实验来源 https://github.com/mengning/linuxkernel/ 一.实验要求 1.编译内核5.02.qemu -kernel linux-5.0.1/ar ...

  7. 安装 Linux 内核 4.0

    大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为‘Hurr durr I'm a sheep’的Linux内核4.0是目前为止最新的主干内核.它是稳定版3. ...

  8. WebApplicationInitializer究 Spring 3.1之无web.xml式 基于代码配置的servlet3.0应用

    本文转自http://hitmit1314.iteye.com/blog/1315816 大家应该都已经知道Spring 3.1对无web.xml式基于代码配置的servlet3.0应用.通过spri ...

  9. Linux kernel suspend resume学习:2.6.35与3.0.35比较【转】

    转自:http://blog.csdn.net/njuitjf/article/details/18317149 Linux kernel suspend resume学习:2.6.35与3.0.35 ...

随机推荐

  1. 一步一步安装Git控件版本工具

    Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git的读音为/gɪt/.Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.[2 ...

  2. WPF之路——用户控件对比自定义控件UserControl VS CustomControl)

    将多个现有的控件组合成一个可重用的“组”. 由一个XAML文件和一个后台代码文件. 不能使用样式和模板. 继承自UserControl类. 自定义控件(扩展) 在现有的控件上进行扩展,增加一些新的属性 ...

  3. CornerStone配置SVN,HTTP及SVN简单使用说明

    本文转载至 http://blog.csdn.net/allison162004/article/details/38796857 已经安装了的小伙伴请直接看三步骤 一.下载地址 CornerSton ...

  4. python 之re模块(正则表达式) 分组、断言详解

    正则表达式分组.断言详解   提示:阅读本文需要有一定的正则表达式基础. 正则表达式中的断言,作为高级应用出现,倒不是因为它有多难,而是概念比较抽象,不容易理解而已,今天就让小菜通俗的讲解一下. 如果 ...

  5. c++ 流继承关系

  6. window 计算机 开启事务

    window 操作系统如何开启事务 c#开发中使用事务调试程序的时候必须开启本地计算机的事务,如何开启呢: 1:控制面板 2:组件服务 3:本地DTC 4:设置 5:应用成功.

  7. 【BZOJ4624】农场种植 FFT

    [BZOJ4624]农场种植 Description 农夫约翰想要在一片巨大的土地上建造一个新的农场. 这块土地被抽象为个 R*C 的矩阵.土地中的每个方格都可以用来生产一种食物:谷物(G)或者是牲畜 ...

  8. postgresql常用

    postgresql 字符串转整数 int.integer --把'1234'转成整数 select cast('1234' as integer ) ; --用substring截取字符串,从第8个 ...

  9. js获取当前日期事件(yyyy-MM-dd HH:mm:ss)

    function getDataTimeNow() { var nowstr = new Date(); var datenow = nowstr.getFullYear() + "-&qu ...

  10. Idea之Tomcat

    安装配置   启动 三种方式,run,debug,coverage       面板说明     上面一排 Debugger:debug模式的时候显示方法,调用关系,参数值等, Server:打印日志 ...