欢迎来到天天文库
浏览记录
ID:17941487
大小:329.00 KB
页数:18页
时间:2018-09-11
《linux内核移植-移植2.6.35.4内核到s3c2440》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、linux内核移植-移植2.6.35.4内核到s3c2440分类:嵌入式ARM+LinuxLinux内核游记技术手册2011-07-1409:311941人阅读评论(16)收藏举报硬件平台:FL2440主机平台:Ubuntu11.04交叉编译器:arm-linux-gcc4.3.2原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6604616本来是想移植最新的内核2.6.39但是总是在编译快完成的时候报错,有人说是新的内核对ar
2、m平台的支持不好,所以就降低了一下版本,这里移植2.6.35.4内核一、准备工作1、下载解压内核从官网上下载linux-2.6.35的内核,ftp://ftp.kernel.org/pub/linux/kernel/v2.6/,文件不大,约85M。新建一个工作目录s3c2440,将内核源码包拷贝至工作目录下,再解压。2、移植yaffs2驱动下载最新的驱动点击下载解压在工作目录s3c2440下进入yaffs2: cdyaffs2 给内核打补丁:./patch-ker.sh c../linux-2.6
3、.353、安装交叉编译环境下载arm-linux-gcc4.3.2,然后安装并配置环境变量最后执行arm-linux-gcc-v查看二、移植 1、修改机器码飞凌开发板的bootloader默认的机器码是193,所以我们在使用smdk2440机器的时候,需要修改机器码。修改内核2.6.35.3中的arch/arm/tools/mach-types。删掉s3c2410 ARCH_S3C2410 S3C2410 182 然后将s3c2440 ARCH_S3C2440 S3C2440 36
4、2 修改为s3c2440 ARCH_S3C2440 S3C2440 1932、指定目标板machine、编译器和编译器路径修改linux-2.6.35.3/Makefile,将ARCH ?=$(SUBARCH) CROSS_COMPILE ?= 修改成ARCH ?=arm CROSS_COMPILE ?=/opt/arm/4.3.2/bin/arm-linux- 注意:CROSS_COMPILE是指交叉编译器的路径,该路径一定要完整,否则最后make
5、zImage时提示文件不存在。3、增加devfs文件管理器的支持我们所用的文件系统使用的是devfs文件管理器。修改fs/Kconfig,找到menu"Pseudofilesystems"添加如下语句:configDEVFS_FS bool"/devfilesystemsupport(OBSOLETE)" defaulty configDEVFS_MOUNTbool"Automaticallymountatboot"defaultydependsonDEVFS_FS 帮助理解:K
6、config就是对应着内核的配置菜单。假如要想添加新的驱动到内核的源码中,能够修改Kconfig,这样就能够选择这个驱动,假如想使这个驱动被编译,要修改Makefile。4、修改晶振频率( 可解决打印信息乱码问题 )文件:arch/arm/mach-s3c2440/mach-smdk2440.c/*s3c24xx_init_clocks(16934400);*/ s3c24xx_init_clocks(12000000);5、修改MTD分区[cpp]viewplaincopyprint?1.st
7、atic struct mtd_partition smdk_default_nand_part[] = { 2.[0] = { 3. .name = "Boot", 4. .size = 0x00100000, 5. .offset = 0 6. }, 7. [1] = { 8. .name = "MyApp", 9. .size = 0x003c0000, 10.
8、.offset = 0x00140000, 11. }, 12. [2] = { 13. .name = "Kernel", 14. .size = 0x00300000, 15. .offset = 0x00500000, 16. }, 17. [3] = { 18. .name = "fs_yaffs", 19. .size = 0x0f000000,
此文档下载收益归作者所有