Pourquoi est-ce que je reçois une "clé requise non disponible" lors de l'installation de modules de noyau tiers ou après une mise à niveau du noyau?

55

Ce problème se produit uniquement sur les systèmes UEFI avec Secure Boot activé.

Lorsque j'essaie d'installer des modules DKMS tels que les pilotes VirtualBox, Nvidia ou Broadcom, ils ne s'installent pas et j'obtiens Required key not available lorsque j'essaie de les modprobe .

VirtualBox se plaint que vboxdrv n'est pas chargé.

Le pilote Broadcom wl est affiché dans lspci -k en tant que module du noyau mais n'est pas utilisé. sudo modprobe wl lance Required key not available .

Ce problème peut également se produire lorsque j'installe des modules de noyau à partir de sources git.

Ce problème peut apparaître après une mise à jour du noyau en tant qu’adaptateur sans fil désactivé, écran noir après un redémarrage, etc.

Comment puis-je résoudre ce problème?

    
posée Pilot6 25.04.2016 - 09:48
la source

4 réponses

62

Depuis le noyau Ubuntu 4.4.0-20, la configuration du noyau EFI_SECURE_BOOT_SIG_ENFORCE a été activée. Cela empêche de charger des modules tiers non signés si UEFI Secure Boot est activé.

Le moyen le plus simple de résoudre ce problème consiste à désactiver le démarrage sécurisé dans les paramètres UEFI (BIOS).

Dans la plupart des cas, vous pouvez accéder aux paramètres UEFI en utilisant le menu grub. Appuyez sur le bouton ESC au démarrage, accédez au menu grub et sélectionnez Configuration du système. L'option de démarrage sécurisé doit être dans la section "Sécurité" ou "Démarrage" de l'UEFI.

Vous pouvez accéder directement à UEFI, mais cela dépend de votre matériel. Lisez le manuel de votre ordinateur pour savoir comment y arriver. Ce peut être Del , ou F2 au démarrage, ou autre chose.

Une autre méthode consiste à désactiver le démarrage sécurisé à l’aide de mokutil .

Depuis la construction du noyau Ubuntu 4.4.0-21.37, cela peut être corrigé en exécutant

sudo apt install mokutil
sudo mokutil --disable-validation

Il faudra créer un mot de passe. Le mot de passe doit comporter au moins 8 caractères. Après le redémarrage, UEFI vous demandera si vous souhaitez modifier les paramètres de sécurité. Choisissez "Oui".

Vous devrez ensuite entrer le mot de passe créé précédemment. Certains micrologiciels UEFI ne demandent pas le mot de passe complet, mais en saisissent certains caractères, comme 1st, 3rd, etc. Faites attention. Certaines personnes ne comprennent pas cela. Je ne l'ai pas eu dès la première tentative non plus; -)

Mise à jour : cette configuration du noyau est désormais activée dans tous les noyaux Ubuntu pris en charge. Ubuntu 16.04, 15.10 et 14.04 sont affectés.

    
réponse donnée Pilot6 25.04.2016 - 09:51
la source
23

Comme suggéré par l'utilisateur @zwets, je copie (avec des modifications) une réponse ici:

Depuis la version 4.4.0-20 du noyau, les modules non signés ne sont pas autorisés à être exécutés avec Secure Boot activé. Si vous souhaitez conserver le démarrage sécurisé et également exécuter ces modules, la prochaine étape logique consiste à signer ces modules.

Essayons donc.

  1. Créer des clés de signature

    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/"
    
  2. Signer le module

    sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /path/to/module
    
  3. Enregistrez les clés pour un démarrage sécurisé

    sudo mokutil --import MOK.der
    

    Fournissez un mot de passe pour une utilisation ultérieure après le redémarrage

  4. Reboot et suivez les instructions pour inscrire MOK (clé de propriétaire de la machine). Voici un exemple avec des images. Le système redémarrera une fois de plus.

Faites-moi savoir si vos modules fonctionneraient de cette façon sur Ubuntu 16.04 (sur le noyau 4.4.0-21, je crois).

Ressources: Site Web détaillé article pour Fedora et Implémentation Ubuntu de la signature du module. (ils y ont travaillé) ;-)

Note supplémentaire pour la sécurité (extra) consciente:; -)

Étant donné que la clé privée que vous avez créée ( MOK.priv dans cet exemple) peut être utilisée par quiconque peut y accéder, il est recommandé de la garder sécurisée. Vous pouvez chmod le crypter ( gpg ) ou le stocker ailleurs (r). Ou, en noté dans ce commentaire , supprimez l’option -nodes à l’étape numéro 1. Cela crypte la clé avec une phrase secrète.

    
réponse donnée Majal 09.05.2016 - 17:19
la source
4

Vous pouvez désactiver le démarrage sécurisé (UEFI) dans le BIOS en procédant comme suit:

  1. Redémarrez votre ordinateur et accédez au menu du BIOS (dans mon cas, appuyez sur F2)

  2. Rechercher un démarrage sécurisé et passer à Legacy

Dans une carte mère ASUS:

  • Aller au mode avancé (F7)
  • Allez dans l'option Secure Boot sous la section Boot
  • Modifier "le mode Windows UEFI" avec "Autre système d'exploitation"
  • Enregistrer et redémarrer pour appliquer les paramètres (F10)
réponse donnée Sputnik 28.04.2016 - 18:08
la source
1

Vous pouvez également désactiver le démarrage sécurisé dans shim-signed exécutant sudo update-secureboot-policy . Cette page wiki explique cette méthode:

  
  • Ouvrez un terminal (Ctrl + Alt + T) et exécutez sudo update-secureboot-policy, puis sélectionnez Oui.
  •   
  • Entrez un mot de passe temporaire de 8 à 16 chiffres. (Par exemple, 12345678, nous utiliserons ce mot de passe ultérieurement
  •   
  • Entrez à nouveau le même mot de passe pour confirmer.
  •   
  • Redémarrez le système et appuyez sur une touche lorsque l’écran bleu apparaît (gestion MOK
  •   
  • Sélectionnez Modifier l’état de démarrage sécurisé
  •   
  • Entrez le mot de passe que vous avez sélectionné à l’étape 2 et appuyez sur Entrée.
  •   
  • Sélectionnez Oui pour désactiver le démarrage sécurisé dans shim-signed.
  •   
  • Appuyez sur la touche Entrée pour terminer toute la procédure.
  •   

Vous pouvez toujours activer Secure Boot dans shim-signed à nouveau. Exécute juste

     

sudo update-secureboot-policy --enable   puis suivez les étapes ci-dessus

    
réponse donnée Kent Lin 04.08.2016 - 16:48
la source

Lire d'autres questions sur les étiquettes