Ten problem występuje tylko w systemach UEFI z włączonym Bezpiecznym uruchomieniem.
Kiedy próbuję zainstalować moduły DKMS, takie jak VirtualBox, Nvidia lub sterowniki Broadcom, nie instalują się one i Required key not available
pojawia się, gdy próbuję modprobe
je zainstalować .
VirtualBox narzeka, że vboxdrv
nie jest załadowany.
Sterownik Broadcom wl
jest pokazany lspci -k
jako moduł jądra, ale nie jest używany. sudo modprobe wl
rzuca Required key not available
.
Ten problem może również wystąpić, gdy instaluję niektóre moduły jądra ze źródeł git.
Ten problem może pojawić się po aktualizacji jądra jako wyłączony adapter bezprzewodowy, czarny ekran po ponownym uruchomieniu itp.
Jak mogę to naprawić?
kernel
uefi
secure-boot
dkms
Pilot 6
źródło
źródło
Odpowiedzi:
Od jądra Ubuntu 4.4.0-20
EFI_SECURE_BOOT_SIG_ENFORCE
konfiguracja jądra została włączona. Zapobiega to ładowaniu niepodpisanych modułów stron trzecich, jeśli włączony jest Bezpieczny rozruch UEFI.Najłatwiejszym sposobem rozwiązania tego problemu jest wyłączenie Bezpiecznego rozruchu w ustawieniach UEFI (BIOS).
W większości przypadków możesz przejść do ustawień UEFI za pomocą menu grub. Naciśnij ESCprzycisk podczas uruchamiania, przejdź do menu grub i wybierz Ustawienia systemu. Opcja Bezpiecznego rozruchu powinna znajdować się w sekcji „Zabezpieczenia” lub „Uruchomienie” interfejsu UEFI.
Możesz dostać się bezpośrednio do UEFI, ale zależy to od twojego sprzętu. Przeczytaj instrukcję obsługi komputera, aby dowiedzieć się, jak się tam dostać. Może to być Delalbo F2przy rozruchu, albo coś innego.
Alternatywnym sposobem jest wyłączenie Bezpiecznego rozruchu za pomocą
mokutil
.Ponieważ kompilacja jądra Ubuntu 4.4.0-21.37 można to naprawić, uruchamiając
Będzie to wymagało utworzenia hasła. Hasło powinno mieć co najmniej 8 znaków. Po ponownym uruchomieniu UEFI zapyta, czy chcesz zmienić ustawienia zabezpieczeń. Wybierz „Tak”.
Następnie zostaniesz poproszony o wprowadzenie wcześniej utworzonego hasła. Niektóre oprogramowanie układowe UEFI prosi nie o pełne hasło, ale o wprowadzenie niektórych jego znaków, takich jak 1., 3. itd. Bądź ostrożny. Niektórzy ludzie tego nie rozumieją. Nie dostałem go od pierwszej próby ;-)
Aktualizacja: teraz ta konfiguracja jądra jest włączona we wszystkich obsługiwanych jądrach Ubuntu. Dotyczy to Ubuntu 16.04, 15.10 i 14.04.
źródło
Zgodnie z sugestią użytkownika @zwets, kopiuję (z edycjami) odpowiedź tutaj:
Od wersji jądra 4.4.0-20 wymuszono, że niepodpisane moduły jądra nie będą mogły działać przy włączonym Bezpiecznym rozruchu. Jeśli chcesz zachować bezpieczny rozruch, a także uruchomić te moduły, następnym logicznym krokiem jest podpisanie tych modułów.
Więc spróbujmy.
Utwórz klucze do podpisywania
Podpisz moduł
Uwaga 1 : Może istnieć wiele plików do podpisania dla jednego sterownika / modułu, więc
/path/to/module
może być konieczne zastąpienie go$(modinfo -n <modulename>)
np$(modinfo -n vboxdrv)
Uwaga 2 :
sudo kmodsign sha512 ./MOK.priv ./MOK.der /path/to/module
jest alternatywą, jeślisign-file
nie jest dostępna.Zarejestruj klucze do bezpiecznego rozruchu
Podaj hasło do późniejszego użycia po ponownym uruchomieniu
Reboot
i postępuj zgodnie z instrukcjami, aby zarejestrować MOK (klucz właściciela maszyny). Oto próbka ze zdjęciami. System uruchomi się ponownie.Jeśli klucz został poprawnie zarejestrowany, pojawi się pod
sudo mokutil --list-enrolled
.Daj mi znać, jeśli twoje moduły będą działać w ten sposób na Ubuntu 16.04 (jak sądzę na jądrze 4.4.0-21).
Zasoby: Szczegółowy artykuł na stronie internetowej dotyczący implementacji podpisywania modułów przez Fedorę i Ubuntu . (pracowali nad tym) ;-)
Dodatkowy zasób: Utworzyłem skrypt bash na własny użytek za każdym razem, gdy przeprowadzana jest
virtualbox-dkms
aktualizacja, i dlatego zastępuje podpisane moduły. Sprawdź mójvboxsign
pierwotnie na GitHub .Dodatkowa uwaga dla osób świadomych bezpieczeństwa: ;-)
Ponieważ utworzonego klucza prywatnego (
MOK.priv
w tym przykładzie) może używać każdy, kto może mieć do niego dostęp, dobrą praktyką jest zabezpieczenie go. Możeszchmod
to, zaszyfrować (gpg
) lub zapisać w innym bezpiecznym miejscu (r). Lub, jak zauważono w tym komentarzu , usuń opcję-nodes
w kroku 1. Spowoduje to zaszyfrowanie klucza za pomocą hasła.źródło
Możesz wyłączyć Bezpieczny rozruch (UEFI) w systemie BIOS, wykonując następujące czynności:
Uruchom ponownie urządzenie i wejdź do menu BIOS (w moim przypadku naciśnięcie F2)
Wyszukaj Bezpieczny rozruch i zmień na Legacy
Na płycie głównej ASUS:
źródło
Możesz także wyłączyć Bezpieczny rozruch podczas pracy z podpisem shim
sudo update-secureboot-policy
. Ta strona wiki wyjaśnia tę metodę:źródło