1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内核移植

111/4 Magic Team “嵌入式无线网络平台的构建及其应用” 内 核 移 植 目 录 版本控制: 3 一、 概述 4 二、 现状及目标 5 1. 现有的硬件和软件 5 2. 移植的目标 5 三、 移植准备与难点分析 6 1、源代码准备 6 2、移植中的困难 6 四、 移植过程 10 1. 2.6.22内核的移植 10 2. Ramdisk文件系统的制作 13 3. busybox的升级和配置 14 4. bootloader的修改和烧写 14 五、 名词解释 16 六、 参考资料 17 版本控制: Version: 0.1.0 Date: 2007-9-9 Author: NightSea Describe: 根据目前移植状况总结而成的技术性资料 移植Linux Kernel 2.6 到s3c2410平台 概述 经过十天左右的努力,在参考和查阅了大量资料的前提下,在一次次实验和思考中,内核的移植工作已经完成,目前基本实现了2.6.22的稳定运行(各种外围接口驱动正在逐步添加中),现将有关过程和想法记录下来,以供交流和研究,如有任何疑问,请询问NightSea或致函nightsea@163.com。 现状及目标 现有的硬件和软件 此次移植工作在如下基础上进行。 开发板为HHARM-Study-R1,其中开发板核心为s3c2410,Flash为8M Nor Flash,SDRAM为32M,bootloader为ppcboot2.0.0,linux kernel为2.4.18,busybox为1.0.0,开发主机环境为FC7(linux kernel 2.6.21),交叉编译工具链为arm-linux-3.4.1。 移植的目标 我们移植的目标是,在现有硬件的基础上,实现对软件的更新,重点为linux kernel,并使其能更好的提供系统支持,为其它设备的移植提供方便,同时大胆创新,锐意进取也是我们一直追求的精神。 移植准备与难点分析 1、源代码准备 (1)、ppcboot-2.0.0:为了方便移植,直接采用HH自带的源代码,并进行修改 (2)、linux-2.6.14 2.6.22:我们进行了两个版本的移植,最终将采用2.6.22 (3)、busybox-1.2.1:更高的版本编译会有问题,同时不再支持命令行编辑 (4)、arm-linux-3.4.1:进行交叉编译 2、移植中的困难 (1)、2.6.14的移植 此部分将讲解移植2.6.14的整个过程,因为这是第一个成功的版本,经历了许多失败,把这个过程记录下来是因为:犯错误和改正错误的过程比结果重要的多。所以在这一部分,移植过程不会写太详细(那是下一部分的内容),更多的是记录走过的弯路,对其的分析以及解决的过程,更明白的说,这一部分是对难点疑点的解答。 移植伊始,直接对2.6.14进行了smdk2410默认配置,并进行交叉编译,下载到开发板运行,bootloader可以正常启动,但是内核解压后就不再输出信息,停留在Uncompressing Kernel...........................done.Now,booting the kernel,经过查阅资料可知,2.4和2.6对串口的命名发生了变化,从ttyS0改为了ttySAC0,所以造成启动信息无法输出到串口(其实此时内核已经启动),但对于命令行的修改也走了弯路,起初以为是Boot Options里面的Default cmdline起作用,但经过修改,没有作用,查看ppcboot源代码发现,内核启动命令行是由bootloader传递过去的,将其中的参数修改,重新编译装载,内核启动信息已经可以显示,OK,下一步。 但是内核还不能够完全启动,提示为不能初始化命令终端,根据查阅,原因如下。在2.4的内核中,linux采用devfs的技术,所有的设备文件都是在系统启动时动态侦测,动态建立的,所以ramdisk中/dev目录下都是空的,而2.6的内核摒弃了devfs,转而采用udev,因为/dev是空的,所以无法初始化命令行,根据资料,在/dev中手动添加两个设备文件console和null,2.6.14已经可以进命令行了。 (2)、busybox的升级 下面一步是要对busybox进行升级,理论上来讲,现有的ramdisk是可以用的,但一方面为了学习有关知识,另一方面为了能够实现自主配置,实现效率最大化,我们需要移植一套属于自己的ramdisk,当然就包括busybox。对busybox的移植,尝试了很多版本,从1.1.3到1.2.1,再到1.5.0,直到1.6.1和1.7.0,最终决定采用1.2.1的版本。主要原因是1.5.0及其以上版本,

文档评论(0)

sh4125733 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档