我目前正在尝试安装netmap,需要修改内核。然而,在安装内核头文件后,我注意到在 中/lib/linux-kbuild-5.10/scripts
,一些预期存在的脚本丢失了。这包括pahole-flags.sh
以及mkmakefile
结果我分别收到“未找到”和“没有此类文件”错误。
我发现这最近的错误报告,指出这是稳定版的回归。它还指出,它已通过以下方式修复了以前的版本这犯罪。但是,此提交所做的只是修改 make 文件。
是否有一个简单的修复方法,例如“只需将脚本从 repo xy 复制到此目录中”,或者我是否需要以某种方式重新编译/升级部分内核?我还不太擅长使用 Linux 系统,所以感谢您的帮助。
答案1
您提到的提交修改 Makefile 中用于构建 Debian 内核头包的部分 ( linux-headers-<kernel version>-<package version>_<arch>.deb
)。换句话说,它提交使pahole-flags.sh
脚本被包含到未来内核版本中的适当包中。
由于内核配置和构建过程似乎没有对脚本进行任何更改,因此您可以从适当版本的 Linux 内核源中获取脚本(例如这里适用于 5.10 系列内核)并将其放入/lib/linux-kbuild-5.10/scripts
netmap 期望找到它的位置。
这同样适用于mkmakefile
脚本(这里适用于 5.10 系列内核)。
但是,您应该知道mkmakefile
构建内核所需的 's 功能已在大约 5.15 内核系列中合并到主内核 Makefile 中(这是差异)并且mkmakefile
不再作为单独的脚本存在。因此,如果 netmap 仍然依赖于此,则它将需要自己实现所需的功能。然而,似乎即使在内核版本 5.10 中,也mkmakefile
只输出一个两行 Makefile,其中一行只是注释,因此替换mkmakefile
.