Inscrição do certificado MOK com dkms e virtualbox-dkms (Virtualbox com inicialização segura ativada)

0

Como muitos outros, eu preciso executar uma instância do Windows no Virtualbox, não quero desabilitar o Secure Boot e, portanto, tenho problemas em fazer o Virtualbox funcionar após as atualizações do kernel.

Já percorri as etapas necessárias, mas algo deve estar errado. Atualmente, o Virtualbox é executado se eu desabilitar a inicialização segura, mas congela todo o sistema assim que eu tento executar uma VM (que no momento está em um estado interrompido) quando a inicialização segura está habilitada.

Eu verifiquei o seguinte:

  • Eu gerou um certificado (com -subj "/CN=MyName/" ). Um MOK.der está lá, e eu o inscrevi ( mokutil --list-enrolled mostra com outro da Canonical). Na verdade, se eu tentar outro mokutil -n import MOK.der , eu recebo a saída SKIP: MOK.der is already enrolled
  • Eu posso assinar módulos do VirtualBox por este script:

    <!-- language: bash -->
    #!/bin/bash
    for modfile in $(dirname $(modinfo -n vboxdrv))/vbox*.ko; do
      echo "Signing $modfile"
      /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \
                            /root/module-signing/MOK.priv \
                            /root/module-signing/MOK.der "$modfile"
    done
    
  • ... e posso verificar se estão todos assinados:

    $ grep "MyName" $(dirname $(modinfo -n vboxdrv))/vbox*.ko 
    Il file binario /lib/modules/4.13.0-37-generic/updates/dkms/vboxdrv.ko corrisponde
    Il file binario /lib/modules/4.13.0-37-generic/updates/dkms/vboxnetadp.ko corrisponde
    Il file binario /lib/modules/4.13.0-37-generic/updates/dkms/vboxnetflt.ko corrisponde
    Il file binario /lib/modules/4.13.0-37-generic/updates/dkms/vboxpci.ko corrisponde
    
  • Na verdade, posso carregar os módulos a partir da linha de comando, sem mensagens de erro:     $ para modfile em $ (dirname $ (modinfo -n vboxdrv)) / vbox * .ko; do modprobe $ (basename -s .ko $ modfile); feito

  • No entanto, não consigo encontrar meu certificado entre os conhecidos no nível do BIOS: Nenhum de mokutil --pk , mokutil --kek , mokutil --db , inclui "MyName" na saída (mas alguns deles incluem " Canônico ")

Então, a pergunta s:

  • Onde o MOK registrado é armazenado se não estiver no PK, DB ou KEK? (na verdade os módulos podem ser carregados). Qual nome devo procurar no meu utilitário de BIOS?
  • O que é o calço ?
  • Eu tenho o pacote dkms instalado e só recentemente instalei também virtualbox-dkms . Esses pacotes são necessários ou não? Em qual sequência devo instalá-los? antes ou depois do procedimento acima? Ou eles preferem fazer o todo, em vez de deixar que isso seja feito manualmente ?
  • Devo tentar desinstalar virtualbox , dkms , virtualbox-dkms (etc?) e refazer o procedimento desde o início?
  • Qual das opções acima permanece aplicável para o restante dos módulos no diretório /lib/modules/4.13.0-37-generic/updates/dkms (a saber, bbswitch e nvidia* )? De fato, no menu Configurações do Sistema, em Sistema / Software & Atualizações Eu vejo que o driver proprietário Nvidia 384.111 está sendo usado, mas então eu não posso ver por lsmod | grep nvidia nem modprobe it:

    $ modprobe nvidia_384
    modprobe: ERROR: could not insert 'nvidia_384': Required key not available
    

A situação é inconsistente? Por onde começar para corrigi-lo?

Obrigado

    
por lurix66 19.03.2018 / 15:29

0 respostas