原理

内核源码树每个目录下都还包含一个 Kconfig 文件,用于描述所在目录源代码相关的内核配置菜单,各个目录的 Kconfig 文件构成了一个分布式的内核配置数据库。

通过 make menuconfig 命令配置内核的时候,从 Kconfig 文件读取菜单,配置完毕保存到文件名为.config 的内核配置文件中,供 Makefile 文件在编译内核时使用。

源码目录树顶层 Makefile 是整个内核源码管理的入口,对整个内核的源码编译起着决定性作用。编译内核时,顶层 Makefile 会按规则递归历遍内核源码的所有子目录下的Makefile 文件,完成各子目录下内核模块的编译。

配置内核

进入 Linux 内核源码数顶层目录,输入 make menuconfig 命令,可以进入基于 Ncurses 的 Linux 内核配置主界面,如果没有在 Makefile 中指定 ARCH,则须在命令行中指定:

make ARCH=arm menuconfig

一级目录

一级菜单下的每一项几乎都有复杂的下级子菜单,各自的配置选项也很丰富,如果逐一进行描述,将会是一件非常繁琐的事。而实际产品开发中,并不需要完全了解内核的每一个配置项,通常只需要了解其中一些相关项即可。在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

二级目录

General setup 是内核通用设置菜单界面

在这里插入图片描述

System V IPC 表示系统的进程间通信Inter Process

Communication,它用于处理器在程序之间同步和交换信息

Enable eventpoll support:支持事件轮循的系统调用。

Enable loadable module support 是内核模块配置

Module unloading 允许卸载已经加载的模块

Module versioning support 允许使用其他内核版本的模块(可能会出问题)

Source checksum for all modules 为所有的模块校验源码,如果你不是自己编写内核模块就不需要它这个功能。

Enable the block layer 块设备支持

使用硬盘/USB/SCSI设备者必选这选项使得块设备可以从内核移除:

Support for large (2TB+) block devices and files 仅在使用大于2TB的块设备时需要

Block layer bio throttling support 可用于限制设备的IO速度

IO Schedulers IO调度器I/O是输入输出带宽控制,主要针对硬盘,是核心的必须的东西。这里提供了三个IO调度器。

System Type是处理器类型及特点

Symmetric multi-processing support 对称多处理器支持,如果你有多个CPU或者使用的是多核CPU就选上

Processor family (Pentium-Pro)处理器系列, 请按照实际使用的CPU选择,这里是处理器的类型

Generic x86 support 这一选项针对x86系列的CPU使用更多的常规优化。如果你在上面一项选的是i386、i586之类的才选这个通用x86支持,

Multi-core scheduler support 针对多核CPU进行调度策略优化多核调度机制支持,双核的CPU要选

Bus options是PCI 、ISA 等总线的支持和配置

Kernel Features 是内核特性配置菜单

在这里插入图片描述在这里插入图片描述

Boot option启动选项,可设置默认启动参数和内核参数类型

在这里插入图片描述

CPU Power Management CPU电源管理相关

包括处理器频率降频、休眠模式支持等

Power management options 电源管理相关

Networking support网络配置

包括了以太网、CAN、红外、蓝牙、无线等网络的支持配置选项

Wireless 使用无线网卡支持

RF switch subsystem support RF 切换设备

Networking options 网络协议和网络包参数配置(其中TCP/IP相关协议必须打开)

Networking options,可进入网络选项配置界面

在这里插入图片描述在这里插入图片描述
使用 Linux 的系统都会用到网络,而使用网络又往往离不开 TCP/TP,故建议在配置中选中 TCP/IP 选项,并选中下级全部选项。三态选项也可以配置为,在需要的时候再插入模块。
在这里插入图片描述

Driver Drivers设备驱动,配置界面也很复杂,有众多配置项

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

File systems,是内核文件系统配置界面

在这里插入图片描述在这里插入图片描述在这里插入图片描述

Kernel hacking 内核调试相关

Security options 安全相关选项

Cryptographic API —> // 加密API ,这部分选项会根据此前的优化自动调整

裁剪和配置内核的基本原则

在这里插入图片描述
参考资料:

linux内核裁剪的具体过程和选择

嵌入式Linux内核配置、裁剪与编译浅析

Linux内核编译配置(Menuconfig图形化方式)、制作文件系统的步骤

Linux内核移植和根文件系统制作

Logo

更多推荐