Chinaunix首页 | 论坛 | 博客
  • 博客访问: 365560
  • 博文数量: 36
  • 博客积分: 2071
  • 博客等级: 大尉
  • 技术积分: 797
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-20 12:08
文章分类
文章存档

2011年(2)

2010年(34)

我的朋友

分类: 嵌入式

2010-12-01 22:23:19

Linux2.6.30平台搭建移植文档

一、环境平台介绍

1bootloader环境vivi0.1.4

2、内核kernel环境linux-2.6.34

3、根文件系统工具busybox-1.16.1

4yaffs文件系统源码包

5、交叉编译器 arm-linux-4.3.2

 

二、修改编译内核

1.    解压linux-2.6.34.tar.gz2源码包

 

2.    修改linux-2.6.34/Makefile文件,makefile中找到以下两条信息并做修改

ARCH =arm 

CROSS_COMPILE =/usr/local/arm/4.3.2/bin/arm-linux-

       注意:交叉编译器的环境变量也需要改为arm-linux-gcc-4.3.2

       #export PATH=/usr/local/arm/4.3.2/bin/:$PATH

 

3.    修改平台输入时钟

修改平台的时钟频率修改内核源码“arch/arm/mach-s3c2440/mach-smdk2440.c”

把时钟初始化中(S3C24XX_init_clocks(16934400 ))16934400 改为12000000因为我们的开发板上为12M

 

4.    修改机器类型ID

   bootloader启动内核时,会传递机器类型ID进来,这里需根据bootloadr传进的ID修改内核ID

   在内核源码的“arch/arm/tools/mach-types”文件查找S3C2440这里刚好与我们的bootloader相同所以不用做修改直接保存退出即可如果不同则根据bootloader的内容修改此文件或根据此文件修改boorloader的内容vivi中可通过param show查看

 

5.    解压yaffs.tar.gz2源码包,进入yaffs2文件夹,给内核打上补丁使内核支持yaffs2

   # ./ patch-ker.sh c /home/linux-2.6.34

 

6.    修改内核mtd分区和bootloadervivi使其一致

编辑文件arch/arm/plat-s3c24xx/common-smdk.c

 

static struct mtd_partition smdk_default_nand_part[] =

 {

       [0] = {

              .name      = "vivi",

              .size = 0x00030000,

              .offset     = 0,

       },

       [1] = {

              .name      = "kernel",

              .offset = 0x00050000,

              .size = 0x00300000,

       },

       [2] = {

              .name      = "rootfs",

              .offset = 0x00350000,

              .size = 0x03cac000,

       }

};

 

 

7.    修改文件drivers/mtd/nand/s3c2410.c

s3c2410_nand_init_chip函数里的NAND_ECC_SOFT改为NAND_ECC_NONE因为在内核中默认配置不支持ECC校验当然也可以在内核配置时选中ECC选项

 

8.    llinux-2.6.30目录下执行命令

   #cp  arch/arm/configs/s3c2410_defconfig  .config

 

9.    执行make menuconfig并对选项进行配置

 

       1)System Type --->

              S3C2440 and S3C2442 machines --->

                     仅保留SMDK2440 SMDK2440 whith S3C2440 CPU module两个选项,将其他的选项全部勾掉

 

    2)Kernel Features --->

              [*]Use the arm EABI to compile the kernel(选中该选项)

             

       3)File systems --->

              a、把与ext2 ext3 ext4相关的所有选项全部去掉

 

              bMiscellaneous filesystems --->

                     <*>yaffs2 file system support(选中此选项)

去除所有与jffs2相关的选项

 

保存退出

make zImagearch/arm/boot下生成编译好的可执行程序

 

10去掉10分钟后自动关屏问题

    在有一个 drivers/char/vt.c 文件其中有一个变量(blankinterval)可以设置它

    来修改自动关屏的时间也可以在函数(blank_screen_t)开头直接返回

    样就永远不会关屏了

阅读(1513) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~