zoukankan      html  css  js  c++  java
  • linux 3.4.103 内核移植到 S3C6410 开发板 移植失败 (问题总结,日本再战!)

    linux 3.4.103 内核移植到 S3C6410 开发板



    这个星期差点儿就搭在这里面了,一開始感觉非常不值得,移植这样的浪费时间的事情。想立刻搞定,然后安安静静看书 & coding.


    坑爹的事情就是一个多星期的时间搭进去了,还是没成功。

    我把我的移植失败的经验留下来做为笔记,为下次做准备。也让和我一起做移植的道友少走弯路.大家一起共同分享经验,营造更好的开发环境。


    查了非常多资料,在此谢谢那些bloger, thanks for your spirit of sharing.

     

    一. 从官网获得干净的内核

    https://www.kernel.org/

             我这里选择的是3.4.103,(事实上已经试过非常多版本号的kernle了,都是失败啊。心塞~。事实上我在写这篇blog的时候还在尝试再做一次,如今这次我用的3.4.103)


    我的开发板是飞凌的s3c6410。开发板供应商提供的kernel是经过他们处理的,所以不要用供应商的kernel source code. 那样基本上啥经验都赚不到



    二. patching yaffs2文件系统


    在这个过程中我还发现yaffs2近期的版本号是有问题的,源代码编译过不了,有错误

    http://blog.csdn.net/cinmyheart/article/details/38747505


    换一个版本号就正常了~ (坑爹~source code 错误!)


    yaffs2-4e188b0.tar.gz


    给内核打yaffs2文件系统的补丁 


    解压yaffs2源文件压缩包之后,运行yaffs2源码文件夹下的一个shell script

    ./patch-ker.sh c  /Jason_with_ARM/linux-3.4.104/ 


    上面命令完毕以下三件事情: 
    (1) 改动内核fs/Kconfig 
        添加一行:source "fs/yaffs2/Kconfig" 
    (2) 改动内核fs/Kconfig 
        添加一行:ojb-$(CONFIG_YAFFS_FS) +=yaffs2/ 
    (3) 在内核fs/文件夹下创建yaffs2文件夹 
        将yaffs2源代码文件夹以下的Makefile.kernel文件复制为内核fs/yaffs2/Makefie; 
        将yaffs2 源代码文件夹的Kconfig文件拷贝到内核fs/yaffs2文件夹下; 
        将yaffs2源代码文件夹下的*.c *.h文件拷贝到内核fs/yaffs2文件夹下. 


    三. 配置内核。


                   干干净净的内核移植到ARM平台还是要各种手动改动,麻烦的说~当然这也让我更熟悉Kconfig Makfile的作用和关系


                    linux 默认的Kconfig 和.config不是为ARM平台准备的So...

    RT,copy arm文件夹下的Kconfig 而且把s3c6400_defconfig copy成.config (s3c6400和s3c6410的配置差点儿相同。于是内核就仅仅给出了一个config)




    执行一次make menuconfig 然后再加入点东东

    照着以下这个blog的方法做。补全MTD选项

    http://blog.csdn.net/cinmyheart/article/details/38754669


    为了添加devfs文件管理器的支持,补全fs/Kconfig


    我们所用的文件系统使用的是devfs文件管理器。

    改动fs/Kconfig

    找到

    menu "Pseudo filesystems"

    加入例如以下语句:

    config DEVFS_FS
             bool "/dev file system support (OBSOLETE)"
             default y    
    config DEVFS_MOUNT
    bool "Automatically mount at boot"
    default y
    depends on DEVFS_FS


    对于menuconfig 里没有yaffs2选项的解决的方法

    以下给出的link,有些细节事实上是配置内核的一部分,不全然是为了解决yaffs2选项丢失的问题

    http://blog.csdn.net/cinmyheart/article/details/38759549



    改动根文件夹下的Makefile,如图





    接着改动MTD分区(这一步不全然正确。非常可能这就是我为嘛没有移植成功的原因)


                 三星的芯片,一个系列都是从前面的型号慢慢改进衍生出来的新产品,所以就会出现s3c6410和s3c2410在一些基础文件配置上共用


    改动./arch/arm/mach-s3c64xx/mach-smdk6410.c


    加入例如以下代码:

    加入头文件 

    </pre></p><pre name="code" class="cpp">
    #include  <plat/sdhci.h>
    
    #include <linux/mtd/partitions.h>
    
    #include <mtd/mtd-abi.h>
    
    
    struct s3c_ts_mach_info {
    	int             	delay;
    	int             	presc;
    	int             	oversampling_shift;
    	int			resol_bit;
    	enum s3c_adc_type	s3c_adc_con;
    };
    








    凝视掉图中凝视的部分,而且加入&s3c_device_nand


    在/arch/arm/plat-samsung/devs.c里面改动这个函数

     


    改动凝视有added的那句话



    加入 .boot_params 选项





    改动 /drivers/mtd/nand/s3c2410.c

    替换全部的(除了switch的选项外)赋值语句包括的NAND_ECC_SOFT为NAND_ECC_NONE



    Kernel Feature配置






    最后make zImage


    最后的最后:可惜找了非常多blog,还是没能搞定这个问题。

    有人说是






    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    day63-webservice 03.解析cxf提供的例子
    day63-webservice 02.cxf环境搭建
    30个非常有趣的404错误页面设计欣赏
    30个非常有趣的404错误页面设计欣赏
    30个非常有趣的404错误页面设计欣赏
    JS一些常用的类库
    JS一些常用的类库
    JS一些常用的类库
    100+ 值得收藏的 Web 开发资源
    100+ 值得收藏的 Web 开发资源
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4757165.html
Copyright © 2011-2022 走看看