1 二 Linux 内核移植实验指导书 1 Linux 内核移植前准备 对于嵌入式 Linux 系统来说,有各种体系结构的处理器和硬件平台,并且用户需要根据需求自己定制硬件板
只要是硬件平台发生变化,即使非常小,可能也需要做一些移植工作
内核移植是嵌入式 Linux系统中最常见的一项工作
当然,移植嵌入式 Linux 系统并不意味着该内核使用了任何特定的链接库或用户工具,建立嵌入式系统并不需要特别的内核
嵌入式系统中使用的内核与工作站或服务器上使用的内核主要的不同在于内核的配置方面
Linux 内核移植是在 Linux 原内核基础上,通过对平台的选择设计来实现针对特定系统的内核版本
Linux 内核的移植包含启动代码的修改、内核的链接及装入、参数传递、内核引导几个部分
其基本过程如下: (1)首先,获取某一版本的 Linux 内核源码,根据具体目标平台对源码进行必要的改写(主要是修改体系结构相关部分); (2)然后添加一些外设的驱动(如网卡驱动,USB 驱动),打造一款适合于目标平台(可以是嵌入式便携设备也可以是其它体系结构的 PC 机)的新操作系统,也就是常说的内核配置或内核定制; (3)对该系统进行针对目标平台的交叉编译,生成一个内核映象文件(如 zImage,uImage,bzImage); (4)最后通过一些手段(如 TFTP)把该映象文件烧写到目标平台中
本实验将对 Linux 内核移植的一些相关概念、知识进行介绍,希望学员可以对 Linux 内核的移植理解得更透彻
1 Linux 内核源码 Linux 内核移植工作主要是修改跟硬件平台相关的代码,一般不涉及 Linux 内核通用的程序,移植的难度也取决于两种硬件平台的差异
通常对 Linux 源码的改写工作难度较大,它要求你不仅对 Linux内核结构要非常熟悉,还要求你对目标平台的硬件结构非常熟悉