概括

概括

概括

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

细节

内核软件包(从主程序安装)

  • Linux 标头-5.4.0-42

  • Linux 标头-5.4.0-42-通用

  • Linux-映像-5.4.0-42-通用

  • Linux 模块-5.4.0-42-通用

  • Linux 模块-额外-5.4.0-42-通用

安全启动已禁用

在禁用安全启动的情况下,我使用以下命令加载模块“ashmem”:

sudo modprobe ashmem_linux

此外,在禁用安全启动的情况下,我使用以下命令加载模块“binder”:

sudo modprobe binder_linux

安全启动一切顺利已禁用

安全启动已启用

启用安全启动后,我可以不是使用以下命令加载模块“ashmem”:

sudo modprobe ashmem_linux

尝试这样做后,我得到以下信息:

modprobe: ERROR: could not insert 'ashmem_linux': Operation not permitted

然而,即使启用了安全启动,我使用以下命令仍可毫无问题地加载模块“binder”:

sudo modprobe binder_linux

所以,我很困惑为什么“binder”在启用安全启动的情况下加载,而“ashmem”却加载不是在启用安全启动的情况下加载。

值得一提的是,我在使用安全启动时没有遇到任何其他问题。

问题

  1. 有没有办法在启用安全启动的情况下强制加载“ashmem”?

  2. 在启用安全启动的情况下无法加载“ashmem”是一个功能还是一个错误?

  3. 如果这是一个错误,那么在 Launchpad 上哪里是报告该错误的最佳地点?

附录

针对上述内容,我要补充一点,我在最初的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”现在都可以在启用安全启动的情况下加载,我将这个问题标记为已回答。但是,我注意到有关“binder”模块的另一个错误。对于那些感兴趣的人,我发布了一个与该错误相关的问题这里

答案1

您需要对模块进行签名。看起来可以使用以下方法完成:

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

相关内容