"depmod" 不允许使用

"depmod" is not allowed to be used

我正在尝试构建 android-x86 https://www.android-x86.org/source.html 科q-x86 使用 ubuntu 20。 我按照说明安装了页面上提到的所有依赖项。但我面临以下错误。我不知道如何处理它。 Google 搜索对我一点帮助都没有。

DEPMOD  4.19.175-android-x86-gad005d7cff5c
"depmod" is not allowed to be used. See https://android.googlesource.com/platform/build/+/master/Changes.md#PATH_Tools for more information.
make[1]: *** [/home/nadir/androidx86/kernel/Makefile:1404: _modinst_post] Error 1
make[1]: Leaving directory '/home/nadir/androidx86/out/target/product/x86/obj/kernel'
make: *** [Makefile:146: sub-make] Error 2
make: Leaving directory '/home/nadir/androidx86/kernel'
FAILED: [W][2021-05-16T08:15:17-0400][535663] void cmdline::logParams(nsjconf_t *)():250 Process will be UID/EUID=0 in the global user namespace, and will have user root-level access to files
[W][2021-05-16T08:15:17-0400][535663] void cmdline::logParams(nsjconf_t *)():260 Process will be GID/EGID=0 in the global user namespace, and will have group root-level access to files
08:41:17 ninja failed with: exit status 1

如何处理,因为错误中提到的 URL 在这种情况下没有帮助。在该页面上,甚至没有提到一次 depmode 或任何与之相关的内容。

在我遇到同样的问题后,我弄清楚了发生了什么。正如我所见,技术上可以在错误给你的 link 中找到答案,但错误和修复并没有太多的相关性。我试图通过授予我的非根用户权限在没有密码的情况下使用 sudo 执行 depmod 来解决此问题。经过一些尝试和错误后,我发现调用 depmod 的行位于 kernel/scripts/depmod.sh 的第 20 行和第 48 行,我通过在前面添加 sudo 来修改这两行并重新启动我的构建。然而,我得到了一个不同的错误,“sudo is not allowed to be used”。这真的让我想到了。

所以我检查了 link 他们提供的 AOSP 源代码。在“PATH 工具”部分,它指出:

The build has started restricting the external host tools usable inside the build. …

这使我想到了两种解决问题的方法。第一个可能是最简单的方法是在构建内核的命令后添加 TEMPORARY_DISABLE_PATH_RESTRICTIONS=true。正如您可能猜到的那样,这将禁用不允许 depmod 命令的限制。另一种选择是打开文件 build/soong/ui/build/paths/config.go 并像这样添加行 "depmod": Allowed,

“date”:     Allowed,
“dd”:       Allowed,
“depmod”:   Allowed,
“diff”:     Allowed,
“egrep”:    Allowed,

这两种方法都允许我按预期构建内核。但是,这只是针对某些我无法确定为 Ubuntu 问题或 Android x86 开发人员疏忽的问题的解决方法。可能需要提出补丁,但由于我对 Android 内核生态系统的了解不多,所以我无法知道仅将命令添加到允许的配置是否会修复它。