zoukankan      html  css  js  c++  java
  • linux--menuconfig

    |--linux内核中Makefile,Kconfig,.config的关系

      (1)三者的作用

        简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜

        Makefile:一个文本形式的文件,编译源文件的方法。

        Kconfig:一个文本形式的文件,内核的配置菜单。

        .config:编译所依据的配置。

    (2)三者的语法

        |--Makefile

        目标定义:目标定义就是用来定义哪些内容要做为模块编译,哪些要编译链接进内核。

        直接编译:

          obj-y  += hello.o

          表示要由hello.c或者hello.s文件编译得到hello.o并链接进内核

          而更常见的做法是根据.config文件的CONFIG_ 变量来决定文件的编译方式 :

        条件编译:

          obj-$(CONFIG_HELLO) += hello.o

          obj-m则表示该文件要作为模块编译。

          除了y,m以外的obj-x形式的目标都不会被编译。

    |-- Kconfig

    类型定义: 

        每个config菜单项都要有类型定义: bool布尔类型、 tristate三态(内建、模块、移除)、
        string字符串、 hex十六进制、integer整型。 
      eg: 
        config HELLO_MODULE 
        bool "hello test module" 
        bool 类型的只能选中或不选中,显示为[ ];

        tristate类型的菜单项多了编译成内核模块的选项,显示为< > ,
        假如选择编译成内核模块,则会在.config中生成一个 CONFIG_HELLO_MODULE=m的配置,
        假如选择内建,就是直接编译成内核影响,就会在.config中生成一个CONFIG_HELLO_MODULE=y的配置.
        hex十六进制类型显示为( )。

    目录层次迭代 
        在Kconfig中有类似语句:source"drivers/usb/Kconfig" 
        用来包含(或嵌套)新的Kconfig文件,这样便可以使各个目录管理各自的配置内容,
        使不必把那些配置都写在同一个文件里,方便修改和管理。

     配置选项之间的依赖关系:
        depend on:某选项依赖于另外一个选项生成
        select   :反向依赖关系,该选项选中时,同时选中select后面定义的那一项
        requie
       默认值: default(默认y/n/m等值)
       输入提示:prompt
       帮助信息:help

    |--.config

      内核编译参考文件

      修改方式:

        (1)  make menuconfig

        (2)  make xxx_defconfig

        (3)  直接修改
      !注意如果直接修改,不一定会生效,因为一些配置可能存在依赖关系,
      make的时候会根据依赖关系进行规则的检查,不推荐直接在.config进行修改。

    |--总结

      输入命令make menuconfig修改相关配置

  • 相关阅读:
    微软的PDC2009开完了,上去淘Video喽,有不少好东西
    [摘要]Pushing the Limits of Windows: Paged and Nonpaged Pool From Mark Russinovich's blog
    [摘要]Pushing the Limits of Windows: Virtual Memory From Mark Russinovich's blog
    如何知道在Windbg中得到Memory type(也叫做caching type)
    用ImgBurn做了一张可以安装所有版本的Win7安装盘
    WF 工作流(5)
    ORACLE 綁定變量
    oracle inside(1)
    WF 工作流(1)
    WF 工作流(2)
  • 原文地址:https://www.cnblogs.com/xzpin/p/11074025.html
Copyright © 2011-2022 走看看