Linux内核移植是嵌入式开发只至关重要的一步,不同的嵌入式应用需要不同的嵌入式平台。内核的可裁剪行也可以在内核移植中体现出来,对于特定的硬件环境,我们可以只保留和硬件相关的内核代码,从而达到缩小内核代码体积,减少代码所占存储空间。
下面我们一步一步了解linux内核移植方法。
1、修改硬件平台的支持
我们可能用到arm,也可能用到power
以arm为例(以下都以arm为例,linux-3.5版本),论述修改方法:
修改内核根目录下makefile文件
ARCH ?=
CROSS_COMPILE ?=
把上面两行修改为:
ARCH ?=
CROSS_COMPILE ?=
2、修改平台时钟
打开arch/arm/mach-s3c24xx/mach-smdk2440.c文件
s3c24xx_init_clocks(16934400);
修改为:
s3c24xx_init_clocks(12000000);//根据开发板外接晶振大小设置
3、修改机器码
打开arch/arm/tools/mach-types文件
s3c2440 ARCH_S3C2440 S3C2440 362
修改为自己的机器码。
以上三个方面是最基本的,当然还有对nand、lcd、网卡芯片等等的支持。
下面就是配置内核了,配置内核有三种方式:
1、运行命令make
2、运行命令make
3、运行命令make
1是命令行的形式,2是基于文本的图形界面,3是需要x
等到所有配置已经完成,开始编译内核,内核编译需要很长时间。
运行命令:make
完成后,会在arch/arm/boot生成zImage镜像。