Ubuntu 16.04 Kernel 4.4.0-21 lädt keine nvidia / vboxdrv-Module mehr (Erforderlicher Schlüssel nicht verfügbar)

8

Der neueste Kernel für Ubuntu 16.04 (4.4.0-21) lädt das Modul nvidia (und vboxdrv) nicht mehr.

$ 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

Mit 4.4.0-18 funktioniert es immer noch. Was hat sich verändert? Wie behebe ich das Problem?

user534566
quelle
2
4.4.0-21 hat CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE aktiviert. Ich denke das ist das Problem.
user534566
4
Erstaunlich, dass dies in einer LTS-Version mitten im Zyklus geändert wurde. Was zum Teufel ist der Sinn einer "stabilen" Distribution, wenn Ihre Treiber während eines Routine-Updates nicht mehr arbeiten!
Aleksandr Dubinsky

Antworten:

4

Es gibt eine Möglichkeit, den sicheren Start aktiviert zu lassen und proprietäre Kernelmodule wie NVidia oder VirtualBox zu verwenden. Erste xca App herunterladen:

sudo apt install xca

Erstellen Sie dann eine neue Datenbank und generieren Sie einen neuen Schlüssel. Generieren Sie als Nächstes ein CA-Zertifikat aus diesem privaten Schlüssel. Exportieren Sie den privaten Schlüssel in das PEM-Format und das öffentliche CA-Zertifikat in das DER-Format. CA-Zertifikat in MOK-Datenbank importieren:

sudo mokutil --import CAcert.cer

Das Programm fragt Sie nach dem Passwort für die MOK-Datenbank. Nach dem Neustart wird MOKManager vor GRUB ausgeführt. Wählen Sie Enroll keys, wählen Sie das zuvor hinzugefügte Zertifikat aus und geben Sie das Passwort zur Bestätigung ein. Danach wird Ihr CA-Zertifikat zur MOK-Datenbank hinzugefügt. Starten Sie neu.

Als nächstes suchen Sie das Sign-File-Programm im Skriptverzeichnis der Kernel-Header. Für mich ist es in:

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

Melden Sie nun alle Kernelmodule an /lib/modules/4.4.0-22-lowlatency/updates/dkms/. Zum Beispiel:

/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

Danach können Sie das Modul Required key not availablefehlerfrei laden .

Nach der Installation eines neuen Kernels oder einer neuen Version der Modulkerne aus dem Verzeichnis dkms müssen Sie den Signaturvorgang wiederholen.

Links zum Lesen zur Verdeutlichung:

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

QkiZ
quelle
0

Kernel Bug # 1571691 hatte die Antwort :

sudo apt-get install mokutil; sudo mokutil --disable-validation
user534566
quelle
2
Funktioniert immer noch nicht
QkiZ
@QkiZ werfen Sie einen Blick auf bugs.launchpad.net/ubuntu/+source/linux/+bug/1571691/comments/5. Sie sollten den Failed to request new MokSB stateFehler ignorieren und Ihren Computer neu starten .
Aleksandr Dubinsky
Ich kann mit diesem Problem umgehen. Siehe meine Antwort.
QkiZ
@QkiZ Ja, aber Ihre Antwort beschreibt den langen und komplizierten Weg, der jedes Mal wiederholt werden muss, wenn der Kernel aktualisiert wird. Diese Antwort ist die viel einfachere Abkürzung. Im Moment funktioniert es nicht, aber hoffentlich wird es behoben.
Aleksandr Dubinsky
Etwas komplizierter, aber es bewahrt den sicheren Start (sicherer als bei Ihnen). Es kann per Skript automatisiert werden. Nur das Signieren eines Teils meines Weges wird wiederholt, nachdem die Kernel- oder Modulversion geändert wurde. Sie wählen also: Sicherheit oder einfaches Leben.
QkiZ