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

makefile - 在 Kernel makefile $(call cmd, tags) 中,这里的 cmd 指的是什么?

在内核 Makefile 中,我找到了如下代码:

另外,我在哪里可以找到宏或功能?

0 投票
1 回答
658 浏览

c - Kconfig、宏和未定义的宏警告

我正在向 Linux 内核中的 Kconfig 添加多项选择样式配置。根据用户的选择,它定义了一个宏。配置完成后,内核驱动程序源代码具有#ifdef 块,它在其中检查并使用宏进行编译。

在 Kconfig 中看起来像这样:

并在驱动程序源代码中:

这个感觉还行。但是,问题是在编译时我收到警告:

这些是我在内核编译期间看到的唯一警告。所以这一定意味着我做错了。任何指针将不胜感激!

0 投票
0 回答
2084 浏览

linux - 添加 Linux 模块:无法执行“make menuconfig”

我正在尝试安装 Linux 外部内核模块。我已经解压了完整的源代码压缩包:有源代码 (.c)、Kconfig 和 Makefile。

在向 .config 添加选项时make menuconfig,我得到了

make: *** 没有规则来制作目标“menuconfig”。停止。

(我试过make menuconfig/usr/src/Linux-header-3.xxxx,它确实有效;菜单弹出!)

我对这种make menuconfig机制有点困惑。我是否必须将我的 Kconfig 与 Linux 顶级 Makefile(Kconfig?)链接或添加另一个 Kbuild 文件?

下面列出了几个文件:

配置:

生成文件:

0 投票
1 回答
1035 浏览

linux - linux kconfig 命令行界面

我的目标是使用命令行更改 kbuild 配置,而不会弄乱依赖关系。

为此,我通过编辑我的默认设置创建了一个“参考”.config配置make menuconfig。我改变的“唯一”事情是从 64 位更改为 32 位。

现在我使用了我的原始配置并应用了以下命令(来自 linux 内核根目录)

的内容32bit.conf很简单CONFIG_64=n

在区分这两个.configs frommake menuconfig和我的命令后,我发现几乎每个更改 frommake menuconfig也存在于另一个文件中。但只有几乎每一个变化。

这些差异来自哪里,是否有.config通过命令行操作 kbuild 的官方方法?

0 投票
2 回答
52574 浏览

linux-kernel - 如何从 .config 创建 defconfig 文件?

我已经完成make menuconfig了一块板defconfig并修改了一些配置。当我选择保存时,.config在内核顶层目录中创建了一个新的。

我想defconfig为这个创建的.config文件创建新的。

我可以将其复制.config为新的defconfig并复制到arch/arm/configs/吗?

0 投票
1 回答
44 浏览

linux - Linux模块makefile编译错误

我有以下生成文件:

调用 make 时出现以下错误:

有人知道为什么吗?我是新来的。谢谢。

0 投票
1 回答
1113 浏览

buildroot - 如何使 buildroot 包互斥?

我正在实现一个 buildroot 包 foo,它不能与特定的其他包 bar 一起包含。depends on我正在尝试通过在各自的文件中编写语句来定义包互斥Config.in

foo/Config.in

bar/Config.in

这导致make menuconfig行为异常并给出以下错误消息:

声明这种互斥依赖关系的正确方法是什么?

0 投票
1 回答
11204 浏览

c - kbuild 实际上是如何工作的?

当我在开发一个 linux 驱动程序时,我已经阅读了如何通过这个文档编写 linux kbuild makefile

我知道 kbuild 系统使用诸如 obj-y obj-m 之类的 makefile 变量来确定要构建什么以及如何构建。

但是我很困惑的是kbuild系统在哪里真正执行构建过程。总之,如果我有obj-m = a.o,那么kbuild系统在哪里解析obj-m和执行gcc a.c

0 投票
1 回答
1463 浏览

linux-kernel - 为外部内核模块正确设置 makefile

我正在编写一个字符驱动程序以位于源代码树中 ahci 的修改版本之上。我基本上有这样的东西:

现在,char_interface 需要来自 mod_ahci 的符号。EXPORT_SYMBOL()我对需要导出的符号有适当的宏使用。但是,我无法让 makefile 正确地从 char_interface 获取 mod_ahci 中的头文件。我的顶级 Makefile

char_interface 的生成文件(因为其他构建很好)

我在内核文档中引用了各种文本文件。例如,我现在指的是 .../Documentation/kbuild/makefiles.txt 以及 .../Documentation/kbuild/modules.txt。每当我构建时,我都会得到/home/captaink/devel/kmodtests/char_interface/char_interface.c:2:22: error: mod_ahci.h: No such file or directory. 目录中有一个名为mod_ahci.h的文件../mod_ahci。我ccflags-y在 char 驱动程序的 makefile 中使用了什么错误?

谢谢

0 投票
0 回答
455 浏览

makefile - make config 命令是如何工作的

为了了解 make 构建环境的配置工具,我想询问以下配置参数:

请问他们每个人做什么或意味着什么?我msm8974_sec_hlte_spr_defconfig在我的构建环境中搜索并在此处发布了结果,然后我查找了与我的手机相关的配置,我得到了大约 20 个左右。但我想知道以下是什么?

也就是说,如果我选择它们,它们会从我当前的配置中添加或删除什么。我知道调试是为了调试,我不确定 eng 的目的是什么。我想看看我能找到哪些额外的细节。

另外为什么 VARIANT_DEFCONFIG 参数有两个参数?我的意思是在变量之后有两个值指定如下:msm8974_sec_hlte_spr_defconfig msm8974_sec_defconfig这是否意味着我可以添加任意数量的值?请问这个的语法是什么?