概括
我在 UEFI 系统上运行带有默认内核 5.4.0-42-generic(从 Main 安装)的Ubuntu 20.04.1 。我想在启用安全启动的情况下加载两个内核模块(“ ashmem ”和“ binder ”)。至少对我来说,“binder”在启用安全启动的情况下加载正常,但“ashmem”在启用安全启动的情况下无法加载。 两个模块都在禁用安全启动的情况下加载。
细节
内核包(从 Main 安装)
linux-headers-5.4.0-42
linux-headers-5.4.0-42-generic
linux-image-5.4.0-42-generic
linux-modules-5.4.0-42-generic
linux-modules-extra-5.4.0-42-generic
安全启动已禁用
禁用安全启动后,我可以使用以下命令加载模块“ashmem”:
sudo modprobe ashmem_linux
此外,在禁用安全启动的情况下,我可以使用以下命令加载模块“绑定器”:
sudo modprobe binder_linux
因此,禁用Secure Boot 后一切正常。
启用安全启动
启用安全启动后,我无法使用以下命令加载模块“ashmem”:
sudo modprobe ashmem_linux
尝试这样做时,我得到以下信息:
modprobe: ERROR: could not insert 'ashmem_linux': Operation not permitted
但是,即使启用了安全启动,我仍然可以使用以下命令毫无问题地加载模块“binder”:
sudo modprobe binder_linux
所以,我很困惑为什么“binder”在启用安全启动的情况下加载,但“ashmem”在启用安全启动的情况下不加载。
对于它的价值,我在使用 Secure Boot 时没有遇到任何其他问题。
问题
有没有办法强制“ashmem”在启用安全启动的情况下加载?
启用安全启动后无法加载“ashmem”是功能还是错误?
如果它是一个错误,那么在 Launchpad 上的哪个位置是报告错误的最佳位置?
附录
对于上述内容,我要补充一点,我在Ubuntu 20.04的初始全新安装期间启用了安全启动(并注册了 MOK) 。即便如此,按照Rinzwind提供的出色建议,我在初始安装后运行了以下命令:
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现在为我启用了 Secure Boot,这是我的最终目标。:)
鉴于“ashmem”和“binder”现在都为我加载启用了安全启动,我将此问题标记为已回答。然而,我注意到另一个关于“binder”模块的错误。对于那些感兴趣的人,我在这里发布了一个与该错误相关的问题。
您需要对模块进行签名。看起来可以通过以下方式完成: