news 2026/5/31 9:05:13

Kconfig配置描述文件问题记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kconfig配置描述文件问题记录

关注公众号:STUDYWITHIOT
内容

Kconfig配置描述文件问题记录

Kconfig文件在编写和编译时遇到需要注意的一些问题汇总。

问题1:输入提示

每个配置项最多只能有一个提示,用于显示给用户。

如果不存在提示,则配置选项是不可见,用户无法直接更改其值,并且该选项不会出现在任何配置菜单中。其值只能通过“default”和“select”设置。这意味着在menuconfig界面没有显示用户不能设置更改,同样地,在defconfig文件中即使设置也无效。

问题2:默认值

默认值只是一个建议值,可以被用户更改。一个配置选项可以有多个默认值。如果有多个默认值,则仅激活第一个定义的默认值。默认值不限于定义它们的配置项,能在其他地方定义,也可以被较早的定义覆盖。仅当用户未设置其他值时(通过上面的输入提示)才将默认值分配给配置符号。如果输入提示可见,则会将默认值呈现给用户,并且用户可以覆盖它。

系统会按其在Kconfig文件中的出现顺序(以及被包含的顺序)处理 default 语句。
例如,如果一个配置项在不同文件里都定义了default值,按照source的顺序取第一个出现的default的值。
在arch/arm/mach-imx/Kconfig中

config IMX_CONFIG string "DCD script to use" depends on MACH_IMX default "arch/arm/mach-imx/spl_sd.cfg"

以及board/freescale/mx6ullevk/Kconfig中

config IMX_CONFIG default "board/freescale/mx6ullevk/imximage.cfg"

它们都在arch/arm/Kconfig中被包含进来,source的顺序如下

... source "arch/arm/mach-imx/mx6/Kconfig" ... source "arch/arm/mach-imx/Kconfig" ...

所以在生成的.config中

CONFIG_IMX_CONFIG="board/freescale/mx6ullevk/imximage.cfg"

如果把source的顺序切换一下,得到的值正好相反。

CONFIG_IMX_CONFIG="arch/arm/mach-imx/spl_sd.cfg"

注意:如果配置选项没有default属性,那么此配置项默认值默认为“n”。

问题3:config配置选项不出现在.config文件中

在Kconfig中,如果你定义了一个config项,但它在.config中不出现,通常有以下两个原因:

  • 该config没有设置默认值(default),并且没有被其他配置项选择(select)或依赖(depends on)的条件不满足。
  • 该config可能依赖于其他配置项,而依赖条件不满足,所以它没有被显示,因此也无法设置。

问题4: ‘*’ in different file than ‘*’ location of the ‘*’

make时遇到类似下面的报错:

arch/arm/mach-imx/mx6/Kconfig:31: 'endif' in different file than 'if' arch/arm/mach-imx/mx6/Kconfig:1: location of the 'if' arch/arm/Kconfig:36: 'endmenu' in different file than 'menu' arch/arm/mach-imx/mx6/Kconfig:1: location of the 'menu'

make时遇到这样的报错,那是因为文本的最后一行丢失了一个换行符。只需要用vim打开文件再保存一下,或者VSCode打开的文本后留一个空行。

根据POSIX标准,文本文件的每一行都应该以换行符(LF,即’\n’)结束,包括最后一行。有些编辑器(如VSCode)在显示文件时,可能会将文件末尾的换行符显示为一个空行,但也有一些编辑器不显示这个空行。所以如果在显示为空行的编辑器里删除末尾的空行就会出现这个报错。


欢迎关注本人微信公众号,阅读完整内容!

如果您觉得有用,感谢老铁百忙之中去给小编公众号一个关注!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 21:10:41

FLUX.1-dev FP8量化版:中端显卡的AI绘画突破

FLUX.1-dev FP8量化版:中端显卡的AI绘画突破 在生成式AI飞速演进的今天,一个令人兴奋的趋势正在浮现:顶级模型不再只是“显卡战神”的专属玩具。随着 FLUX.1-dev FP8量化版本 的发布,一款拥有120亿参数、基于创新 Flow Transforme…

作者头像 李华
网站建设 2026/5/30 23:24:11

gpt-oss-120b/20b安装使用与实战全攻略

gpt-oss-20b:本地大模型的实用入口与深度实践 在生成式 AI 快速演进的今天,越来越多开发者不再满足于调用云端 API。隐私顾虑、响应延迟、成本控制以及对定制能力的渴求,正推动着“本地运行大模型”从技术尝鲜走向实际落地。而就在这个节点上…

作者头像 李华
网站建设 2026/5/30 21:09:24

单菌基因组数据分析文献和教程集锦

单菌基因组数据分析 工具详解SRA公共测序数据的检索、下载从公共数据库获取细菌基因组的测序数据公共数据对细菌基因组的重要性及SRA使用模式菌(流行病学、进化)与非模式菌(组装、注释)获取公共数据 (二代三代)从公共数据库中获取同一株菌的illunima、pacbio以及nanopore测序数…

作者头像 李华
网站建设 2026/5/29 21:03:22

centos安装ffmpeg环境

在这之前要先安装opensslwget https://www.openssl.org/source/openssl-1.1.1.tar.gz tar -zxvf openssl-1.1.1.tar.gz cd openssl-1.1.1 ./config --prefix/usr/local/openssl make sudo make install1.下载ffmpeg5安装包wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.…

作者头像 李华
网站建设 2026/5/30 12:25:48

FaceFusion人脸选择器:模式与参考面管理

FaceFusion人脸选择器:模式与参考面管理 在短视频、虚拟偶像和AI换脸技术迅猛发展的今天,如何精准地从复杂画面中识别并操控特定人脸,已成为内容创作者面临的核心挑战之一。一个看似简单的“选人”动作,背后往往涉及多张人脸的排序…

作者头像 李华
网站建设 2026/5/30 20:22:04

Qwen-Image-Edit-2509推理延迟优化实战

Qwen-Image-Edit-2509推理延迟优化实战 凌晨两点,电商运营团队还在为“618”大促紧急修改上千张商品主图——背景要换、文案要调、模特姿势还得微调。设计师一边手动PS,一边嘀咕:“要是能说句话就改完就好了……” 现在,这句话可以…

作者头像 李华