Wie man einen vorab veröffentlichten Linux-Kernel mit SecureBoot (Fedora 26) unterstützt

593
Jason O'Neil

Ich verwende Fedora 26, aber um auszusetzen und weiterarbeiten zu können, muss ich einen Rawhide-Kernel (4.13.rc-1 oder höher) verwenden ( siehe Kernel-Problem ).

Ich habe den Rawhide-Kernel (4.13.rc-4) mit diesen Anweisungen erfolgreich installiert . Diese Kernel funktionieren leider nicht nahtlos, wenn SecureBoot deaktiviert ist.

Leider kann ich SecureBoot aufgrund eines BIOS-Fehlers nicht deaktivieren ( siehe Dell-Forum ).

Wenn ich versuche zu booten, sagt der Bootloader ungefähr:

... hat eine ungültige Signatur. Sie müssen zuerst den Kernel laden.

Wie kann ich einen Rawhide / Pre-Release-Kernel mit aktiviertem SecureBoot verwenden?

0
Wenn Sie weitere Hintergrundinformationen zu meiner Situation wünschen, habe ich sie alle dokumentiert [hier] (https://jasono.co/2017/08/13/tricks-i-needed-to-install-fedora-26-on- a-dell-xps-13-9365-2-in-1 /) Jason O'Neil vor 7 Jahren 0
Dies beantwortet die Frage nicht, aber Sie sollten das Fedora-Kernel-Team fragen, ob sie bereit sind, den Fix zurückzuschlagen. mattdm vor 7 Jahren 0
Danke für den Vorschlag (und die Bearbeitung!) @Mattdm. Irgendwelche Ideen, wie man am besten eine Anfrage an das Fedora-Kernel-Team stellt? IRC / Mailing-Liste usw. Ich bin neu in der Fedora-Community und lerne immer noch, wie Sie am besten Kontakt aufnehmen können Jason O'Neil vor 7 Jahren 0
Ich würde mit Bugzilla beginnen, und wenn dies nicht bemerkt wird (es gibt viele Fehler!), Post an die [Fedora-Kernel-Mailingliste] (https://lists.fedoraproject.org/admin/) listen / kernel.lists.fedoraproject.org /). mattdm vor 7 Jahren 0

2 Antworten auf die Frage

2
Jason O'Neil

Diese Frage wurde auf der Q & A-Seite von Fedora beantwortet:

https://ask.fedoraproject.org/de/question/109564/how-to-get-rawhide-kernel-to-work-with-secureboot-in-f26/?answer=109840#post-id-109840

Grundsätzlich gilt:

  • Führen Sie als root mokutil --disable-validationein Passwort aus.
  • Reboot, und wenn Grub geladen wird, werden Sie gefragt, ob Sie das MOK-Programm ausführen möchten. Ich musste innerhalb von 10 Sekunden eine Taste drücken, um sicherzugehen, dass ich das Gerät eingegeben hatte.
  • Sobald ich das Dienstprogramm gewählt habe, wähle ich "MOK config ändern", gab das Passwort ein und entschied mich, SecureBoot zu deaktivieren. Beachten Sie, dass das BIOS SecureBoot nicht deaktiviert wurde. GRUB kann nur einen nicht signierten Kernel laden. (GRUB ist immer noch unterschrieben, denke ich).
1
Rod Smith

Mir ist klar, dass Sie eine Lösung gefunden haben, bei der Secure Boot über Shim / deaktiviert wird mokutil. Es gibt jedoch einen anderen Weg: Sie können den Kernel selbst signieren.

Im großen und ganzen ist das Verfahren:

  1. Generieren Sie Ihren eigenen sicheren Startschlüssel. Sie würden das mit dem opensslProgramm machen. Sie müssen den öffentlichen Schlüssel DER-Datei auf Ihre EFI-Systempartition (ESP) kopieren, auf der normalerweise gemountet wird /boot/efi.
  2. Unterschreiben Sie Ihre Kernel-Datei. Ich benutze ein Werkzeug, das dazu aufgerufen wird sbsign. IIRC, Fedora bevorzugt ein anderes Programm, dessen letzte Überprüfung komplexer war. Sie müssen entweder den aktuellen Kernel umbenennen und Ihre signierte Version an seine Stelle setzen oder einen neuen GRUB-Eintrag für Ihren neuen Kernel erstellen.
  3. Starten Sie das EFI neu und starten Sie MokManager. Einige Bootloader, wie z. B. mein eigener REIFInd, bieten eine Möglichkeit, den MokManager manuell einzugeben. Wenn dies nicht der Fall ist, müssen Sie möglicherweise durch einige Reifen springen, damit es funktioniert. Sobald Sie sich in MokManager befinden, müssen Sie die DER-Datei suchen, die Sie in das ESP kopiert haben, und diese Ihrer MOK-Liste hinzufügen.
  4. Wenn Sie jetzt einen Neustart durchführen, sollten Sie in der Lage sein, Ihren neu signierten Kernel auch bei aktiviertem Secure Boot zu starten.

Dieses Verfahren wird auf dieser Seite ausführlicher behandelt . Es ist langwierig und lohnt sich vielleicht nicht im Vergleich zum Deaktivieren von Secure Boot - aber dann vielleicht auch. Sie müssen abwägen, ob Sie durch diese Reifen springen möchten, um bei aktivem Secure Boot weiterhin booten zu können.

Beachten Sie außerdem, dass bei der Installation von rEFInd möglicherweise ein Satz von Secure Boot-Schlüsseln generiert und als gespeichert wird /etc/refind.d/keys/refind_local.*. (Das refind-installSkript führt dies aus, wenn die erforderlichen Dienstprogramme verfügbar sind, tut dies jedoch nicht, wenn sie nicht verfügbar sind.) Wenn Sie rEFInd installiert haben, ist Schritt 1 möglicherweise bereits ausgeführt. Sie können dann den lokalen Schlüssel rEFInd verwenden, um Ihren Kernel zu signieren.

Es gibt auch eine Variante dieses Verfahrens. Mit den neuesten Versionen von Shim und MokManager können Sie den Hash einer Binärdatei registrieren, um ihn zu authentifizieren. Dies funktioniert auch bei nicht signierten Binärdateien. Daher können Sie den Hash Ihres Kernels registrieren, damit er booten kann. Das Problem dabei ist, dass Sie den Hash jedes nicht signierten Kernels registrieren müssen, den Sie starten möchten. Dies ist möglicherweise keine große Sache, wenn Sie nur einen Kernel haben und nicht vorhaben, ihn zu aktualisieren. Wenn Sie jedoch den Kernel alle paar Wochen aktualisieren, werden Sie für immer neue Hashes registrieren. Dies ist sowohl umständlich als auch mit zunehmendem NVRAM-Speicherplatz verbunden. Daher ist dieser Ansatz in einigen Fällen etwas einfacher, in anderen jedoch viel schlechter.

Das ist wirklich beeindruckend - und war die Antwort, die ich gehofft hatte, konnte aber keine klaren Anweisungen bekommen. Danke, dass Sie sich die Zeit genommen haben, es zu dokumentieren! Leider habe ich den Laptop, mit dem ich dies versucht habe, aufgegeben, daher kann ich ihn nicht wirklich ausprobieren. Aber ich schätze es trotzdem! Jason O'Neil vor 7 Jahren 0