欢迎来到天天文库
浏览记录
ID:14500973
大小:66.50 KB
页数:10页
时间:2018-07-29
《linux-2.6.35.3内核移植(s3c2440》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、大量参考:http://blog.csdn.net/huihui1988/archive/2010/08/09/5799500.aspx宿主机:Fedora13目标机:s3c2440交叉编译器:arm-linux-gcc-3.4.1交叉编译器路径:/usr/local/arm/3.4.1要移植的内核版本:linux-2.6.35.3文件系统类型:yaffs2一、准备工作1、下载解压内核从官网上下载linux-2.6.35的内核,ftp://ftp.kernel.org/pub/linux/kernel/v2.6/,文件不大,约85M。新建一个工作目录s3c244
2、0,将内核源码包拷贝至工作目录下,再解压。2、移植yaffs2驱动下载最新的驱动http://www.aleph1.co.uk/cgi-bin/...fs2.tar.gz?view=tar解压在工作目录s3c2440下进入yaffs2:cdyaffs2给内核打补丁:./patch-ker.shc../linux-2.6.35成功后打印信息:Updating/file/fl/linux-2.6.35/fs/KconfigUpdating/file/fl/linux-2.6.35/fs/Makefile问题:1、什么是补丁?一个补丁就是一个文本文档,这个文档包含了在
3、两个不同版本的源代码树之间的变化。补丁是通过diff应用程序来创建的。为了正确地打上一个补丁,你需要知道这个补丁是从哪个基础版本产生出来的以及这个补丁将要把目前的源代码树变化到什么新的版本。这些信息或者会出现在补丁文件的原数据中,或者可能从文件名中推断出来。2、为什么要给内核打补丁?因为该内核暂不支持yaffs2的文件系统,打上补丁使之支持。3、安装交叉编译环境从http://www.handhelds.org/download/projects/toolchain/下载arm-linux-gcc-3.4.1.tar.bz2解压之,sutarvxjfarm-li
4、nux-gcc-3.4.1.tar.bz2将交叉编译器安装到/usr/local/下。值得注意的是:该/usr/local目录并不是Fedora系统根录下的/usr/local,而是刚刚生成的/usr/local目录。这个一点要注意,否则浪费了时间不说,也破坏了Linux系统。二、移植1、修改机器码飞凌开发板的bootloader默认的机器码是193,所以我们在使用smdk2440机器的时候,需要修改机器码。修改内核2.6.35.3中的arch/arm/tools/mach-types。删掉:s3c2410ARCH_S3C2410S3C2410182然后将s3c
5、2440ARCH_S3C2440S3C2440362修改为s3c2440ARCH_S3C2440S3C24401932、指定目标板machine、编译器和编译器路径修改linux-2.6.35.3/Makefile,将ARCH?=$(SUBARCH)CROSS_COMPILE?=修改成ARCH?=armCROSS_COMPILE?=/usr/local/arm/3.4.1/bin/arm-linux-注意:CROSS_COMPILE是指交叉编译器的路径,该路径一定要完整,从根目录“/”开始。比如本人的是:/home/kelvin/usr/local/arm/3.
6、4.1/bin/arm-linux-这个/home/kelvin就不能少,否则最后makezImage时提示文件不存在。3、增加devfs文件管理器的支持我们所用的文件系统使用的是devfs文件管理器。修改fs/Kconfig,找到menu"Pseudofilesystems"添加如下语句:configDEVFS_FSbool"/devfilesystemsupport(OBSOLETE)"defaultyconfigDEVFS_MOUNTbool"Automaticallymountatboot"defaultydependsonDEVFS_FS帮助理解:Kc
7、onfig就是对应着内核的配置菜单。假如要想添加新的驱动到内核的源码中,能够修改Kconfig,这样就能够选择这个驱动,假如想使这个驱动被编译,要修改Makefile。4、修改晶振频率(可解决打印信息乱码问题)文件:arch/arm/mach-s3c2440/mach-smdk2440.c/*s3c24xx_init_clocks(16934400);*/s3c24xx_init_clocks(12000000);5、修改MTD分区文件:arch/arm/plat-s3c24xx/common-smdk.c需要和bootloader中的分区信息相同(256M),
8、否则,启动时出错。sta
此文档下载收益归作者所有