生成并配置.config文件
编译内核第一步是生成对应的.config文件,此文件中声明了哪些功能和特性需要开启。
- 拷贝“/boot”目录下的config文件到源码目录,并重命名为.config。
命令中的“/boot”目录下的config文件名称仅为示例,实际的文件名称要通过uname -r命令确认,拷贝的config文件版本要与操作系统的内核版本保持一致。
1
cp /boot/config-`uname -r` /usr/src/linux-kernel-5.15.98/.config
- 生成.config文件。
1 2
cd /usr/src/linux-kernel-5.15.98/ sudo make menuconfig
- 执行命令后,在出现的界面中选择“Load”,如图所示。
- 出现如图所示的界面时,选择“OK”。
- 配置内核编译选项。
在出现如图所示的内核配置界面中,如图1所示,进行内核编译选项的配置,具体配置项如表1所示。
表1 内核编译选项配置说明 配置项
配置要求
配置结果对照
.config中显示的配置结果
STAGING
Y
[*] Staging drivers
CONFIG_STAGING=y
ANDROID
Y
[*] Android Drivers
CONFIG_ANDROID=y
ASHMEM
Y
[*] Enable the Anonymous Shared Memory Subsystem
CONFIG_ASHMEM=y
ANDROID_BINDER_IPC
Y
[*] Android Binder IPC Driver
CONFIG_ANDROID_BINDER_IPC=y
ANDROID_BINDERFS
Y
[*] Android Binderfs filesystem
CONFIG_ANDROID_BINDERFS=y
ANDROID_ALARM
Y
<*> Android Alarm Driver
CONFIG_ANDROID_ALARM=y
ANON_VMA_NAME
Y
[*] Anonymous VMA name support
CONFIG_ANON_VMA_NAME=y
TANGO32
Y
<*> 32-bit syscall support for the Tango binary translator
CONFIG_TANGO32=y
VFAT_FS
Y
<*> VFAT (Windows-95) fs support
CONFIG_VFAT_FS=y
INPUT_UINPUT
Y
<*> User level driver support
CONFIG_INPUT_UINPUT=y
HISI_PMU
Y
<*> HiSilicon SoC PMU drivers
CONFIG_HISI_PMU=y
SYSTEM_TRUSTED_KEYS
清空内容
( ) Additional X.509 keys for default system keyring
CONFIG_SYSTEM_TRUSTED_KEYS=""
DEBUG_INFO
N
[ ] Compile the kernel with debug info
# CONFIG_DEBUG_INFO is not set
配置方法说明:
- 键盘的上下左右键进行菜单导航。
- 按“Enter”键选择子菜单或编辑选中项内容。
- 连按2次“Esc”退出。
- “/”用于搜索。
- “Y”将选中项编译进内核,对应项显示为:[*]。
- “N”将选中项排除,对应项显示为:[]。
- “M”键将选中的项编译成模块(编译成ko的形式),对应项显示为:<M>。
配置示例如下:
- 在配置界面,按“/”键打开搜索,输入“STAGING”,按回车进行确认,出现下图的搜索结果。
- 确认配置项的编号,如图中的“(1)”,按数字“1”进行选择。
- 按“y”键将选中项调整为编译进内核,使用左右键导航到 ,按“<Enter>”确认返回。
- 返回到内核配置首页,进行下一项的配置。
- 完成配置后,在内核配置首页选择,选择 。
- 出现如图所示的界面时,选择 。
- 出现如图所示的界面时,选择 。
- 执行完上述操作,进入如图所示的初始界面,选择 ,当前文件夹下即可生成.config文件。