Linux内核移植步骤

时间:2021-04-18 12:26:35

Linux内核移植是嵌入式开发只至关重要的一步,不同的嵌入式应用需要不同的嵌入式平台。内核的可裁剪行也可以在内核移植中体现出来,对于特定的硬件环境,我们可以只保留和硬件相关的内核代码,从而达到缩小内核代码体积,减少代码所占存储空间。

下面我们一步一步了解linux内核移植方法。

1、修改硬件平台的支持

我们可能用到arm,也可能用到power pc以及i386,所以针对不同平台要修改内核对该平台的支持。

arm为例(以下都以arm为例,linux-3.5版本),论述修改方法:

修改内核根目录下makefile文件

ARCH ?= $(SUBARCH)

CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

把上面两行修改为:

ARCH ?= arm

CROSS_COMPILE ?= arm-linux

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

修改为自己的机器码。 //根据开发板具体情况设置

 

以上三个方面是最基本的,当然还有对nandlcd、网卡芯片等等的支持。

下面就是配置内核了,配置内核有三种方式:

1、运行命令make configmake oldconfig

2、运行命令make menuconfig

3、运行命令make xconfig

1是命令行的形式,2是基于文本的图形界面,3是需要window system支持,前两种不支持鼠标,第三种支持鼠标。

等到所有配置已经完成,开始编译内核,内核编译需要很长时间。

运行命令:make zImage

完成后,会在arch/arm/boot生成zImage镜像。