问题标签 [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.
cmake - cmake : 指定 linux 内核模块输出构建目录
这是我构建 linux kernle hello world 模块的 cmake。
还有我的 Kbuild:
如何为所有目标文件和相关内容指定输出目录?目前在源目录位置生成构建内容。而且我不想混合源文件和 obj 文件。有任何想法吗?
gcc - Makefile 中的 ccflag 选项
我想编译我的 c 代码(在内核中),它需要包含来自另一个目录的一些头文件。
我不想在 c 文件中指定头文件的完整路径,而是想在 Makefile 中指定包含路径。
CONFIG_FEATURE_X
启用配置选项后,我的 c 文件将被编译。我在 Makefile 中写了以下内容:
当
CONFIG_FEATURE_X
使用make menuconfig在.config中启用(Y)时,它工作正常。但是当
CONFIG_FEATURE_X
在 .config 中作为模块 (m) 启用时,这不包括指定路径中的头文件,并给出文件未找到错误。
我怎样才能做到这一点?
u-boot - U-boot 2018.09 : 获取 SPL、U-boot 的已编译文件和配置选项列表
我正在尝试通过浏览源代码来研究专门针对 BeagleBone Black(am335x_boneblack_defconfig) 的 SPL 和 U-boot 的执行流程。
如何生成编译成 U-boot 正确(u-boot.img)和 SPL(MLO)二进制文件的源文件列表?如果我得到一个为 SPL 和 U-boot 分别编译的文件列表,那么我可以使用 cscope 浏览代码。( make cscope 只生成为 U-boot 正确编译的文件列表,它包括许多未编译成二进制文件的文件)
如何生成在 U-boot 和 SPL 二进制文件的构建过程中使用的配置宏(CONFIG_*)?是 include/generated/autoconf.h 包含用于 U-boot 的宏。
u-boot.cfg 和 spl/u-boot.cfg 包含什么?这些是分别用于构建 U-boot 和 SPL 的配置宏吗?
config - u-boot如何生成dot config文件
在 u-boot 树下,之后make my_defconfig
,.config
生成了 a。对比defconfig和dot配置文件,好像里面的所有配置项my_defconfig
都包含在.config
里面,而.config
. 我想知道那些额外的配置项来自哪里?
非常感谢。
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
如果没有人提供更好的解决方案来合并文件。
makefile - 如何在 makefile 中为内核模块构建目标设置预处理器指令?
我有一个内核模块,我想用 , , 中的任何一个来构建make
,make debug
其中make test
每个模块之间的唯一区别是-D
编译器的一个选项。这与在 Linux 2.6 驱动程序模块 makefile 中创建调试目标本质上是相同的问题,但是在尝试了其他一些事情之后,这个问题被标记为已回答,我的问题仍然存在。
我已经EXTRA_CFLAGS
在我的 makefile 中尝试了不推荐使用的选项:
以及较新的ccflags-y
选项(即使在目标之外似乎也不起作用debug
):
并CFLAGS
在目标之前设置debug
:
但我发现完成我想要的唯一方法是使用单独的构建脚本:
构建内核模块时有没有办法直接在makefile中执行此操作?
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
选项已设置。
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 上的导出符号与上面的“镜像”符号匹配,我想我确实为路由器编译模块不正确。也许一些联系问题?
python - 从 Kbuild 文件调用 Python 脚本
如何从 Kbuild 文件调用脚本文件夹中存在的 python 脚本?有一段代码可以从 Kbuild 调用 shell 脚本,如下所示:
同样,我想调用一个以三个参数作为输入的 python 脚本。
u-boot - U-boot 中的 u-boot.cfg 文件
我正在了解 U-boot 构建,似乎 Kconfig 中选定的配置选项已在 u-boot.cfg 文件中更新。
你能指导了解它是如何创建的以及这个文件的用法(谁将使用这个文件)。