linux - 编译 bitbake 配方时错误的标题
问题描述
介绍
我得到了一个用 bitbake 构建的 Linux,它有一个启动一些容器的应用程序。每次我启动这个应用程序时,“dmesg”都会告诉我,dm-ioctl.h(4.35(内核)到 4.39(应用程序)的版本不匹配。
我使用 64 位内核(4.9)为 Raspberrypi 构建 Linux。如果我进入启动容器的模块的 .bb 配方,我会看到它抓取了头文件 frp,即另一个 dm-ioctl.h 所在的 recipe-sysroot。该应用程序非常小,可以通过 cmake 构建。
这是食谱:
DESCRIPTION = "Container management utility"
LICENSE = "CLOSED"
PACKAGES = "${PN} ${PN}-dbg"
DEPENDS = "util-linux openssl rapidjson virtual/kernel"
do_compile[depends] += "virtual/kernel:do_shared_workdir"
SRC_URI = " <files to include>"
S ="${WORKDIR}"
IMAGE_DEPLOY_DIR ?= "${@d.getVar('IMGDEPLOYDIR', False) o d.getVar('DEPLOY_DIR_IMAGE',False)}"
inherit pkgconfig cmake
sbindir = "/sbin"
bindir = "${INSTALLP}"
# Files to be packaged
FILES_${PN} = "${sbindir}/container_start"
FILES_${PN}-dbg = "${sbindir}/.debug /usr"
我已经尝试在这个问题的帮助下修改这个模块的 .bb 配方: 如何编写需要内核源头文件的 BitBake 驱动程序配方?
但它总是保持不变,如果我去 tmp/work/aarch64-poky-linux/ 我可以看到,它在 recipe-sysroot 文件夹中的 usr/include 中有错误的标题。
问题
是否可以更改 recipe-sysroot 以便它获取我的内核使用的相同头文件并用它们编译我的模块,而不是“错误的”
我如何从包含此错误标头的位置获取源代码(它必须来自较新的内核标头,但我无法弄清楚这个标头的位置)
提前感谢任何对我的问题有某种答案的人!
解决方案
推荐阅读
- objective-c - 如何获得动态 NSMenu 以使用 Mojave 暗模式?
- bash - 将提交的文件拆分并推送到两个不同的分支
- java - 与没有截止点的幼稚方法相比,如何使用 Strassen 算法获得更好的性能?
- javascript - 为什么滚动到部分不起作用?为什么滚动到向上滚动的部分?
- php - 如何返回 Traversable 的实例以满足以下断言代码?
- javascript - 在javascript中创建文件时获取大小0
- c - 为什么很多 BST 函数返回根而不使用双指针?
- excel - 如何在不将公式更改为值的情况下隐藏公式输出为 0 的列
- python - 预期的 str、bytes 或 os.PathLike 对象,而不是 dict:TypeError
- php - 如何使用 foreachloop 将多个复选框表单插入数据库