微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不允许使用“depmod”

如何解决不允许使用“depmod”

我正在尝试构建 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 或与之相关的任何内容

解决方法

我在遇到同样的问题后才知道发生了什么。正如我所看到的,技术上可以在错误给你的链接中找到答案,但错误和修复并没有产生很大的相关性。我试图通过授予我的非 root 用户权限以在没有密码的情况下使用 depmod 执行 sudo 来解决此问题。经过反复试验,我发现调用 depmod 的行位于 kernel/scripts/depmod.sh 的第 20 行和第 48 行,我通过在前面添加 sudo 来修改这两行并重新启动我的构建。但是,我得到了一个不同的错误,“不允许使用 sudo”。这真的引起了我的思考。

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

构建已开始限制构建内部可用的外部主机工具。 ……

这让我想到了两种解决问题的方法。第一个可能是最简单的方法是在构建内核的命令之后添加 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 内核生态系统了解不多,我无法知道仅将命令添加到允许的配置中是否会修复它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。