Secure Boot + drivers NVIDIA no Fedora Silverblue

05 de novembro de 2025 • Fedora, Silverblue, Nvidia, Guia

Após a instalação do Fedora Silverblue, antes da primeira inicialização, desative o Secure Boot temporariamente.

Instale os repositórios RPM Fusion:

sudo rpm-ostree install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

➜ Reinicie o sistema

Substitua os pacotes instalados por pacotes independentes da versão:

sudo rpm-ostree update --uninstall $(rpm -q rpmfusion-free-release) --uninstall $(rpm -q rpmfusion-nonfree-release) --install rpmfusion-free-release --install rpmfusion-nonfree-release

➜ Reinicie o sistema

Remova o Firefox pré-instalado (ele não vem com codecs) e o gnome-tour:

sudo rpm-ostree override remove gnome-tour firefox firefox-langpacks

➜ Reinicie o sistema

Reinstale o Firefox ou o Google Chrome pelo Flathub (ambos vêm com codecs):

flatpak install flathub org.mozilla.firefox

ou

flatpak install flathub com.google.Chrome

Na Loja de Aplicativos do GNOME, procure por "codec" e instale todos. Instale a plataforma Freedesktop de ambas as fontes disponíveis. Instale também todas as extensões oferecidas lá, de ambas as fontes.

➜ Reinicie o sistema

2. Configuração da NVIDIA

Certifique-se de que seu sistema reconhece sua NVIDIA:

Execute:

lspci -nn | grep -E "VGA|3D" 

Isso deve gerar algo como:

08:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] [10de:2504] (rev a1)

Instale as dependências do sistema:

sudo rpm-ostree install akmods dkms kernel-devel kernel-headers kmodtool sqlite
Pacote Função Principal
akmods Framework para reconstruir módulos automaticamente
dkms Suporte genérico para recompilar módulos de kernel
kernel-devel Código e cabeçalhos necessários para compilar módulos
kernel-headers Cabeçalhos do kernel (interface de compilação)
kmodtool Criação e empacotamento de módulos do kernel
sqlite Armazena informações sobre módulos compilados

➜ Reinicie o sistema

Crie um par de chaves pública/privada para assinar o módulo NVIDIA:

sudo kmodgenca -a

Inscreva a chave recém-criada para que o firmware UEFI confie nela:

sudo mokutil --import /etc/pki/akmods/certs/public_key.der

Use uma senha simples, como "abcd", para isso.

➜ Reinicie o sistema

Ao iniciar, aparecerá a tela do MOK (Machine Owner Key) para inscrever a chave. Siga os menus, escolha "Enroll MOK" e confirme o registro. Digite a senha definida anteriormente.

➜ Reinicie o sistema

Verifique novamente se a chave foi inscrita:

mokutil --list-enrolled

openssl x509 -in /etc/pki/akmods/certs/public_key.der -inform DER -noout -fingerprint

Compare a impressão digital das chaves nas saídas acima; se corresponderem, tudo certo.

Agora você tem uma chave de proprietário da máquina inscrita para assinar módulos do kernel. O problema é que essa chave não pode ser acessada porque a distro é imutável.

Por precaução, guarde este clone do repositório em algum lugar importante. Você terá que reinstalar essas chaves manualmente quando o Fedora for atualizado. Isso não quebra o sistema; apenas impede que os apps que a usam como dependência sejam atualizados automaticamente até você reinstalá-las.

Clone o repositório:

git clone https://github.com/CheariX/silverblue-akmods-keys

Navegue até o diretório clonado:

cd silverblue-akmods-keys

Execute o script de configuração:

sudo bash setup.sh

Isso criará o pacote RPM necessário para que o assinador de módulos acesse a chave.

rpm-ostree install akmods-keys-0.0.2-8.fc$(rpm -E %fedora).noarch.rpm

➜ Reinicie o sistema

Agora verifique com:

sudo rpm-ostree status

Em LocalPackages, confirme se o akmods-keys está instalado:

LocalPackages: akmods-keys-0.0.2-8.fc43.noarch

Agora o assinador realmente poderá acessá-la.

Em seguida, ative o initramfs:

sudo rpm-ostree initramfs --enable

➜ Reinicie o sistema

Agora vamos instalar os drivers NVIDIA, mesmo que seu sistema ainda não os use:

sudo rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-cuda xorg-x11-drv-nvidia-libs
Pacote Função Principal
akmod-nvidia Compila o módulo NVIDIA automaticamente para o kernel atual
xorg-x11-drv-nvidia Driver proprietário NVIDIA (núcleo do driver)
xorg-x11-drv-nvidia-cuda Suporte CUDA (computação via GPU)
xorg-x11-drv-nvidia-libs Bibliotecas gráficas e de tempo de execução

Isso levará mais tempo, pois ele compilará e assinará o módulo.

➜ Reinicie o sistema

Os drivers agora devem estar instalados, mas ainda não estão em uso.

Verifique se o driver foi compilado:

modinfo -F version nvidia 

Se isso retornar um número de versão, o módulo foi compilado.

modinfo nvidia | grep signer 

Se isso retornar sua chave MOK, o módulo foi assinado corretamente.

sudo dmesg | grep nvidia 

Se isso retornar mensagens como:

 NVRM: obtained ownership of the NVIDIA device(s).

Estamos no caminho certo!

lspci -nnk | grep -iA3 'vga\|3d\|display'

Aqui deve dizer:

Kernel driver in use: nouveau
Kernel modules: nouveau, nvidia_drm, nvidia

Isso significa que os módulos do kernel da NVIDIA foram carregados, mas o Nouveau (ou nova_core) vinculou-se à GPU antes mesmo de a NVIDIA ter a chance de fazê-lo.

Para poder realmente usar os drivers NVIDIA, você precisa instruir o kernel a suprimir os drivers de fallback Nouveau e nova_core. Para isso, crie um arquivo de blacklist que será incluído no initramfs gerado.

sudo nano /etc/modprobe.d/blacklist-nouveau-nova.conf

e adicione o seguinte conteúdo:

blacklist nouveau
blacklist nova_core

Salve e saia.

Agora adicione argumentos do kernel à blacklist:

sudo rpm-ostree kargs --append=rd.driver.blacklist=nova_core --append=modprobe.blacklist=nova_core --append=rd.driver.blacklist=nouveau --append=modprobe.blacklist=nouveau

Em seguida, reinicie.

Agora você deve ter os drivers NVIDIA ativados. Confirme com:

lspci -nnk | grep -iA3 'vga\|3d\|display'

Aqui deve dizer: Kernel driver in use: nvidia

nvidia-smi

Se isso gerar as estatísticas da GPU, seu Fedora está pronto!


Quando o sistema for atualizado (por exemplo, do Fedora 42 para o Fedora 43), você precisará reinstalar as chaves para que o sistema possa atualizar os pacotes que as usam como dependência.

sudo rpm-ostree uninstall akmods-keys

Volte para o diretório clonado:

rpm-ostree install akmods-keys-0.0.2-8.fc$(rpm -E %fedora).noarch.rpm

➜ Reinicie o sistema

Pronto, as atualizações automáticas voltarão a funcionar.


Meu post é um backup do guia original feito no Reddit, disponível aqui:
Fedora Silverblue as DualBoot (with Windows) with Secure Boot + NVIDIA drivers install guide