Добавление сертификата X.509 в базу данных безопасной загрузки UEFI?

4035
zml

Я недавно установил Fedora 20 на настольный ПК с материнской платой ASUS Z87-K. Учитывая некоторые общеизвестные ошибки, я установил проприетарный драйвер NVIDIA для своей GeForce 630 и отключил драйвер nouveau.

После правильного завершения установки драйвера, во время которого модуль был подписан с помощью вновь сгенерированной пары ключей, был создан сертификат x.509, который автоматически помещается в

/usr/share/nvidia/certificate.der,

Однако с этого момента компьютер не может загрузиться с включенной опцией безопасной загрузки UEFI. При переключении в текстовый режим и при запуске nvidia-modprobeя обнаружил, что проприетарный модуль NVIDIA не был загружен.

Когда я отключаю Secure Boot в меню UEFI, компьютер загружается и работает с установленным драйвером.

Чтобы избежать недостатка при загрузке в небезопасном режиме, я хотел бы знать, где разместить сертификат x.509 модуля NVIDIA для его распознавания ядром, поэтому мне не нужно отключать безопасную загрузку.

7

2 ответа на вопрос

1
Rod Smith

You should be able to load the certificate using MokManager.efi so that it's recognized by Shim, and therefore accepted by the kernel. I don't know if Fedora sets its GRUB up so that you can launch MokManager.efi yourself. If not, try booting (with Secure Boot disabled) a USB flash drive with an EFI shell or rEFInd. You should then be able to launch MokManager.efi and load the certificate file. (It will need to be stored on the same disk as the MokManager.efi utility -- probably /boot/efi from within Fedora.)

I'm pretty sure there's a way to add the certificate to the NVRAM from within Linux so that Shim will notice it and ask if it should be used the next time you reboot, but I don't know precisely what it is. Presumably it would involve writing the file to somewhere in the /sys/firmware/efi directory tree.

That said, I've never had to do this specific thing myself, since I don't use proprietary video drivers on any of my computers. It's conceivable there's some extra step you'll need to take.

Оказывается, вы можете использовать mokutil в командной строке. Fabián Heredia Montiel 9 лет назад 0
0
Fabián Heredia Montiel

You would want to use mokutil to enroll the key.

sudo mokutil --import <der file> 

You can test if a key is enrolled with

mokutil --test-key <der file> 

Похожие вопросы