Ubuntu 16.04内核4.4.0-21不再加载nvidia / vboxdrv模块(必需密钥不可用)
Ubuntu 16.04(4.4.0-21)的最新内核不再加载nvidia(和vboxdrv)模块。
$ sudo modprobe -v nvidia insmod /lib/modules/4.4.0-21-generic/updates/dkms/nvidia_361.ko modprobe: ERROR: could not insert 'nvidia_361': Required key not available
4.4.0-18它仍然有效。 发生了什么变化? 我该如何解决这个问题?
有一种方法可以启动安全启动并使用NVidia或VirtualBox等专有内核模块。 首先下载xca app:
sudo apt install xca
然后创建新数据库并生成新密钥。 接下来从该私钥生成CA证书。 将私钥导出为PEM格式,将CA公共证书导出为DER格式。 将CA证书导入MOK数据库:
sudo mokutil --import CAcert.cer
程序会要求您输入MOK数据库的密码。 重启后,MOKManager将在GRUB之前执行。 选择“ Enroll keys
,选择之前添加的证书,然后输入密码进行确认。 之后,您的CA证书将添加到MOK数据库中。 重启。
接下来在内核头文件脚本目录中找到sign-file程序。 对我来说,它是:
/usr/src/linux-headers-4.4.0-22-lowlatency/scripts/sign-file
现在在/lib/modules/4.4.0-22-lowlatency/updates/dkms/
签署所有内核模块。 例如:
/usr/src/linux-headers-4.4.0-22-lowlatency/scripts/sign-file sha256 CA.pem CAcert.cer /lib/modules/4.4.0-22-lowlatency/updates/dkms/nvidia_361.ko
之后,您将能够加载模块而不Required key not available
错误。
从dkms目录安装新内核或新版本的模块内核后,您必须重复签名过程。
阅读链接澄清:
内核bug#1571691得到了答案 :
sudo apt-get install mokutil; sudo mokutil --disable-validation