Masalah ini hanya terjadi pada sistem UEFI dengan Boot Aman yang diaktifkan.
Ketika saya mencoba untuk menginstal modul DKMS seperti VirtualBox, Nvidia, atau driver Broadcom, mereka tidak menginstal dan saya dapatkan Required key not available
ketika saya mencoba modprobe
mereka.
VirtualBox mengeluh bahwa vboxdrv
tidak dimuat.
wl
Driver Broadcom ditampilkan lspci -k
sebagai modul kernel tetapi tidak digunakan. sudo modprobe wl
melempar Required key not available
.
Juga masalah ini dapat terjadi ketika saya menginstal beberapa modul kernel dari sumber git.
Masalah ini dapat muncul setelah pembaruan kernel sebagai adaptor nirkabel yang dinonaktifkan, layar hitam setelah reboot, dll.
Bagaimana saya bisa memperbaikinya?
kernel
uefi
secure-boot
dkms
Pilot6
sumber
sumber
Jawaban:
Sejak Ubuntu 4.4.4-20,
EFI_SECURE_BOOT_SIG_ENFORCE
konfigurasi kernel telah diaktifkan. Itu mencegah dari memuat modul pihak ketiga yang tidak ditandatangani jika UEFI Secure Boot diaktifkan.Cara termudah untuk memperbaiki masalah ini adalah dengan menonaktifkan Secure Boot di pengaturan UEFI (BIOS).
Dalam kebanyakan kasus, Anda dapat masuk ke pengaturan UEFI menggunakan menu grub. Tekan ESCtombol saat boot, masuk ke menu grub dan pilih Pengaturan Sistem. Opsi Boot Aman harus di bagian "Keamanan" atau "Boot" di UEFI.
Anda dapat masuk ke UEFI secara langsung, tetapi itu tergantung pada perangkat keras Anda. Baca manual komputer Anda untuk melihat bagaimana menuju ke sana. Mungkin Del, atau F2saat boot, atau sesuatu yang lain.
Cara alternatif adalah dengan menonaktifkan Boot Aman menggunakan
mokutil
.Karena kernel Ubuntu build 4.4.0-21.37 ini dapat diperbaiki dengan menjalankan
Anda harus membuat kata sandi. Panjang kata sandi minimal harus 8 karakter. Setelah Anda reboot, UEFI akan menanyakan apakah Anda ingin mengubah pengaturan keamanan. Pilih "Ya".
Kemudian Anda akan diminta untuk memasukkan kata sandi yang dibuat sebelumnya. Beberapa firmware UEFI meminta bukan kata sandi lengkap, tetapi untuk memasukkan beberapa karakternya, seperti 1, 3, dll. Hati-hati. Beberapa orang tidak mengerti ini. Saya tidak mendapatkannya dari upaya pertama juga ;-)
Pembaruan: Sekarang konfigurasi kernel ini diaktifkan di semua kernel Ubuntu yang didukung. Ubuntu 16.04, 15.10 dan 14.04 terpengaruh.
sumber
Seperti yang disarankan oleh pengguna @zwets, saya menyalin (dengan pengeditan) jawaban di sini:
Sejak kernel versi 4.4.0-20, diberlakukan bahwa modul kernel yang tidak ditandatangani tidak akan diizinkan berjalan dengan Secure Boot diaktifkan. Jika Anda ingin menjaga Boot Aman dan juga menjalankan modul-modul ini, maka langkah logis berikutnya adalah menandatangani modul-modul tersebut.
Jadi mari kita coba.
Buat kunci penandatanganan
Tanda tangani modul
Catatan 1 : Mungkin ada beberapa file yang akan ditandatangani untuk satu driver / modul, jadi
/path/to/module
mungkin perlu diganti dengan$(modinfo -n <modulename>)
, misalnya$(modinfo -n vboxdrv)
Catatan 2 :
sudo kmodsign sha512 ./MOK.priv ./MOK.der /path/to/module
adalah alternatif jikasign-file
tidak tersedia.Daftarkan tombol-tombol tersebut ke Secure Boot
Masukkan kata sandi untuk digunakan nanti setelah reboot
Reboot
dan ikuti instruksi untuk Mendaftar MOK (Kunci Pemilik Mesin). Ini contoh dengan gambar. Sistem akan reboot sekali lagi.Jika kunci telah didaftarkan dengan benar, itu akan muncul di bawah
sudo mokutil --list-enrolled
.Tolong beri tahu saya jika modul Anda akan berjalan dengan cara ini di Ubuntu 16.04 (pada kernel 4.4.0-21, saya percaya).
Sumber: Artikel situs web terperinci untuk implementasi modul penandatanganan Fedora dan Ubuntu . (mereka sudah mengusahakannya) ;-)
Sumber daya tambahan: Saya membuat skrip bash untuk saya gunakan sendiri setiap kali
virtualbox-dkms
upgrade dan dengan demikian menimpa modul yang ditandatangani. Lihatvboxsign
aslinya di GitHub .Catatan tambahan untuk keamanan (tambahan-) yang sadar: ;-)
Karena kunci pribadi yang Anda buat (
MOK.priv
dalam contoh ini) dapat digunakan oleh siapa saja yang dapat mengaksesnya, praktik yang baik adalah menjaga keamanannya. Anda dapatchmod
, mengenkripsi (gpg
), atau menyimpannya di tempat lain yang aman (r). Atau, seperti disebutkan dalam komentar ini , hapus opsi-nodes
di langkah nomor 1. Ini akan mengenkripsi kunci dengan frasa sandi.sumber
Anda dapat menonaktifkan Secure Boot (UEFI) di BIOS dengan langkah-langkah berikut:
Nyalakan ulang mesin Anda dan masuk ke Menu BIOS (Dalam kasus saya, menekan F2)
Cari Boot Aman dan ubah ke Legacy
Di motherboard ASUS:
sumber
Anda juga dapat Nonaktifkan Boot Aman saat berjalan dengan tanda tangan shim
sudo update-secureboot-policy
. Ini halaman wiki menjelaskan metode ini:sumber