我想为raspberry pi 3配置和构建内核。但是当我读取配置文件时,我不知道linux-kernel
配置文件中代码的含义是什么。我尝试搜索它,但我找不到它。
EX:
CONFIG_SYSVIPC=y
- > CONFIG_SYSVIPC
是什么意思?
CONFIG_POSIX_MQUEUE=y
- > CONFIG_POSIX_MQUEUE
是什么意思?
答案 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
)来确保所有依赖项都得到满足,并且所有自动选择都将启用。