makefile - 如何使用 kconfig 文件

问题描述 投票:0回答:1

我偶然发现了这个关于 Linux 下 USB 视频采集器的网站,我正在尝试编译here找到的代码。我读过有关 makefile 的内容,但这个让我困惑,因为它太短了:

usbtv-y := usbtv-core.o \
    usbtv-video.o

obj-$(CONFIG_VIDEO_USBTV) += usbtv.o

我现在想写我自己的 makefile。我现在想知道的是,

Kconfig
文件的用途以及如何使用它。我很难找到更多关于如何使用它的信息,只有一些关于 KDE 的东西,这不是我想要的。有人可以启发我吗?我认为这很重要,因为在描述中(在我链接的第一个网站上)它说如何使其工作

Linux内核驱动,启用CONFIG_VIDEO_USBTV

这是 Kconfig 文件:

config VIDEO_USBTV
        tristate "USBTV007 video capture support"
        depends on VIDEO_V4L2
        select VIDEOBUF2_VMALLOC

        ---help---
          This is a video4linux2 driver for USBTV007 based video capture devices.

          To compile this driver as a module, choose M here: the
          module will be called usbtv

另外,Kconfig 文件中“在这里选择 M”是什么意思?在哪里?如何?什么时候?

makefile linux-kernel linux-device-driver kernel-module
1个回答
4
投票

生成文件

这个 Makefile 不完整。它被其他 makefile 包含:

此 makefile [1] 包括这个 [2],其中包括这个 [3],其中包括这个 [4],其中包括这个 [5],其中包括您的示例。

Kconfig

与 Makefile 一样,这个 Kconfig 文件也不完整。它被其他 Kconfig 包含:这个 kconfig [6] 包括...其中包括...等等...其中包括您的示例。

根据文档,这段kconfig定义了一个帮助文本:

  • 帮助文本:“帮助”或“---帮助---” 这定义了帮助文本。帮助文本的结尾由以下因素确定 缩进级别,这意味着它在第一行结束 比帮助文本第一行更小的缩进。 “---help---”和“help”在行为上没有区别,“---help---”是 用于帮助在视觉上将配置逻辑与内部帮助分开 该文件可以为开发人员提供帮助。

因此,“M”是程序的一个选项,而不是 kconfig 的功能。与Kconfig无关。

文档

您可以在此处找到 kconfig 文档 [7],在此处找到 makefile 文档 [8]。

网址

[1] https://github.com/torvalds/linux/blob/master/Makefile

[2] https://github.com/torvalds/linux/blob/master/drivers/Makefile

[3] https://github.com/torvalds/linux/blob/master/drivers/media/Makefile

[4] https://github.com/torvalds/linux/blob/master/drivers/media/usb/Makefile

[5] https://github.com/torvalds/linux/blob/master/drivers/media/usb/Makefile

[6] https://github.com/torvalds/linux/blob/master/Kconfig

[7] https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt

[8] https://www.kernel.org/doc/Documentation/kbuild/makefiles.txt

© www.soinside.com 2019 - 2024. All rights reserved.