如何修复 Debian 11 上 /lib/linux-kbuild 中的脚本:找不到 pahole-flags.sh

如何修复 Debian 11 上 /lib/linux-kbuild 中的脚本:找不到 pahole-flags.sh

我目前正在尝试安装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/scriptsnetmap 期望找到它的位置。

这同样适用于mkmakefile脚本(这里适用于 5.10 系列内核)。

但是,您应该知道mkmakefile构建内核所需的 's 功能已在大约 5.15 内核系列中合并到主内核 Makefile 中(这是差异)并且mkmakefile不再作为单独的脚本存在。因此,如果 netmap 仍然依赖于此,则它将需要自己实现所需的功能。然而,似乎即使在内核版本 5.10 中,也mkmakefile只输出一个两行 Makefile,其中一行只是注释,因此替换mkmakefile.

相关内容