web-dev-qa-db-fra.com

Ubuntu 16.04 noyau 4.4.0-21 ne charge plus les modules nvidia / vboxdrv (clé requise non disponible)

Le dernier noyau pour Ubuntu 16.04 (4.4.0-21) ne charge plus le module nvidia (et 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

Avec 4.4.0-18 cela fonctionne toujours. Qu'est ce qui a changé? Comment puis-je résoudre le problème?

7
user534566

Le bogue du noyau # 1571691 avait la réponse :

Sudo apt-get install mokutil; Sudo mokutil --disable-validation
0
user534566

Il existe un moyen de laisser le démarrage sécurisé activé et d'utiliser des modules de noyau propriétaires tels que NVidia ou VirtualBox. Première application de téléchargement xca:

Sudo apt install xca

Créez ensuite une nouvelle base de données et générez une nouvelle clé. Générez ensuite un certificat de CA à partir de cette clé privée. Exportez la clé privée au format PEM et le certificat public CA au format DER. Importer un certificat CA dans la base de données MOK:

Sudo mokutil --import CAcert.cer

Le programme vous demande un mot de passe pour la base de données MOK. Après le redémarrage, MOKManager sera exécuté avant GRUB. Sélectionnez Enroll keys, sélectionnez le certificat que vous avez ajouté avant et entrez le mot de passe pour confirmation. Ensuite, votre certificat de certification est ajouté à la base de données MOK. Redémarrer.

Recherchez ensuite le programme de fichier de signatures dans le répertoire des scripts des en-têtes du noyau. Pour moi c'est dans:

/usr/src/linux-headers-4.4.0-22-lowlatency/scripts/sign-file

Maintenant, signez tous les modules du noyau avec /lib/modules/4.4.0-22-lowlatency/updates/dkms/. Par exemple:

/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

Après cela, vous pourrez charger le module sans l'erreur Required key not available.

Après avoir installé le nouveau noyau ou la nouvelle version des noyaux de modules à partir du répertoire dkms, vous devez répéter la procédure de signature.

Liens à lire pour clarifier:

https://wiki.ubuntu.com/SecurityTeam/SecureBoot

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-signing-kernel-modules-for-secure-boot.html

4
QkiZ