Последнее ядро для 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 это все еще работает. Что изменилось? Как мне решить проблему?
Ошибка ядра # 1571691 имела ответ :
sudo apt-get install mokutil; sudo mokutil --disable-validation
Есть способ оставить безопасную загрузку включенной и использовать проприетарные модули ядра, такие как NVidia или VirtualBox. Сначала загрузите приложение xca:
sudo apt install xca
Затем создайте новую базу данных и сгенерируйте новый ключ. Затем сгенерируйте сертификат CA из этого закрытого ключа. Экспорт закрытого ключа в формат PEM и открытого сертификата CA в формат DER. Импортировать сертификат CA в базу данных MOK:
sudo mokutil --import CAcert.cer
Программа запрашивает пароль для базы данных MOK. После перезагрузки MOKManager будет выполнен раньше GRUB. Выберите Ключи регистрации
, выберите сертификат, который вы добавили ранее, и введите пароль для подтверждения. После этого ваш сертификат CA добавляется в базу данных MOK. Перезагрузитесь.
Затем найдите программу с подписываемым файлом в каталоге сценариев заголовков ядра.Для меня это:
/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
После этого вы сможете загрузить модуль без ошибки Требуемый ключ недоступен
.
После установки нового ядра или новой версии ядер модуля из каталога dkms необходимо повторить процедуру подписания.
Ссылки для чтения для пояснения: