![背景](https://linux22.com/image/1175499/%E8%83%8C%E6%99%AF.png)
背景
在另一个邮政,我报告说:
我在跑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’:没有此文件或目录”),以及我是否应该担心。
问题
- 加载“binder”模块时是否应该创建 /dev/binder?(这个错误应该与我有关吗?)
- 如果在加载“binder”模块时应该创建 /dev/binder,我该如何强制创建 /dev/binder?
- 如果在加载“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 的情况,但我猜测同样的道理也适用于它。考虑到这一点,以下是我自己提出的问题的答案:
- 不,加载“binder”模块时不应创建 /dev/binder。(错误消息不应该让我担心。)
- 没有必要(也可能没有办法)强制创建 /dev/binder。
- 无需在 Launchpad(或其他地方)报告此错误。
如果有人想提供替代(更好)的答案,请随时提出。我会将这个问题保留几天,但如果在接下来的几天内没有看到任何其他答案/评论,我会将其标记为已回答。:)
答案2
不知道为什么/dev/binder
在加载时没有自动创建binder_linux
。但是可以手动创建它(sudo
显然,使用或 root)。
mkdir /dev/binder
mount -t binder binder /dev/binder
我跟着本文这使我走向了成功。