设为首页 加入收藏

TOP

移植Linux内核2.6.32.2到QQ2440开发板
2014-11-24 03:22:22 来源: 作者: 【 】 浏览:1
Tags:移植 Linux 内核 2.6.32.2 QQ2440 开发

好长时间没写了,实际上这个工作在很早的时候就完成了,但是一直没有写下来,今天花点时间把Linux内核移植的步骤详细的总结一下,方便自己知识的积累:


一. 移植环境


目标机:友善之臂 QQ2440开发板


交叉编译器:arm-linux-3.4.1


二. 移植linux-2.6.32.2内核到QQ2440开发板


1.获得内核: http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.2.tar.bz2


2.解压内核: tar –jxvf linux-2.6.32.2.tar.bz2


3.修改参数:


1、 进入内核目录,修改makefile


ARCH =arm


CROSS_COMPILE =arm-linux-


然后执行如下的命令,使用arch/arm/configs/s3c2410_defconfig文件来配置内核,它生成.config配置文件,以后就可以直接使用”make menuconfig”修改配置了。


make s3c2410_defconfig


最后是编译生成内核,执行”make”命令将在顶层目录下生成内核映像文件vmlinux;执行”make uImage”除生成vmlinux外,还在arch/arm/boot目录下生成U-Boot格式的内核映像文件uImage;执行”make zImage”除生成vmlinux外,还在arch/arm/boot目录下生成vivi引导的内核映像文件zImage。


2、 修改平台输入时钟由于QQ2440板子 系统时钟源为 12M 无源晶振


找到内核源码arch/arm/mach-s3c2440/mach-smdk2440.c文件,


static void __init smdk2440_map_io(void)


{


s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));


s3c24xx_init_clocks(12000000);//原来是16934400


s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));


}


3、 修改MTD分区信息


修改文件arch/arm/plat-s3c24xx/common-smdk.c。


第一,修改分区信息(64M):


static struct mtd_partition smdk_default_nand_part[] = {


[0] = {


.name = "bootloader",


.offset = 0x00000000,


.size = 0x00030000,


},


[1] = {


.name = "kernel",


.offset = 0x00050000,


.size = 0x00200000,


},


[2] = {


.name = "root",


.offset = 0x00250000,


.size = 0x03dac000,


}


};


4、 修改S3C2440 的机器号


由于Bootloader 传递给Linux 内核的机器号为782(根据实际的情况)


修改 arch/arm/tools/mach-types 文件


s3c2440 ARCH_S3C2440 S3C2440 782


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


从http:/www.aleph1.co.uk/cgi-bin/viewcvs.cgi/获取源代码文件cvs-root.tar,解压源码目录并进入目录


cd /…/…/cvs/yaffs2


./patch-ker.sh c /


上面命令完成下面三件事情:


(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 目录下.


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Qtopia Core 4.3.5移植到9263EK平.. 下一篇移植qt-embedded-linux-opensourc..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)