背景

背景

背景

在另一个邮政,我报告说:

我在跑Ubuntu 20.04.1使用默认内核 5.4.0-42-通用(从 Main 安装)在 UEFI 系统上。我想加载两个内核模块(“阿什门“ 和 ”粘合剂”)。至少对我来说,“binder”在启用安全启动的情况下加载得很好,但“ashmem”加载得不好不是在启用安全启动的情况下加载。两个都在禁用安全启动的情况下加载模块。

针对上述内容,我要补充一点,我在最初的Ubuntu 20.04 的全新安装。即便如此,遵循出色的建议由林兹温德,我运行了以下命令初始安装:

sudo kmodsign sha512 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der /lib/modules/`uname -r`/kernel/drivers/staging/android/ashmem_linux.ko

运行上述程序后,我重新运行:

sudo modprobe ashmem_linux

sudo modprobe binder_linux

lsmod | grep -e ashmem_linux -e binder_linux

成功!“ashmem”和“binder”均已加载!谢谢林兹温德!!

更重要的是,Anbox现在就开始启用安全启动,这是我的最终目标。:)

错误信息

尽管“ashmem”和“binder”现在都可以加载,并且尽管Anbox现在对我来说已经启动(并且似乎正常工作),现在启用了安全启动,我仍然运行以下命令:

ls -1 /dev/{ashmem,binder}

我得到了以下信息:

ls: cannot access '/dev/binder': No such file or directory
/dev/ashmem

现在,我仍然很好奇为什么我收到有关“binder”模块的上述错误(“无法访问‘/dev/binder’:没有此文件或目录”),以及我是否应该担心。

问题

  1. 加载“binder”模块时是否应该创建 /dev/binder?(这个错误应该与我有关吗?)
  2. 如果在加载“binder”模块时应该创建 /dev/binder,我该如何强制创建 /dev/binder?
  3. 如果在加载“binder”模块时应该创建 /dev/binder(即如果我发现了错误),那么我应该在 Launchpad 上的哪里报告错误?

重申一下,根据 lsmod,ashmem 和 bind 都已加载。此外,Anbox启用安全启动后,现在对我来说似乎工作正常。我在这里发帖是为了 (a) 满足自己的好奇心,(b) 为其他人记录此事,以及 (c) 确定是否应提交有关 Binder 的错误报告(以及在必要时提交到哪里)。

答案1

回顾Anbox 的安装页面更仔细地观察后,我注意到了以下情况:

在 Ubuntu 19.10 中,binder 驱动程序在加载时不会创建 /dev/binder。这是故意的。相反,它提供了对 bindfs 的支持(请参阅https://brauner.github.io/2019/01/09/android-binderfs.html)自 PR anbox/anbox#1309 以来

虽然上面没有具体提到 Ubuntu 20.04 的情况,但我猜测同样的道理也适用于它。考虑到这一点,以下是我自己提出的问题的答案:

  1. 不,加载“binder”模块时不应创建 /dev/binder。(错误消息不应该让我担心。)
  2. 没有必要(也可能没有办法)强制创建 /dev/binder。
  3. 无需在 Launchpad(或其他地方)报告此错误。

如果有人想提供替代(更好)的答案,请随时提出。我会将这个问题保留几天,但如果在接下来的几天内没有看到任何其他答案/评论,我会将其标记为已回答。:)

答案2

不知道为什么/dev/binder在加载时没有自动创建binder_linux。但是可以手动创建它(sudo显然,使用或 root)。

mkdir /dev/binder
mount -t binder binder /dev/binder

我跟着本文这使我走向了成功。

相关内容