make menuconfig/.config/Kconfig解析

本文详细解析了Linux内核配置过程中make menuconfig的使用,介绍了.config、Kconfig和Makefile的作用,以及Kconfig的语法,包括menuconfig、config、choice等。通过实例说明如何向内核添加功能,并探讨了内核配置的必要性和作用,帮助读者理解Linux内核裁剪和配置过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

在对linux进行编译,常用的命令是make menuconfig,使用图形界面来对整个系统进行裁剪。当然,除了这条指令,还包括很多配置命令,比如make defconfig, make oldconfig等。这里主要就make menuconfig的执行过程进行解析。

一.准备工作

包括(交叉)编译环境的建立,linux源码的下载与解压等。

二.初步介绍

         跟make menuconfig这个命令相关的文件,包括三类,包括.config,Kconfig,Makefile。为什么不说三个,而说三类呢?因为Kconfig和Makefile是配合使用的,在很多的子目录都存在,而.config只存在于根目录中。这三个文件的作用分别是:

Kconfig:定义了配置项

.config:对配置项进行赋值

Makefile:建立配置项的生成法则

         看到这里,可能有人就头疼了,到底什么是配置项,什么是生成法则。这里要求具有理解Makefile的能力,如果不懂的话,可以去找Makefile的相关资料。

如果使用举例的话,比较容易理解。比如,我编写了mytest.c的文件,这里不关心mytest.c的内容。如果想把mytest.c编译到内核中,需要按照以下的步骤来完成。

1)       将test.c放到任何一个目录中,这个目录只要求已存在Kconfig和Makefile中,比如源码根目录/arch/arm/目录中。

2)       在这个目录的Kconfig中添加

config MY_TEST

bool “

make: arm-xilinx-linux-gnueabi-gcc: Command not found CLEAN scripts/basic make[2]: arm-xilinx-linux-gnueabi-gcc: Command not found CLEAN scripts/kconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/confdata.o HOSTCC scripts/kconfig/expr.o LEX scripts/kconfig/lexer.lex.c YACC scripts/kconfig/parser.tab.[ch] HOSTCC scripts/kconfig/lexer.lex.o HOSTCC scripts/kconfig/parser.tab.o HOSTCC scripts/kconfig/preprocess.o HOSTCC scripts/kconfig/symbol.o HOSTLD scripts/kconfig/conf scripts/Kconfig.include:35: compiler 'arm-xilinx-linux-gnueabi-gcc' not found scripts/kconfig/Makefile:90: recipe for target 'xilinx_zynq_defconfig' failed make[1]: *** [xilinx_zynq_defconfig] Error 1 Makefile:567: recipe for target 'xilinx_zynq_defconfig' failed make: *** [xilinx_zynq_defconfig] Error 2 UPD scripts/kconfig/mconf-cfg HOSTCC scripts/kconfig/mconf.o HOSTCC scripts/kconfig/lxdialog/checklist.o HOSTCC scripts/kconfig/lxdialog/inputbox.o HOSTCC scripts/kconfig/lxdialog/menubox.o HOSTCC scripts/kconfig/lxdialog/textbox.o HOSTCC scripts/kconfig/lxdialog/util.o HOSTCC scripts/kconfig/lxdialog/yesno.o HOSTLD scripts/kconfig/mconf scripts/kconfig/mconf Kconfig scripts/Kconfig.include:35: compiler 'arm-xilinx-linux-gnueabi-gcc' not found scripts/kconfig/Makefile:33: recipe for target 'menuconfig' failed make[1]: *** [menuconfig] Error 1 Makefile:567: recipe for target 'menuconfig' failed make: *** [menuconfig] Error 2 Makefile:613: include/config/auto.conf: 没有那个文件或目录 Makefile:660: include/config/auto.conf.cmd: 没有那个文件或目录 make: arm-xilinx-linux-gnueabi-gcc: Command not found *** *** Configuration file ".config" not found! *** *** Please run some configurator (e.g. "make oldconfig" or *** "make menuconfig" or "make xconfig"). *** Makefile:663: recipe for target '.config' failed make: *** [.config] Error 1
最新发布
03-21
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值