Como assinar módulos do kernel com o arquivo de sinais?

2

Acabei de instalar o Ubuntu 16.04 com inicialização segura e encontrei o mesmo vmware -error como descrito lá:

modprobe: ERROR: could not insert 'vmnet': Required key not available .

Uma maneira de contornar este problema é desativar a inicialização segura, mas não quero fazer isso. A outra maneira é assinar os módulos do kernel sozinho , seguindo este muito detalhado thread . Há um tutorial sobre como fazer isso no RHEL e no fedora , mas todas essas soluções estão contando com algum script que não consigo encontrar:

sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)

Onde encontro este script sign-file no Ubuntu?

Relacionados: link e assine um módulo após a compilação do kernel .

    
por Matsmath 10.05.2016 / 12:42

2 respostas

6

No Ubuntu, isso seria /usr/src/linux-headers-$(uname -r)/scripts/sign-file .

Como eu descobri isso? Eu fiz uma pesquisa por sign-file :

dpkg -S sign-file

que me disse qual pacote fornece esse arquivo (atualmente linux-headers-4.4.0-22-generic ) e onde ele foi instalado, ou seja, em /usr/src/linux-headers-4.4.0-22-generic/scripts/ .

A parte uname -r é apenas para manter o comando independente do pacote genérico headers atualmente instalado.

    
por Jos 10.05.2016 / 12:52
3

No site da VMware, a causa do seu problema é provável que:

  

No host Linux com o modo seguro ativado, não é permitido carregar nenhum driver não assinado. Devido a isso, os drivers VMware, como vmmon e vmnet, não podem ser carregados, o que impede que a máquina virtual seja ligada.

Para corrigir isso sem desativar a inicialização segura, você pode fazer o seguinte em um terminal:

  1. Gere um par de chaves usando o openssl para assinar módulos vmmon e vmnet:

      

    ~ $ openssl req -new -x509 -keykey rsa: 2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/ CN = VMware /"

    (Substitua o MOK pelo nome do arquivo que você deseja para a chave.)

  2. Assinar os módulos usando a chave gerada executando estes comandos:

      

    ~ $ sudo / usr / src / linux-headers- uname -r / scripts / arquivo-de-sinal sha256 ./MOK.priv./MOK.der $ (modinfo -n vmmon)

         

    ~ $ sudo / usr / src / linux-headers- uname -r / scripts / assin-file sha256 ./MOK.priv./MOK.der   $ (modinfo -n vmnet)

  3. Importe a chave pública para a lista MOK do sistema, executando este comando:

      

    ~ $ sudo mokutil --import MOK.der

  4. Confirme uma senha para esta solicitação de inscrição no MOK.

  5. Reinicie sua máquina. Siga as instruções para concluir a inscrição no console UEFI.

Citado neste artigo da VMWare: link

    
por EriC 11.02.2017 / 17:04