一 内核编译--Makefile
1.编译
将Linux内核源码编译成针对特定硬件的二进制镜像--zImage /uIamge。
2.方法
*一般拿到一份新的源码,第一步先要将其编译通过。当第一次生成.config文件时,会进行首次配置,选择编译项目。建议对已有.config文件源码
进行备份,以防丢失或错误。
(1).在源码的顶层目录下,根据主机配置环境修改Makefile中的CROSS_COMPLIER路径(.bashrc)及处理器架构。
(2).在源码的顶层目录下,执行make命令,则会根据编写好的Makefile文件去编译源码,最终在 kernel/arch/arm/boot 文件夹下生成
zImage文件。如有错误,根据错误去修改。
3.make执行流程
执行顶层Makefile文件 -> 查找编译器和库文件 -> 查找顶层目录下.config -> 通过各层次的Makefile和Kconfig 编译系统。
4.静态添加驱动进内核
(1).将.c源文件复制到相应的目录下。
(2).在该目录的Konfig配置文件中,添加配置选项。
(3).在该目录的Makefile文件中,添加编译选项。
二 内核配置/裁剪 --Kconfig make menuconfig
内核配置系统的组成
(1).各级的Makefile文件,用于指定编译方式,版本说明,选定编译器, 编译各级目录下的源文件成为指定二进制格式。
(2).Kconfig文件,存在于各级目录下,给用户提供可配置选择功能。和make menuconfig工具组成菜单配置界面,方便用户进行内核的裁剪
(3).配置工具,现在用的比较多的是make menuconfig,图形化内核配置工具。该配置工具是用脚本语言来写的,有两方面的组成。一是内部的脚本
语言命令解释器,对配置脚本文件的命令进行解释;二是提供图形化的界面,提供字符及图形配置界面。
内核配置的实质
内核配置最终在源码顶层目录下生成 .config文件,该文件是经过内核配置后生成的配置文件,裁剪过相关的功能。
三、由源码到板级代码的步骤
一份已经完成的板级代码最重要看三部分:基础代码(能够运行最小文件系统,能够跑起来了);驱动代码(支持板子上的外设,并已经写好了驱动);
其他代码(代码用途:)。
(1).基础代码
包括体系结构移植代码、处理器核心代码、板级支持包的部分代码。主要看主板的配置文件(.config)和主板代码文件(mach-xxx.c)
(2).驱动代码
(3).其他代码