linux-kernel配置文件中代码的含义

时间:2017-06-21 08:22:33

标签: linux-kernel archlinux-arm

我想为raspberry pi 3配置和构建内核。但是当我读取配置文件时,我不知道linux-kernel配置文件中代码的含义是什么。我尝试搜索它,但我找不到它。

EX:

CONFIG_SYSVIPC=y - > CONFIG_SYSVIPC是什么意思?

CONFIG_POSIX_MQUEUE=y - > CONFIG_POSIX_MQUEUE是什么意思?

2 个答案:

答案 0 :(得分:0)

用于配置内核的内核配置文件,例如启用/禁用驱动程序。

CONFIG_PCI = y表示,将包含内核源代码中的PCI部分以进行编译。如果PCI接口在硬件中可用,我们将在配置文件中启用PCI。

CONFIG_SYSVIPC = y在内核中启用消息队列,信号量集和共享内存段。

CONFIG_POSIX_MQUEUE = y在内核中启用posix消息队列。

请参阅以下链接以便更好地理解, http://www.tldp.org/HOWTO/SCSI-2.4-HOWTO/kconfig.html

答案 1 :(得分:0)

  

我尝试搜索它,但我找不到它。

使用find管道传递给grep来查找内核源代码中Kconfig *文件中配置参数的定义:

find . -name "Kconfig*" | xargs grep "config PARM"

其中PARM是CONFIG_PARM的文本。

Kconfig *文件的树结构和菜单内容记录在https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt

  

CONFIG_SYSVIPC = y - > CONFIG_SYSVIPC是什么意思?

使用搜索方法生成

/home/test/linux-4.4.1$ find . -name "Kconfig*" | xargs grep "config SYSVIPC"
./arch/x86/Kconfig:config SYSVIPC_COMPAT
./arch/mips/Kconfig:config SYSVIPC_COMPAT
./arch/powerpc/Kconfig:config SYSVIPC_COMPAT
./arch/parisc/Kconfig:config SYSVIPC_COMPAT
./arch/s390/Kconfig:config SYSVIPC_COMPAT
./arch/ia64/Kconfig.debug:config SYSVIPC_COMPAT
./arch/sparc/Kconfig:config SYSVIPC_COMPAT
./arch/tile/Kconfig:config SYSVIPC_COMPAT
./arch/arm64/Kconfig:config SYSVIPC_COMPAT
./init/Kconfig:config SYSVIPC
./init/Kconfig:config SYSVIPC_SYSCTL
/home/test/linux-4.4.1$

除了依赖于arch的条目外, init 子系统在 init / Kconfig 中具有主要配置条目。
如果你很幸运,在“帮助”部分有一个不错的解释。

config SYSVIPC
        bool "System V IPC"
        ---help---
          Inter Process Communication is a suite of library functions and
          system calls which let processes (running programs) synchronize and
          exchange information. It is generally considered to be a good thing,
          and some programs won't run unless you say Y here. In particular, if
          you want to run the DOS emulator dosemu under Linux (read the
          DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
          you'll need to say Y here.

          You can find documentation about IPC with "info ipc" and also in
          section 6.4 of the Linux Programmer's Guide, available from
          <http://www.tldp.org/guides.html>.
  

CONFIG_POSIX_MQUEUE = y - &gt; CONFIG_POSIX_MQUEUE是什么意思?

使用搜索方法生成

/home/test/linux-4.4.1$ find . -name "Kconfig*" | xargs grep "config POSIX_MQUEUE"
./init/Kconfig:config POSIX_MQUEUE
./init/Kconfig:config POSIX_MQUEUE_SYSCTL
/home/test/linux-4.4.1$ 

检查 init / Kconfig 找到此配置条目:

config POSIX_MQUEUE
        bool "POSIX Message Queues"
        depends on NET
        ---help---
          POSIX variant of message queues is a part of IPC. In POSIX message
          queues every message has a priority which decides about succession
          of receiving it by a process. If you want to compile and run
          programs written e.g. for Solaris with use of its POSIX message
          queues (functions mq_*) say Y here.

          POSIX message queues are visible as a filesystem called 'mqueue'
          and can be mounted somewhere if you want to do filesystem
          operations on message queues.

          If unsure, say Y.

当然,您不应该直接编辑 .config 文件 使用 menuconfig (或类似的) make 目标(例如make menuconfig)来确保所有依赖项都得到满足,并且所有自动选择都将启用。