搜索
bottom↓
回复: 15

【小练初成】Linux 2.6.36内核移植飞凌OK6410开发板完整步骤详解--学Linux的朋友一

[复制链接]

出0入0汤圆

发表于 2011-5-20 07:49:55 | 显示全部楼层 |阅读模式
今天终于让Linux内核在飞凌的板子上跑起来了,想来也是艰辛,为了移植成功,断断续续做了将近两个月的努力,期间郁闷不可言

语形容啊,   了解其中艰辛,将自己移植步骤与心得与大家分享,希望对初踏次领域之人有所帮助,我所写的成果一部分也是网上前

辈的所作,并非完全本人原创。

一、       移植环境

主 机:VMWare-Ubuntu

开发板:飞凌OK6410 nandflash,Kernel:2.6.36.2

编译器:arm-linux-gcc-4.3.2.tgz

u-boot:u-boot-1.1.6



注:编译器和u-boot 都是飞凌开发板自带的

二、  源码获得

       内核源码到http://www.all.kernel.org/下载;

三、    移植步骤:

1.将Linux2.6.34.2内核源码放到工作目录文件夹下,并解压。

#tar xzvf linux2.6.36.2.tar.gz –c /
#pwd
/
# cd linux2.6.36.2

       2. 修改内核源码根目录下的Makefile文件(CROSS_COMPILE    =的值因个人情况而定,其他可以照做)

       #gedit Makefile

......
#SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
#                  -e s/arm.*/arm/ -e s/sa110/arm/ \
#                  -e s/s390x/s390/ -e s/parisc64/parisc/ \
#                  -e s/ppc.*/powerpc/ -e s/mips.*/mips/ )
......

#ARCH        ?= $(SUBARCH)
#CROSS_COMPILE    ?=

ARCH        = arm
CROSS_COMPILE    = /usr/local/arm/usr/local/arm/4.3.2/bin/arm-none-linux- gnueabi-

3添加NandFlash分区信息.

修改arch/arm/mach-s3c64xx/mach-smdk6410.c文件,添加Nand Flash的分区信息和Nand Flash的硬件信息。(蓝色字体为添加部分)

#pwd

        #gedit mach-smdk6410.c               //add here 注意:此处的nandflash分区信息是飞凌自带的2.6.28的内核设置,由

于此处要用到uboot是飞凌的,所以分区信息也要按人家的来 添加头文件 #include <plat/nand.h>#include

<linux/mtd/partitions.h>#include <mtd/mtd-abi.h>#include <asm/mach/flash.h>struct mtd_partition s3c_partition_info[]

= {      

                   {         

                      .name          = "Bootloader",

                       .offset               = 0,   

                      .size          = (256*SZ_1K),   

                        .mask_flags    =MTD_CAP_NANDFLASH,  

                     },   

                     {        

                      .name          = "Kernel",   

                     .offset               = (256*SZ_1K),     

                     .size          = (4*SZ_1M) - (256*SZ_1K),   

                      .mask_flags    = MTD_CAP_NANDFLASH,     

                     },

#if defined      (CONFIG_SPLIT_ROOT_FILESYSTEM)

                {           

                        .name          = "Rootfs",

                        .offset               = (4*SZ_1M),   

                         .size          = (80*SZ_1M),//

                },

#endif        

                  {         

                          .name          = "File System",

                          .offset               = MTDPART_OFS_APPEND,  

                       .size          = MTDPART_SIZ_FULL,   

                  }

};

static struct s3c2410_nand_set s3c_nandset[]={  

       [0]=         {        

                   .name            ="s3c24xx-nand",   

                  .nr_chips        = 1,  

                    .nr_partitions   =ARRAY_SIZE(s3c_partition_info),        

                 .partitions   =s3c_partition_info,

                    }

};

static struct s3c2410_platform_nand s3c_platform={     

              .tacls =25,           

            .twrph0 =55,        

            .sets = &s3c_nandset,      

             .nr_sets =ARRAY_SIZE(s3c_nandset),};

//add here…

static struct platform_device *smdk6410_devices[] __initdata = {

#ifdef CONFIG_SMDK6410_SD_CH0     

    &s3c_device_hsmmc0,

#endif

#ifdef CONFIG_SMDK6410_SD_CH1      

     &s3c_device_hsmmc1,

#endif        

   &s3c_device_i2c0,     

     &s3c_device_i2c1,      

    &s3c_device_fb,      

    &s3c_device_ohci,     

      &s3c_device_usb_hsotg,   

     &s3c64xx_device_iisv4,  

       //add here      

     &s3c_device_nand,      

   //add here…

}

static void __init smdk6410_map_io(void){   

       u32 tmp;     

      //add here     

      s3c_device_nand.name = "s3c6410-nand";   

       //add here…



}

static void __init smdk6410_machine_init(void){      

      u32 cs1;      

     s3c_i2c0_set_platdata(NULL);  

       s3c_i2c1_set_platdata(NULL);   

      s3c_fb_set_platdata(&smdk6410_lcd_pdata);  

       //add here      

     s3c_nand_set_platdata(&s3c_platform);//      

     //add here…

}


本篇文章来源于飞凌S3C6410论坛www.witech.com.cn  原文链接:http://www.linuxidc.com/Linux/2011-01/31185.htm

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2011-5-20 08:22:46 | 显示全部楼层
关注下!

出0入0汤圆

发表于 2011-5-20 11:37:59 | 显示全部楼层
不懂,但是顶你!加油

出0入0汤圆

发表于 2011-5-20 11:59:40 | 显示全部楼层
呵呵,投一票

出0入0汤圆

发表于 2011-5-22 23:19:17 | 显示全部楼层
在make menuconfig 配置结束以后!编译过程里会遇到不少大大小小的问题!出错信息怎么调得没有是个问题!!

出0入0汤圆

发表于 2011-5-24 23:31:44 | 显示全部楼层
不错,投一票!

出0入0汤圆

发表于 2011-5-24 23:32:00 | 显示全部楼层
不错,投一票!

出0入0汤圆

发表于 2011-5-24 23:50:55 | 显示全部楼层
要买arm的板子了,标记下,将来学习

出0入0汤圆

 楼主| 发表于 2011-7-15 07:28:52 | 显示全部楼层
回复【4楼】hellokety
在make menuconfig 配置结束以后!编译过程里会遇到不少大大小小的问题!出错信息怎么调得没有是个问题!!
-----------------------------------------------------------------------

是警告还是错误?如果是警告,一般不用管吧。

出0入137汤圆

发表于 2011-7-15 08:13:54 | 显示全部楼层
我用的te6410和te2440,刚拿到板子

出0入0汤圆

发表于 2011-9-14 17:20:24 | 显示全部楼层
回复【楼主位】Ayuflyhigh
-----------------------------------------------------------------------

压根就编译不过去

出0入0汤圆

发表于 2011-9-15 06:57:02 | 显示全部楼层
回复【10楼】modelsim
-----------------------------------------------------------------------
我试过,可以编译,有警告,但可以忽略掉。是不是编译器用错了呢?
楼主发一个完整的完整的rar包呗,这样大家用着也方便啊!

出0入0汤圆

发表于 2011-9-15 09:10:27 | 显示全部楼层
mark一个,虽然警告应该比错误更值得重视。

出0入0汤圆

发表于 2011-9-15 11:26:25 | 显示全部楼层
支持一下   6410 刚起步

出0入0汤圆

发表于 2011-10-31 13:50:42 | 显示全部楼层
mark,试一试!

出0入0汤圆

发表于 2011-10-31 15:14:28 | 显示全部楼层
多谢楼主!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 06:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表