没志青年
发布于 2025-08-07 / 20 阅读
0

Linux 内核配置

配置文件语法

编译时看的是 .config 文件,无论什么方式配置,最终就是为了得到该文件。

menuconfig 中看的选项来自 .in 文件,这是菜单模板文件。

source 引入的顺序,就是菜单显示的顺序。

当配置项没有提示语,说明它不是给用户手动配置的,它是被 depends on 或 select 用到的。

比如:

config HAS_SUBTARGETS
    bool

.in 文件解析:

单选模板

多选模板

choice
	prompt "Target System"      菜单名称
	default TARGET_sunxi        默认选项
	reset if !DEVEL             当某个条件满足时重置选项
	
config TARGET_d1_h_nezha        选项名称
	bool "d1-h-nezha"           bool表示选择,可是可否,里面是展示给用户看的名称
	select LINUX_5_4            select 选择该选项时关联其他配置
	......

config TARGET_d1_h_nezha_min
	bool "d1-h-nezha_min"
	select LINUX_5_4
	......

config TARGET_d1s_nezha
	bool "d1s-nezha"
	select LINUX_5_4
	......

endchoice

需安装依赖:

sudo apt-get install -y gawk libncurses5-dev libncursesw5-dev zlib1g-dev build-essential flex bison unzip file wget curl cpio rsync libssl-dev libelf-dev bc pkg-config

make menuconfig 内核菜单

make xconfig 基于 QT5 的 GUI 界面,一般的内核都不支持。

make menuconfig 如果出错,一般是两个原因:

  1. libncurses5-dev 没安装

  2. 命令行界面太小或字体太大了