首页 理论教育 嵌入式Linux内核移植实例-零点起步

嵌入式Linux内核移植实例-零点起步

时间:2023-10-31 理论教育 版权反馈
【摘要】:使某个平台的代码运行在其他平台上的过程称为移植。Linux内核主要由5个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口和进程间通信。Linux内核源代码的分布如下:●arch:这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。在了解了Linux的内核结构以后,就可以开始移植工作了。移植所要做的工作就是根据硬件的配置,修改Linux内核目录中的Makefile文件、配置文件及某些源代码。

嵌入式Linux内核移植实例-零点起步

使某个平台的代码运行在其他平台上的过程称为移植。Linux系统通过移植可以运行在ARM,PowerPC,M68K等多种平台上。

Linux内核主要由5个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口和进程间通信。一般地,在Linux系统中的/usr/src/linux-*.*.*目录下就是内核源代码。Linux内核源代码的分布如下:

●arch:这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。如对于x86平台就是i386。

●include:这个目录包括了核心的大多数include文件。另外,对于每种支持的体系结构,分别有一个子目录。

●init:此目录包含了核心启动代码。

●mm:此目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下,如对应于x86的就是arch/i386/mm/fault.c。

●drivers:系统中所有的设备驱动都位于此目录中。它又进一步划分成几类设备驱动,每一种也有对应的子目录,如声卡的驱动对应于drivers/sound。

●ipc:此目录包含了核心的进程间通信代码。

●modules:此目录包含了已建好可动态加载的模块。

●fs:Linux支持的文件系统代码。不同的文件系统对应于不同的子目录,如ext2文件系统对应的就是ext2子目录。

●kernel:主要核心代码。同时,与处理器结构相关的代码都放在arch/*/kernel目录下。

●net:核心的网络部分代码。里面的每个子目录对应于网络的一个方面。

●lib:此目录包含了核心的库代码。与处理器结构相关的库代码都被放在arch/*/lib/目录下。

●scripts:此目录包含用于配置核心的脚本文件。

●Documentation:此目录是一些文档,起参考作用。(www.xing528.com)

在了解了Linux的内核结构以后,就可以开始移植工作了。

移植所要做的工作就是根据硬件的配置,修改Linux内核目录中的Makefile文件、配置文件及某些源代码。

(1)安装内核

如果内核已经安装(/usr/src/目录下有Linux子目录),则跳过;如果内核没有安装,则到Linux内核版本发布的官方网站“http://www.kernel.org”进行下载安装。

(2)清除从前编译内核时残留的.o文件和不必要的关联

(3)配置内核,修改相关参数

图形界面下修改makexconfig;在字符界面下修改makemenuconfig,在内核配置菜单中正确设置内核选项,保存退出。

(4)正确设置关联文件

(5)编译内核

对于大内核(如需要SCSI支持等)为makebzImage;对于小内核为makezImage。

(6)编译模块

运行命令makemodules。

(7)安装模块

运行命令makemodules_install。

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

我要反馈