首页 理论教育 Linux内核移植详解

Linux内核移植详解

时间:2023-10-31 理论教育 版权反馈
【摘要】:Linux内核源码文件近2万个,分别位于17个子目录下,各个目录功能相对独立。表12-1 Linux内核子目录结构本文使用的是linux-2.6.26.8版本的内核。指定开发板的晶振频率为12MHz。3)修改linux-2.6.26.8/arch/arm/plat-s3c24xx/common-smdk.c文件。给内核分配2MB大小的空间,其余的全部留给根文件系统。下一步就是进行内核的配置了。然后再执行make menuconfig生成一个基于S3C2410开发板的内核配置菜单。本文采用的是JFFS2的文件系统类型。内核默认已经对JFFS2有着非常良好的支持,只需要在配置内核时加入相应的配置选项就可以了。

Linux内核移植详解

Linux内核源码文件近2万个,分别位于17个子目录下,各个目录功能相对独立。Linux内核子目录结构见表12-1。

表12-1 Linux内核子目录结构

978-7-111-33316-6-Chapter12-3.jpg

本文使用的是linux-2.6.26.8版本的内核。内核的源代码可以从http://www.kernel.org获取。

1)首先解压缩内核源代码,修改顶层的Makefile文件。

978-7-111-33316-6-Chapter12-4.jpg

这里需要指定目标平台的体系结构和交叉编译工具链的路径。

2)修改linux-2.6.26.8/arch/arm/mach-s3c2440/mach-smdk2440.c文件。

978-7-111-33316-6-Chapter12-5.jpg

指定开发板的晶振频率为12MHz。(www.xing528.com)

3)修改linux-2.6.26.8/arch/arm/plat-s3c24xx/common-smdk.c文件。

978-7-111-33316-6-Chapter12-6.jpg

这里需要修改内核的MTD分区信息,定义NANDFlash分配空间。给内核分配2MB大小的空间,其余的全部留给根文件系统。其中,MTDPART_OFS_APPEND表示当前分区紧接着上一个分区;MTDPART_SIZ_FULL表示当前分区的大小为剩余的Flash空间。

下一步就是进行内核的配置了。这里可以参考S3C2410的开发板来进行配置和调整,内核自带了S3C2410开发板的配置文件。在内核源代码的根目录下执行make s3c2410_defconfig,生成一个基于S3C2410的开发板的默认配置文件。然后再执行make menuconfig生成一个基于S3C2410开发板的内核配置菜单。这里需要保留S3C2410/S3C2440CPU的相关配置选项、TCP/IP、NANDFlash驱动、USB驱动以及适合的文件系统类型。

本文采用的是JFFS2的文件系统类型。内核默认已经对JFFS2有着非常良好的支持,只需要在配置内核时加入相应的配置选项就可以了。

JFFS2文件的系统配置如下:

978-7-111-33316-6-Chapter12-7.jpg

978-7-111-33316-6-Chapter12-8.jpg

最后一步,只需执行makeuImage生成uImage文件,然后就可以通过U-boot固化到开发板中了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈