zoukankan      html  css  js  c++  java
  • 移植MarS Board代码到内核3.0.35


    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用原来的内核进入系统。

  • 相关阅读:
    替换iframe的内容
    富文本编辑器
    《将CSDN博客搬至博客园》
    学习mongoDB的一些感受(转自:http://blog.csdn.net/liusong0605/article/details/11581019)
    图片上传限制文件类型
    【文章阅读】事务和分布式事务学习理解
    【IDEA】IDEA使用教程+技巧
    【文章阅读】任务、消息队列、以及广播的理解
    进程、线程、协程理解
    动态代理:JDK原生动态代理(Java Proxy)和CGLIB动态代理原理+附静态态代理
  • 原文地址:https://www.cnblogs.com/silmerusse/p/3246443.html
Copyright © 2011-2022 走看看