Dieses Problem tritt nur auf UEFI-Systemen mit aktiviertem Secure Boot auf.
Wenn ich versuche, DKMS-Module wie VirtualBox-, Nvidia- oder Broadcom-Treiber zu installieren, werden diese nicht installiert, und ich erhalte Required key not available
, wenn ich versuche, sie modprobe
zu installieren.
VirtualBox beschwert sich, dass vboxdrv
nicht geladen ist.
Der Broadcom wl
-Treiber wird in lspci -k
als Kernelmodul angezeigt, aber nicht verwendet. Sudo modprobe wl
wirft Required key not available
.
Dieses Problem kann auch auftreten, wenn ich einige Kernelmodule aus Git-Quellen installiere.
Dieses Problem kann nach einem Kernel-Update als deaktivierter WLAN-Adapter, schwarzer Bildschirm nach einem Neustart usw. auftreten.
Wie kann ich es reparieren?
Seit Ubuntu-Kernel 4.4.0-20 ist die EFI_SECURE_BOOT_SIG_ENFORCE
-Kernel-Konfiguration aktiviert. Dadurch wird verhindert, dass nicht signierte Module von Drittanbietern geladen werden, wenn UEFI Secure Boot aktiviert ist.
Der einfachste Weg, dieses Problem zu beheben, ist Secure Boot deaktivieren in den UEFI (BIOS) -Einstellungen.
In den meisten Fällen können Sie die UEFI-Einstellungen über das Grub-Menü aufrufen. Drücken Sie ESC Klicken Sie beim Booten auf die Schaltfläche, rufen Sie das Grub-Menü auf und wählen Sie System-Setup. Die Option "Sicherer Start" sollte sich im Abschnitt "Sicherheit" oder "Start" der UEFI befinden.
Sie können direkt in UEFI einsteigen, dies hängt jedoch von Ihrer Hardware ab. Lesen Sie in Ihrem Computerhandbuch nach, wie Sie dorthin gelangen. Es kann sein Del, oder F2 beim booten oder was anderes.
Eine alternative Möglichkeit besteht darin, Secure Boot mit mokutil
zu deaktivieren.
Seit Ubuntu-Kernel-Build 4.4.0-21.37 kann dies durch Ausführen behoben werden
Sudo apt install mokutil
Sudo mokutil --disable-validation
Es muss ein Passwort erstellt werden. Das Passwort sollte mindestens 8 Zeichen lang sein. Nach dem Neustart werden Sie von UEFI gefragt, ob Sie die Sicherheitseinstellungen ändern möchten. Wählen Sie "Ja".
Anschließend werden Sie aufgefordert, das zuvor erstellte Passwort einzugeben. Bei einigen UEFI-Firmware-Versionen wird nicht das vollständige Kennwort abgefragt, sondern die Eingabe einiger Zeichen (z. B. 1., 3. usw.). Seien Sie vorsichtig. Einige Leute verstehen das nicht. Ich habe es auch nicht vom ersten Versuch bekommen ;-)
pdate: Jetzt ist diese Kernelkonfiguration in allen unterstützten Ubuntu-Kerneln aktiviert. Betroffen sind Ubuntu 16.04, 15.10 und 14.04.
Als vorgeschlagen vom Benutzer @zwets, kopiere ich (mit Änderungen) eine Antwort hier:
Seit der Kernel-Version 4.4.0-20 wurde durchgesetzt, dass nicht signierte Kernel-Module mit aktiviertem Secure Boot nicht ausgeführt werden dürfen. Wenn Sie den sicheren Start beibehalten möchten und diese Module auch ausführen möchten, müssen Sie als nächsten logischen Schritt signieren diese Module.
Also lass es uns versuchen.
Erstellen Sie Signaturschlüssel
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/"
Unterschreiben Sie das Modul
Sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /path/to/module
Hinweis 1 : Es können mehrere Dateien für einen einzelnen Treiber/ein einzelnes Modul signiert werden. Daher muss /path/to/module
möglicherweise durch $(modinfo -n <modulename>)
ersetzt werden. z.B $(modinfo -n vboxdrv)
Hinweis 2 : Sudo kmodsign sha512 ./MOK.priv ./MOK.der /path/to/module
ist eine Alternative, wenn sign-file
nicht verfügbar ist.
Registrieren Sie die Schlüssel für Secure Boot
Sudo mokutil --import MOK.der
Geben Sie ein Kennwort für die spätere Verwendung nach dem Neustart ein
Reboot
und befolgen Sie die Anweisungen, um MOK (Machine Owner Key) zu registrieren. Hier ist ein Beispiel mit Bildern. Das System wird noch einmal neu gestartet.
Wenn der Schlüssel ordnungsgemäß registriert wurde, wird er unter Sudo mokutil --list-enrolled
angezeigt.
Bitte lassen Sie mich wissen, ob Ihre Module auf Ubuntu 16.04 so laufen würden (auf Kernel 4.4.0-21, glaube ich).
Ressourcen: Detaillierte Website Artikel für Fedora und buntu-Implementierung der Modulsignatur. (Sie haben daran gearbeitet) ;-)
Zusätzliche Ressource: Ich habe jedes Mal, wenn virtualbox-dkms
aktualisiert wird, ein Bash-Skript für meinen eigenen Gebrauch erstellt und überschreibe damit die signierten Module. Check out my vboxsign
ursprünglich auf GitHub .
Zusätzlicher Hinweis für das (extra-) Sicherheitsbewusste: ;-)
Da der von Ihnen erstellte private Schlüssel (MOK.priv
in diesem Beispiel) von jedem verwendet werden kann, der Zugriff darauf hat, empfiehlt es sich, ihn sicher aufzubewahren. Sie können es chmod
verschlüsseln (gpg
) oder an einem anderen sicheren Ort aufbewahren (r). Oder entfernen Sie als in diesem Kommentar vermerkt die Option -nodes
in Schritt 1. Dadurch wird der Schlüssel mit einer Passphrase verschlüsselt.
Sie können Secure Boot (UEFI) im BIOS mit den folgenden Schritten deaktivieren:
Starten Sie Ihren Computer neu und rufen Sie das BIOS-Menü auf (in meinem Fall drücken Sie F2)
Suchen Sie nach Secure Boot und wechseln Sie zu Legacy
Auf einem ASUS-Motherboard:
Sie können Secure Boot auch deaktivieren, indem Sie Sudo update-secureboot-policy
mit Shim-Signatur ausführen. Diese Wiki-Seite erklärt diese Methode:
- Öffnen Sie ein Terminal (Strg + Alt + T), führen Sie Sudo update-secureboot-policy aus und wählen Sie dann Ja.
- Geben Sie ein temporäres Passwort mit 8 bis 16 Stellen ein. (Zum Beispiel 12345678, wir werden dieses Passwort später verwenden
- Geben Sie dasselbe Passwort zur Bestätigung erneut ein.
- Starten Sie das System neu und drücken Sie eine beliebige Taste, wenn der blaue Bildschirm angezeigt wird (MOK - Verwaltung)
- Wählen Sie Change Secure Boot state
- Geben Sie das in Schritt 2 ausgewählte Passwort ein und drücken Sie die Eingabetaste.
- Wählen Sie Ja, um Secure Boot in Shim-Signed zu deaktivieren.
- Drücken Sie die Eingabetaste, um den gesamten Vorgang abzuschließen.
Sie können Secure Boot immer noch in Shim-Signed wieder aktivieren. Einfach ausführen
Sudo update-secureboot-policy - aktivieren Sie und folgen Sie dann den obigen Schritten