zoukankan      html  css  js  c++  java
  • Linux内核配置:Kconfig

    Linux内核源码中,差不多有300个内核子目录都包含了名为Kconfig的文件。这个文件用于配置其所在目录的源码的特性。Kconfig中的每个配置参数都有附带的帮助文本,配置子系统会解析Kconfig的内容,并提示用户做出配置选择。

    配置工具(比如menuconfig)会读取各个子目录中的Kconfig文件,首先读取的是arch子目录中的Kconfig文件。它是在…/scripts/kconfig/Makefile中读取的,这个Makefile包含了与下列内容类似的相关条目:

    # ===========================================================================
    # Kernel configuration targets
    # These targets are used from top-level makefile
    
    PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config
    
    ifdef KBUILD_KCONFIG
    Kconfig := $(KBUILD_KCONFIG)
    else
    Kconfig := arch/$(SRCARCH)/Kconfig
    endif
    
    xconfig: $(obj)/qconf
            $< $(Kconfig)
    
    gconfig: $(obj)/gconf
            $< $(Kconfig)
    
    menuconfig: $(obj)/mconf
            $< $(Kconfig)

    根据你选择的具体架构,menuconfig会读取该架构对应的Kconfig文件,并将其内容作为顶层配置定义。

    Kconfig文件中包含了很多类似这样的指令行:

    source “drivers/pci/Kconfig”

    这条指令告诉配置编辑器(menuconfig),从内核源码树的其他位置读取另一个Kconfig文件。每种架构都包含很多这样的Kconfig文件,这些Kconfig组合起来成为一个完整的配置集合,当用户配置内核时,配置集合会以菜单的形式展现在用户面前。

    每个Kconfig文件都可以随意指定处于源码树其他位置的Kconfig文件。配置工具(menuconfig)会递归读取所有这些链接在一起的Kconfig文件,并相应地构造出配置时所用的菜单结构。

  • 相关阅读:
    清理yum源
    XZ压缩
    Linux命令之dot
    calltree查看工程代码中的函数调用关系
    valgrind 打印程序调用树+进行多线程性能分析
    LINUX 性能 测试 优化工具
    TCP/IP(84) 详解
    perf---LINUX内核研究
    廖雪锋笔记3:类型转换
    廖雪锋笔记2:list,tuble
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3668573.html
Copyright © 2011-2022 走看看