欢迎来到天天文库
浏览记录
ID:27526811
大小:34.50 KB
页数:8页
时间:2018-12-04
《PowerPC平台Linux的移植(二).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、PowerPC平台Linux的移植(二) 处理并编译内核源代码Linux内核的配置系统由三个部分组成,分别是:1.Makefile:分布在Linux内核源代码中的Makefile,定义Linux内核的编译规则;2.配置文件(config.in):给用户提供配置选择的功能;3.配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于Ncurses图形界面以及基于Xwindows图形界面的用户配置界面,各自对应于Makeconfig、Makemenuconfig和makexco
2、nfig)。这些配置工具都是使用脚本语言,如Tcl/TK、Perl编写的(也包含一些用C编写的代码)。本文并不是对配置系统本身进行分析,而是介绍如何使用配置系统。所以,除非是配置系统的维护者,一般的内核开发者无须了解它们的原理,只需要知道如何编写Makefile和配置文件就可以。应用补丁如果使用上述脚本,它会自动帮你下载内核源码,如果你觉得版本较低,可以自行下载。我这里下载的是2.6.22的内核代码,直接去http://www.kernel.org下载的,同时下载的还有patch-2.6.22,虽然一开始用不上。顺便说一句
3、,其实默认下载的2.6.15.4版本已经足够了,没有特殊情况没有必要单独再下载别的,新版本内核很多特性都是用不上的。如果你下载的内核版本有对应的补丁,就要通过补丁进行对内核源代码的修补操作。一个补丁就是一个文本文档,这个文档包含了在两个不同版本的源代码树之间的变化。补丁是通过diff应用程序来创建的。我们使用patch程序来应用下载的patch。patch程序读取一个diff(或者patch)文件,然后把文件中描述的变化内容应用到代码树上。Linux内核中的补丁是相对于保存内核源代码目录的父目录而生成的。这就意味着:pat
4、ch文件中的文件路径包含了它所基于的内核源文件目录的名字(或者像是”a/”和”b/”之类的其它名字)。由于这很可能和你本地机器上的内核源代码目录的名字不匹配(但是对于查看一个没有标签的补丁所基于的内核版本是非常有用的)。你应该切换到你的内核源代码目录,并且在打补丁的时候去掉patch中文件名字路径的第一个分量(patch命令的-p1参数可以完成这个任务)。具体过程是这样的,比如把下载下来的patch压缩包解压到/patch目录下,解压后的文件名为:xxxx.patch,然后进入你内核源文件的文件夹,将补丁拷贝到这里,首先运
5、行命令patch-p1–dry-run修改文件好,此时的内核源代码,如果是用于台式机的编译,改动就已经足够了。但是我们是要编译出能在ppc上运行的内核,因此,还要继续进行修改。修改串口代码首先,在XUP板子上有一个串口终端,并且只有一个,这意味着很多流程,包括bootloader,bootprocess以及接下来的一些步骤都要和这个串口交互,如果采用默认的波特率9600,就有点慢了,因此,我们可以将其波特率修改得大一些。以38400为例,硬件平台的修改请在edk下进行,系统源代码的修改,请找到arch/ppc/boot/c
6、ommon/ns16550.c,找到这一行:#defineSERIAL_BAUD9600将其修改成#defineSERIAL_BAUD38400即可。修改xparameters.h在生成bsp的时候会生成xparameters_.h文件,你需要修改源代码目录下arch/ppc/platforms/4xx/xparameters.h文件,让它包括xparameters_.h这个文件。修改makefile接下来我们来关注一下Makefile,由于Linux内核源代码是按照树形结构组织的,所以Makefile也被分布在目录树中。
7、Linux内核中的Makefile以及与Makefile直接相关的文件有:1.Makefile:顶层Makefile,是整个内核配置、编译的总体控制文件。botherfinally2..config:内核配置文件,包含由用户选择的配置选项,用来存放内核配置后的结果(如makeconfig)。3.arch/*/Makefile:位于各种CPU体系目录下的Makefile,如arch/arm/Makefile,是针对特定平台的Makefile。4.各个子目录下的Makefile:比如drivers/Makefile,负责所在子
8、目录下源代码的管理。5.Rules.make:规则文件,被所有的Makefile使用。用户通过makeconfig配置后,产生了.config。顶层Makefile读入.config中的配置选择。顶层Makefile有两个主要的任务:产生vmlinux(未压缩的内核)文件和内核模块(module)。为了
此文档下载收益归作者所有