Podczas instalacji 16.04 zostałem poproszony o wyłączenie „ Bezpiecznego rozruchu ”, jeśli chcę zainstalować moduły / sterowniki innych firm .
Nie zastosowałem się
A kiedy ręcznie zainstalowałem jedyne sterowniki innych firm, których używam ( bcmwl-kernel-source ), ponownie zostałem poproszony (podczas instalacji pakietu) o wyłączenie „Bezpiecznego rozruchu”.
Używanie bcmwl-kernel-source było w porządku z Secure Boot w 15.10 . Nie wydaje mi się to związane z błędem.
Wygląda to na to, że Ubuntu odmawia podpisywania sterowników / modułów innych firm, aby działało (??) z „Bezpiecznym uruchomieniem”. A może wydaje się, że uważa moduły innych firm za niebezpieczne i przerywające „Bezpieczny rozruch”, dlatego też jest nieskuteczne, aby je wyłączyć, aby było jasne? Czy mam rację ?
źródło
Odpowiedzi:
To nie jest błąd, to funkcja.
Jak mówi Anthony Wong, kiedy instalujesz pakiet DKMS, sam go kompilujesz, dlatego Canonical nie może podpisać modułu za ciebie.
Jednak zdecydowanie możesz użyć Bezpiecznego rozruchu, ale jest to dokładnie przypadek, w którym Bezpieczny rozruch próbuje Cię chronić, ponieważ nie może wiedzieć, czy ufasz modułowi, czy nie.
Domyślnie na komputerze UEFI znajduje się klucz platformy (PK), który jest ostatecznie zaufanym urzędem certyfikacji do ładowania kodu do procesora.
GRUB, shim lub inne mechanizmy rozruchowe mogą być podpisane cyfrowo przez KEK, któremu ufa główny urząd certyfikacji (PK), a zatem komputer może, bez żadnej konfiguracji, uruchamiać oprogramowanie, takie jak Ubuntu Live USB / DVD.
W Ubuntu 16.04 jądro jest zbudowane z CONFIG_MODULE_SIG_FORCE = 1, co oznacza, że jądro wymusi podpisanie modułów przez zaufany klucz na platformie. Weź pod uwagę, że platforma UEFI domyślnie zawiera PK, nad którym nie masz kontroli, a zatem nie możesz podpisywać plików binarnych za pomocą klucza rozpoznawanego przez własny komputer.
Niektórzy walczą przeciwko temu, ale tak naprawdę nie ma lepszego sposobu (z punktu widzenia bezpieczeństwa) niż to, że sam zapisujesz nowy klucz.
Jeśli twój system rozruchowy używa shim, możesz użyć czegoś, co nazywa się bazą danych kluczy właściciela maszyny i zapisać swój klucz jako MOK (możesz to zrobić za pomocą mokutil). Jeśli tego nie zrobisz, możesz również zarejestrować swój klucz w bazie danych UEFI jako klucz podpisujący.
Po zarejestrowaniu klucza możesz podpisać swój pakiet DKMS przy pomocy MOK (powinien istnieć skrypt perla
/usr/src/kernels/$(uname -r)/scripts/sign-file
), a po podpisaniu możesz załadować go do jądra .To prawda, że ktoś powinien zrobić więcej wizualnych instrukcji na ten temat, a może nawet stworzyć kreatora lub lepszy standard DKMS, aby pozwolić na uwzględnienie kluczy, ale teraz to właśnie mamy.
Możesz zapoznać się z tym wyjaśnieniem, jak podpisywać własne moduły jądra: https://askubuntu.com/a/768310/12049
źródło
Krótko mówiąc, nie jest to błąd, ale nowa zmiana wprowadzona w 16.04.
Ponieważ instalujesz pakiet dkms. Moduły DKMS są kompilowane na Twoim komputerze, więc firma Canonical nie może podpisać modułu za Ciebie. Jeśli Canonical nie może go podpisać, nie ma możliwości jego cyfrowej weryfikacji. Jeśli masz włączony bezpieczny rozruch, oznacza to, że moduł nie może być używany, a aby z niego skorzystać, musisz wyłączyć bezpieczny rozruch, dlatego pojawia się pytanie.
Dlatego, że dzieje się to dopiero w 16.04, ale nie w poprzednich wydaniach, Rod Smith udzielił dobrej odpowiedzi. W Ubuntu 16.04 Ubuntu zaczyna wymuszać bezpieczny rozruch do poziomu jądra. Przed 16.04 Ubuntu tak naprawdę nie wymusza używania podpisanego jądra i podpisanych modułów jądra, nawet jeśli masz włączony bezpieczny rozruch. Ale tak już nie jest w 16.04.
Jest to powiązany błąd: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1401532
Jest to powiązany plan: https://blueprints.launchpad.net/ubuntu/+spec/foundations-x-installing-unsigned-secureboot
źródło
Innym sposobem jest utworzenie własnego klucza, wstawienie części publicznej do bazy danych MOK i podpisanie modułów skompilowanych za pomocą części prywatnej. Spójrz tutaj, aby uzyskać szczegółowe informacje: Nie można załadować „vboxdrv” po aktualizacji do Ubuntu 16.04 (i chcę zachować bezpieczny rozruch)
źródło
Przyjęta odpowiedź jest bardzo kompletna, ale chciałbym dodać tę prostą informację, pobraną stąd:
https://askubuntu.com/a/843678/664391
Zasadniczo bezpieczny rozruch może uniemożliwić załadowanie zainstalowanego sterownika, co może być dość frustrujące. Sam przez to przeszedłem: sterownik poprawnie zainstalowany, wszystko wydawało się być w porządku, ale po prostu nie działało. Zajęło mi trochę czasu, aby stwierdzić, że bezpieczny rozruch uniemożliwia załadowanie go przez system operacyjny.
źródło