问题标签 [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 回答
4754 浏览

cmake - cmake : 指定 linux 内核模块输出构建目录

这是我构建 linux kernle hello world 模块的 cmake。

还有我的 Kbuild:

如何为所有目标文件和相关内容指定输出目录?目前在源目录位置生成构建内容。而且我不想混合源文件和 obj 文件。有任何想法吗?

0 投票
2 回答
4649 浏览

gcc - Makefile 中的 ccflag 选项

我想编译我的 c 代码(在内核中),它需要包含来自另一个目录的一些头文件。

我不想在 c 文件中指定头文件的完整路径,而是想在 Makefile 中指定包含路径。

CONFIG_FEATURE_X启用配置选项后,我的 c 文件将被编译。我在 Makefile 中写了以下内容:

  1. CONFIG_FEATURE_X 使用make menuconfig在.config中启用(Y)时,它工作正常。

  2. 但是当CONFIG_FEATURE_X 在 .config 中作为模块 (m) 启用时,这不包括指定路径中的头文件,并给出文件未找到错误。

我怎样才能做到这一点?

0 投票
1 回答
293 浏览

u-boot - U-boot 2018.09 : 获取 SPL、U-boot 的已编译文件和配置选项列表

我正在尝试通过浏览源代码来研究专门针对 BeagleBone Black(am335x_boneblack_defconfig) 的 SPL 和 U-boot 的执行流程。

  1. 如何生成编译成 U-boot 正确(u-boot.img)和 SPL(MLO)二进制文件的源文件列表?如果我得到一个为 SPL 和 U-boot 分别编译的文件列表,那么我可以使用 cscope 浏览代码。( make cscope 只生成为 U-boot 正确编译的文件列表,它包括许多未编译成二进制文件的文件)

  2. 如何生成在 U-boot 和 SPL 二进制文件的构建过程中使用的配置宏(CONFIG_*)?是 include/generated/autoconf.h 包含用于 U-boot 的宏。

  3. u-boot.cfg 和 spl/u-boot.cfg 包含什么?这些是分别用于构建 U-boot 和 SPL 的配置宏吗?

0 投票
1 回答
406 浏览

config - u-boot如何生成dot config文件

在 u-boot 树下,之后make my_defconfig.config生成了 a。对比defconfig和dot配置文件,好像里面的所有配置项my_defconfig都包含在.config里面,而.config. 我想知道那些额外的配置项来自哪里?

非常感谢。

0 投票
1 回答
2538 浏览

config - U-Boot defconfig 常用配置

我正在向 Yocto 添加一个新板时,我注意到很多配置可以从以前的硬件版本继承。

所以我想知道是否有可能common_defconfig<new_board>_defconfig不复制所有配置文件的情况下包含 a 。dts与文件发生的情况类似。

例如

common_defconfig:

board_hw1_defconfig:

board_hw2_defconfig:

更新 1

正如@Xypron 指出的那样,正如我所怀疑的那样,没有办法_defconfig在另一个中包含不同的。

我还尝试创建一个泛型Kconfig.defconfig来选择一些配置。问题是,例如,ARM被定义为config内部的choice,所以不能从Kconf文件内部选择。

我最终将创建一个do_configure_append任务,我将_defconfig通过使用scripts/kconfig/merge_config.sh如果没有人提供更好的解决方案来合并文件。

0 投票
1 回答
1177 浏览

makefile - 如何在 makefile 中为内核模块构建目标设置预处理器指令?

我有一个内核模块,我想用 , , 中的任何一个来构建makemake debug其中make test每个模块之间的唯一区别是-D编译器的一个选项。这与在 Linux 2.6 驱动程序模块 makefile 中创建调试目标本质上是相同的问题,但是在尝试了其他一些事情之后,这个问题被标记为已回答,我的问题仍然存在。

我已经EXTRA_CFLAGS在我的 makefile 中尝试了不推荐使用的选项:

以及较新的ccflags-y选项(即使在目标之外似乎也不起作用debug):

CFLAGS在目标之前设置debug

但我发现完成我想要的唯一方法是使用单独的构建脚本:

构建内核模块时有没有办法直接在makefile中执行此操作?

0 投票
0 回答
453 浏览

buildroot - 内核配置片段不适用

我正在尝试将 linux 内核配置片段文件 ( linux-1024MB-frags.config) 添加到我的构建中。在我设置的片段文件中,CONFIG_HIGHMEM=y.

在我启用的 buildroot .config 中,

BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_MYPATH)/board/common/linux-1024MB-frags.config"

当我这样做时,linux-dirclean && linux-configure我看到以下输出,

检查新的 .config 文件显示该文件CONFIG_HIGHMEM仍未设置。

如果我CONFIG_HIGHMEM在我用于内核的主 defconfig 中进行设置(由 定义的那个BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)并重复 make 步骤,我会看到该CONFIG_HIGHMEM选项已设置。

0 投票
0 回答
583 浏览

linux-kernel - 未知符号 cfg80211_connect_result 内核 4.4.169

我正在尝试使用 openwrt 交叉编译工具链为 Turris Omnia 路由器构建内核模块rtl8192eu 。一切看起来都很好,只是如果我设置了模块就无法插入EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211。我需要那个选项,否则我无法控制 wifi 加密狗。但是模块本身在没有启用该标志的情况下加载并识别加密狗。

CONFIG_IOCTL_CFG80211如果启用该标志,则insmod失败并显示

但是据我所知,cfg80211导出“镜像”符号:

由于该模块可以从相同的来源在我的 PC 上编译和工作而没有问题,并且 PC 上的导出符号与上面的“镜像”符号匹配,我想我确实为路由器编译模块不正确。也许一些联系问题?

0 投票
0 回答
53 浏览

python - 从 Kbuild 文件调用 Python 脚本

如何从 Kbuild 文件调用脚本文件夹中存在的 python 脚本?有一段代码可以从 Kbuild 调用 shell 脚本,如下所示:

同样,我想调用一个以三个参数作为输入的 python 脚本。

0 投票
2 回答
1382 浏览

u-boot - U-boot 中的 u-boot.cfg 文件

我正在了解 U-boot 构建,似乎 Kconfig 中选定的配置选项已在 u-boot.cfg 文件中更新。

你能指导了解它是如何创建的以及这个文件的用法(谁将使用这个文件)。