问题标签 [kbuild]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3232 浏览

linux-kernel - 如何定义一个必须至少选择其子选项之一才能使其工作的 Linux 内核 Kconfig 项?

我正在编写一个内核模块,它有两个可以使用的低级选项。这两个选项都可以选择为 M/Y/N,但必须至少选择其中一个,否则模块将不起作用。就像下面这样:

我写如下,但两个子选项都可以取消选择。

如何在 kconfig 中编写这样的配置?

0 投票
2 回答
1854 浏览

linux-kernel - 从 defconfig 获取内核配置

标题说明了一切:我需要.config用于编译内核的文件,但我只有 defconfig 文件。我已经看到了有关如何从前者生产后者的说明,但不是相反。可能吗?

0 投票
2 回答
53619 浏览

linux-kernel - Linux 内核的 `make defconfig` 究竟是做什么的?

我可以使用以下命令为.config基于 ARM 的自定义开发板创建基于指定架构默认值的 Linux 内核文件:

我认为这个命令或多或少地复制./arch/arm/configs/var_som_mx6_android_defconfig./.config. 但是,生成的.config文件并不完全是副本:

我不明白额外的行是从哪里来的,而且我一直发现内核配置、makefile 和构建脚本的内部工作方式很难理解。谁能解释一下这些行.config可能来自哪里?

0 投票
0 回答
34 浏览

embedded - KConfig 混合文件

我目前正在为 ESP32 设备开发一些固件。我在开发过程中到了需要在 Kconfig 文件中编写一些东西的阶段。

我只是在开发一个组件,我有自己的 Kconfig 文件。但是在“make menuconfig”中有一个特定的条目(由团队的一位开发人员创建),我想从我的 kconfig 文件中添加一些条目。有什么办法吗?无论如何要从不同的 kconfig 文件中添加条目吗?某种包括。

干杯!

0 投票
1 回答
193 浏览

linux-kernel - 针对 ARM 的 Linux 内核 4.10.8 的编译错误

我正在尝试为 arm 交叉编译 Linux 内核 4.10.8,但出现此错误:

知道如何解决这个问题吗?我不知道这个模块是用来做什么的,所以我不知道我是否真的需要编译它,但是我在 menuconfig 中找不到禁用这个模块的地方?

0 投票
1 回答
567 浏览

c - Kconfig 和 C 枚举

我有一个这样定义的多项选择菜单:

我想将选择映射到枚举,但 Kconfig 只有三态和字符串类型,所以我不能这样做,因为 AUDIO_OUTPUT_MODE 的值是字符串而不是文字:

直接使用 int 会起作用,但有更清洁的解决方案吗?

0 投票
0 回答
1683 浏览

linux - 通过 autoconf 构建具有单独源代码和构建目录的树外内核模块

给定一个使用 autoconf(配置脚本)提供用户模式应用程序和内核驱动程序的包,其目录结构如下:

./configure --options这在本地配置(运行)时成功配置和构建用户和驱动程序。

然而,配置脚本的一个有用功能是您可以拥有单独的源和构建目录,只需从构建目录运行脚本即可,例如:

这适用于用户应用程序,但我无法在此上下文中构建内核驱动程序。在驱动程序中Makefile.am,我有以下内容,如this answer中所建议:

但这无法编译,因为它期望 Kbuild 或 MakefilesrcM. 省略src确实让它找到了 Kbuild,但它无法找到实际的源文件 ( no rule to make target //path/in/build//driver.o)。

像其他一些答案所暗示的那样使用O=是不正确的,因为这指定了查找内核输出文件(.config等)的路径,而这些文件仍在LINUX_SOURCE_DIR. (因此尝试使用它会导致各种其他丢失文件错误。)

我希望有一个不需要修改任何实际 Kbuild 脚本的解决方案,因为这些不在我的包的控制范围内。

到目前为止,我想出的最佳选择是在调用 Kbuild 之前将所有模块源文件复制/链接到构建目录中,这并不理想。我希望有一个隐藏的设置可以用于此。

0 投票
1 回答
941 浏览

kernel-module - 如何链接其他目录中的文件?

我有一个足够大的项目,可以从按目录分类文件中受益。我正在尝试用它们构建一个内核模块。

文档指出以下内容:

但是,这似乎与我需要的不同。由此产生的是两个独立的.ko文件;每个目录中的一个,每个目录中的目标文件的合并。

这是我的项目(简化):

我认为以这样的方式结束是合理的:

我真正结束的是:

我希望每个目录构建一个模块不是 Kbuild 设计的基本假设。运送几个模块听起来像是一团糟,没有任何收获。

这是我的根Makefile

这是subdir/Makefile

这是foo.c

这是subdir/bar.c

make(在根目录中)吐出以下警告:

我的插入尝试kernel-module.ko被拒绝:

我如何告诉 Kbuild 它subdir/bar.o应该是它自己模块的一部分kernel-module.ko而不是它自己的模块?

0 投票
1 回答
1423 浏览

security - 在 Yocto 中启用/禁用内核配置选项

我有一个名为的配置选项CONFIG_X86_SMAP,我想在我的内核映像中禁用它。问题是我无法确定此选项的设置位置。我可以确认它没有在我的defconfig文件中设置,也没有由任何配置片段“ .cfg”设置。

即使我尝试使用.cfg如下禁用它:

我仍然发现它在我最终生成的 .config 文件中启用。我无法理解如何启用此选项。

注意:此配置选项不依赖于任何其他驱动程序/功能。

0 投票
1 回答
3264 浏览

linux - 当 CONFIG_IKCONFIG 设置为模块 (=m) 时,如何从内核映像文件中提取配置?

如何从内核映像文件中提取内核配置?

内核映像文件类型为:

内核已CONFIG_IKCONFIG启用编译。然而,

返回

注意:我正在尝试在不启动内核的情况下获取配置。