Este problema solo ocurre en sistemas UEFI con arranque seguro habilitado.
Cuando intento instalar módulos DKMS como los controladores VirtualBox, Nvidia o Broadcom, no se instalan y obtengo Required key not available
cuando los intento modprobe
.
VirtualBox se queja de que vboxdrv
no está cargado.
El wl
controlador Broadcom se muestra lspci -k
como un módulo de kernel pero no está en uso. sudo modprobe wl
lanza Required key not available
.
Además, este problema puede ocurrir cuando instalo algunos módulos del kernel desde las fuentes de git.
Este problema puede aparecer después de una actualización del kernel como un adaptador inalámbrico deshabilitado, una pantalla negra después de un reinicio, etc.
¿Cómo puedo arreglarlo?
kernel
uefi
secure-boot
dkms
Piloto6
fuente
fuente
Respuestas:
Desde Ubuntu kernel 4.4.0-20, la
EFI_SECURE_BOOT_SIG_ENFORCE
configuración del kernel se ha habilitado. Eso evita que se carguen módulos de terceros sin firmar si UEFI Secure Boot está habilitado.La forma más fácil de solucionar este problema es deshabilitar el Arranque seguro en la configuración de UEFI (BIOS).
En la mayoría de los casos, puede acceder a la configuración de UEFI utilizando el menú de grub. Presione el ESCbotón al iniciar, acceda al menú de grub y seleccione Configuración del sistema. La opción de arranque seguro debe estar en la sección "Seguridad" o "Arranque" de la UEFI.
Puede ingresar directamente a UEFI, pero depende de su hardware. Lea el manual de su computadora para ver cómo llegar allí. Puede ser Del, o F2en el arranque, o algo más.
Una forma alternativa es deshabilitar el arranque seguro usando
mokutil
.Desde Ubuntu kernel build 4.4.0-21.37 esto se puede solucionar ejecutando
Será necesario crear una contraseña. La contraseña debe tener al menos 8 caracteres de longitud. Después de reiniciar, UEFI le preguntará si desea cambiar la configuración de seguridad. Elige "Sí".
Luego se le pedirá que ingrese la contraseña creada anteriormente. Algunos firmware UEFI no solicitan la contraseña completa, sino que ingresan algunos caracteres, como el 1er, 3er, etc. Tenga cuidado. Algunas personas no entienden esto. Tampoco lo obtuve desde el primer intento ;-)
Actualización: ahora esta configuración del núcleo está habilitada en todos los núcleos de Ubuntu compatibles. Ubuntu 16.04, 15.10 y 14.04 se ven afectados.
fuente
Como lo sugirió el usuario @zwets, estoy copiando (con ediciones) una respuesta aquí:
Desde la versión de kernel 4.4.0-20, se impuso que los módulos de kernel no firmados no se puedan ejecutar con Secure Boot habilitado. Si desea mantener el Arranque seguro y también ejecutar estos módulos, el siguiente paso lógico es firmar esos módulos.
Entonces probémoslo.
Crear claves de firma
Firma el módulo
Nota 1 : puede haber varios archivos para firmar para un solo controlador / módulo, por lo que es
/path/to/module
posible que deba reemplazarse con$(modinfo -n <modulename>)
, por ejemplo,$(modinfo -n vboxdrv)
Nota 2 :
sudo kmodsign sha512 ./MOK.priv ./MOK.der /path/to/module
es una alternativa sisign-file
no está disponible.Registre las claves para el arranque seguro
Proporcione una contraseña para su uso posterior después de reiniciar
Reboot
y siga las instrucciones para inscribir MOK (clave del propietario de la máquina). Aquí hay una muestra con fotos. El sistema se reiniciará una vez más.Si la clave se ha registrado correctamente, aparecerá debajo
sudo mokutil --list-enrolled
.Avíseme si sus módulos se ejecutarían de esta manera en Ubuntu 16.04 (en el kernel 4.4.0-21, creo).
Recursos: Artículo detallado del sitio web para la implementación de Fedora y Ubuntu de la firma de módulos. (han estado trabajando en ello) ;-)
Recurso adicional: creé un script bash para mi propio uso cada vez que
virtualbox-dkms
realizo actualizaciones y, por lo tanto, sobrescribe los módulos firmados. Mira mivboxsign
originalmente en GitHub .Nota adicional para la seguridad (extra) consciente: ;-)
Dado que la clave privada que creó (
MOK.priv
en este ejemplo) puede ser utilizada por cualquier persona que pueda tener acceso a ella, es una buena práctica mantenerla segura. Puedechmod
hacerlo, cifrarlo (gpg
) o almacenarlo en otro lugar seguro (r). O, como se señaló en este comentario , elimine la opción-nodes
en el paso número 1. Esto cifrará la clave con una frase de contraseña.fuente
Puede deshabilitar el Arranque seguro (UEFI) en el BIOS con los siguientes pasos:
Reinicie su máquina e ingrese al menú del BIOS (en mi caso presionando F2)
Busque el Arranque seguro y cambie a Legacy
En una placa base ASUS:
fuente
También puede deshabilitar el arranque seguro en la ejecución firmada con shim
sudo update-secureboot-policy
. Esta página wiki explica este método:fuente