Esse problema ocorre apenas em sistemas UEFI com a Inicialização segura ativada.
Quando tento instalar módulos DKMS, como os drivers VirtualBox, Nvidia ou Broadcom, eles não são instalados e eu recebo Required key not available
quando os tento modprobe
.
O VirtualBox reclama que vboxdrv
não está carregado.
O wl
driver Broadcom é mostrado lspci -k
como um módulo do kernel, mas não está em uso. sudo modprobe wl
joga Required key not available
.
Além disso, esse problema pode ocorrer quando eu instalo alguns módulos do kernel a partir de fontes git.
Esse problema pode aparecer após uma atualização do kernel como adaptador sem fio desabilitado, tela preta após uma reinicialização etc.
Como posso corrigir isso?
kernel
uefi
secure-boot
dkms
Pilot6
fonte
fonte
Respostas:
Desde o Ubuntu kernel 4.4.0-20, a
EFI_SECURE_BOOT_SIG_ENFORCE
configuração do kernel foi ativada. Isso impede o carregamento de módulos de terceiros não assinados, se o UEFI Secure Boot estiver ativado.A maneira mais fácil de corrigir esse problema é desabilitar a Inicialização segura nas configurações da UEFI (BIOS).
Na maioria dos casos, você pode acessar as configurações da UEFI usando o menu grub. Pressione o ESCbotão na inicialização, entre no menu grub e selecione Configuração do sistema. A opção Inicialização segura deve estar na seção "Segurança" ou "Inicialização" do UEFI.
Você pode entrar no UEFI diretamente, mas isso depende do seu hardware. Leia o manual do computador para ver como chegar lá. Pode ser Del, ou F2na inicialização, ou qualquer outra coisa.
Uma maneira alternativa é desativar o Secure Boot usando
mokutil
.Como o kernel do Ubuntu constrói 4.4.0-21.37, isso pode ser corrigido executando
Será necessário criar uma senha. A senha deve ter pelo menos 8 caracteres. Após a reinicialização, a UEFI perguntará se você deseja alterar as configurações de segurança. Escolha "Sim".
Em seguida, você será solicitado a inserir a senha criada anteriormente. Alguns firmware UEFI solicitam não a senha completa, mas inserem alguns caracteres, como 1º, 3º, etc. Tenha cuidado. Algumas pessoas não entendem isso. Também não o recebi da primeira tentativa ;-)
Atualização: Agora, essa configuração do kernel está ativada em todos os kernels suportados do Ubuntu. Ubuntu 16.04, 15.10 e 14.04 são afetados.
fonte
Conforme sugerido pelo usuário @zwets, estou copiando (com edições) uma resposta aqui:
Desde a versão 4.4.0-20 do kernel, foi imposto que os módulos não assinados do kernel não poderão executar com o Secure Boot ativado. Se você deseja manter o Secure Boot e também executar esses módulos, a próxima etapa lógica é assinar esses módulos.
Então, vamos tentar.
Criar chaves de assinatura
Assine o módulo
Nota 1 : Pode haver vários arquivos a serem assinados para um único driver / módulo; portanto,
/path/to/module
pode ser necessário substituí-lo por$(modinfo -n <modulename>)
, por exemplo,$(modinfo -n vboxdrv)
Nota 2 :
sudo kmodsign sha512 ./MOK.priv ./MOK.der /path/to/module
é uma alternativa sesign-file
não estiver disponível.Registre as chaves no Secure Boot
Forneça uma senha para uso posterior após a reinicialização
Reboot
e siga as instruções para registrar o MOK (chave do proprietário da máquina). Aqui está uma amostra com fotos. O sistema irá reiniciar mais uma vez.Se a chave foi registrada corretamente, ela será exibida em
sudo mokutil --list-enrolled
.Por favor, deixe-me saber se seus módulos seriam executados dessa maneira no Ubuntu 16.04 (no kernel 4.4.0-21, acredito).
Recursos: Artigo detalhado do site para implementação do Fedora e Ubuntu da assinatura de módulos. (eles estão trabalhando nisso) ;-)
Recurso adicional: criei um script bash para meu próprio uso sempre que
virtualbox-dkms
atualizações e, assim, substitui os módulos assinados. Confira meuvboxsign
originalmente no GitHub .Nota adicional para a segurança (extra) consciente: ;-)
Como a chave privada que você criou (
MOK.priv
neste exemplo) pode ser usada por qualquer pessoa que possa ter acesso a ela, é uma boa prática mantê-la segura. Você podechmod
criptografar (gpg
) ou armazená-lo em outro lugar seguro (r). Ou, conforme observado neste comentário , remova a opção-nodes
na etapa número 1. Isso criptografará a chave com uma senha.fonte
Você pode desativar o Secure Boot (UEFI) no BIOS com as seguintes etapas:
Reinicie sua máquina e entre no menu BIOS (no meu caso, pressione F2)
Procure Inicialização Segura e mude para Legado
Em uma placa mãe ASUS:
fonte
Você também pode desativar o Secure Boot na execução com shim-assinado
sudo update-secureboot-policy
. Esta página wiki explica este método:fonte