Linux内核移植笔记.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核移植笔记

Linux内核移植的详细步骤 福建师大分校 沈志民 2012.6.6 一,相应的目标硬件及软件环境 Cpu: s3c2440 Borad: mini2440 Kernek: linux-2.6.32.2.tar Yaffs2: fs2-HEAD-126183c.tar Cross_compile: arm-linux-gcc 4.3.2 二,解压内核源码编译测试 Tar xvzf linux-2.6.32.2.tar.gz -C /home/kernel Cd /home/kernel Make distclean 2.1 修改交叉编译变量,使得内核缺省的目标平台为arm平台。在顶层目录下的Makefile文件第183行 ARCH $ SUBARCH CROSS_COMPILE 修改为 ARCH arm CROSS_COMPILE arm-linux- 2.2 关于内核的机器码 Mini2440已申请了自己的机器码为1999,它定义在 linux-2.6.32.2/arch/arm/tools/mach_types 如下图所示 此机器码要与u-boot传入的机器码一致,否则会出错 ****u-boot的对mini2440的机器码定义在u-boot/include/asm-arm/mach-types.h 2.3)克隆建立自己的目标平台 linux-2.6.32.2内核已经支持mini2440开发板,即在 linux-2.6.32.2/arch/arm/mach-s3c2440目录下有个mach-mini2440.c文件。但我们不用直接把他删除。在此目录下的mach-smdk2440.c文件复制一份命名为mach-mini2440.c 打开mach-mini2440.c文件找到MACHINE_START S3C2440, SMDK2440 将其修改为 MACHINE_START MINI2440, szhimin mini2440 development board ****在开发板运行后,在命令行输入: cat /proc/cpuinfo可以看到我们添加的开发板信息,如下图 2.4)修改时钟频率 在mach-mini2440.c文件中的第160行 static void __init smdk2440_map_io void 函数中把s3c24xx_init_clocks 1座机电话号码 ;修改为s3c24xx_init_clocks 1座机电话号码 ;代表开发板上的晶振为12MHZ 2.5)从smdk2440到mini2440 因为要制作自己的mini2440平台体系,因此把mach-smdk2440.c中所有smdk2440改为mini2440. 在vi命令模式下输入:%smdk2440/mini2440/g 上面这句的意思是:把所有和“smdk2440”匹配的字符串全部替换为“mini2440”,前面的“%s“代表字符串匹配,最后的“g”代表global,是全局的意思。除此之外,还有一个地方需要改动,在mini2440_machine_init void 函数中,把 smdk_machine_init 函数调用注释掉,因为我们后面会编写自己的初始化函数,不需要调用smdk2440原来的。 2.7)编译测试 在内核根目录下执行 #make mini2440_defconfig #make menuconfig 在System Type- S3C2440 Machines选中MINI2440 development board #make zImage 重新编译的内核文件位于arch/arm/boot 目录下 三,移植NAND驱动并更改分区信息 3.1)在mach-mini2440.c中的第152行的static struct platform_device *mini2440_devices[] __initdata函数中添加 s3c_device_nand,即把nand flash设备注册到系统中 第170行static void __init mini2440_machine_init函数中加入s3c_device_nand.dev.platform_data mini2440_nand_info; 3.2)添加如下代码 #include plat/common-smdk.h #include #include #include #include #include // static struct mtd_partition mini2440_default_nand_part[] [0] .name supervivi, .size 0

文档评论(0)

liudao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档