Como usar os drivers do kmod-nvidia para inicialização

1

Eu tenho o Fedora 21 em um computador que eu construí com uma placa gráfica NVIDIA GeForce GTX 660 Ti. Quando eu estava originalmente instalando meu sistema, tive um grande número de problemas com a execução até instalar o pacote kmod-nvidia do RPMFusion. Desde então, minha experiência no próprio sistema operacional foi boa e suave.

No entanto, na tela de seleção do kernel e no processo de inicialização, posso dizer que ele está usando os drivers gráficos básicos, como quando solicita a frase secreta de descriptografia, ele usa uma interface de texto básica (em comparação com a caixa de texto normal que aparece com o tema plymouth ). Além disso, depois de inserir minha frase de descriptografia, ela também carrega a barra em vez do balão do Fedora.

Isso obviamente não é um grande problema, mas é algo que me deixou curioso por um tempo, já que sei que meu sistema tem drivers capazes, mas eu simplesmente não sei como carregá-los no início do processo. sistema.

Quando eu estava originalmente diagnosticando e corrigindo meu sistema, segui este guia de if-not-true-then-false.

Qualquer ajuda é apreciada!

    
por Justin W. Flory 05.03.2015 / 15:07

1 resposta

1

Veja como eu obtive o software kmod-nvidia da rpmfusion nonfree trabalhando com o Fedora 26 em uma máquina configurada para "boot seguro" / UEFI. Eu estava recebendo o erro "chave necessária não disponível" ao executar o modprobe contra os módulos do kernel nvidia.

É possível, e não muito difícil, manter a inicialização segura UEFI ativada e executar o driver nvidia proprietário.

  • Depois de instalar os repositórios livres e não-livres do rpmfusion, instale o kmod-nvidia: dnf install kmod-nvidia
  • Crie um certificado auto-assinado e uma chave, fazendo a configuração do openssl e executando o seguinte:

    cd /root #or somewhere reasonably safe
    cat > mokutil-openssl.conf << XYZZY
    [ req ]
    default_bits = 4096
    distinguished_name = req_distinguished_name
    string_mask = utf8only
    x509_extensions = exts
    prompt = no
    
    [ req_distinguished_name ]
    O = username
    CN = username
    emailAddress = [email protected]
    
    [ exts ]
    basicConstraints=critical,CA:FALSE
    keyUsage=digitalSignature
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid
    XYZZY
    
    # create the certificate & key
    openssl req -x509 -new -nodes -utf8 -sha256 -days 7300 -config ./mokutil-openssl.conf -outform DER -out mokutil.der -keyout mokutil.key -batch
    # to verify the certificate:
    openssl x509 -inform DER -in ./mokutil.der -noout -text |less
    
  • Em seguida, assine os novos módulos do kernel da nvidia com o utilitário fornecido:

    cd /lib/modules/$(uname -r)/extra/nvidia
    /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /root/mokutil.key /root/mokutil.der nvidia.ko
    /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /root/mokutil.key /root/mokutil.der nvidia-drm.ko 
    /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /root/mokutil.key /root/mokutil.der nvidia-modeset.ko 
    /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /root/mokutil.key /root/mokutil.der nvidia-uvm.ko 
    
  • O certificado precisa ser adicionado ao BIOS para ser confiável:

    # first, we stage the new certificate to be added to the BIOS on 
    # the next reboot.  You will be prompted to enter a password when
    # running the utility; the BIOS will ask for the same password on 
    # reboot.
    mokutil --import ./mokutil.der
    
    # This command shows whether or not mokutil was able to stage the
    # new certificate for import into the BIOS.  If the process is 
    # unsuccessful, you may have to enter the BIOS and import the key
    # manually from its interface, perhaps from a USB stick.  If this
    # command returns your certificate, you should reboot.  The BIOS 
    # will prompt you to take action and enter in the password you
    # input in the previous step.
    mokutil -N
    
    # This command shows which certificates are trusted by the BIOS.
    # There will be one installed by the manufacturer and if 
    mokutil --list-enrolled 
    
  • Se tudo correu bem, sua máquina deveria ter carregado os novos módulos. Você pode verificar com lsmod |grep nvidia

  • Você terá que assinar os módulos novamente quando um novo kernel for instalado.

Encontrei a maioria dessas informações aqui , mas o utilitário de assinatura não precisa ser chamado com perl. Também assinei todos os quatro módulos gerados pelo processo de compilação kmod-nvidia.

    
por 25.08.2017 / 18:48