I just finished installing Nvidia driver on Ubuntu. Nvidia installer created a key pair and signed the module with it. Now it says I should add this key pair to list of kernels' trusted keys to be able to use module. I googled but couldn't find any solution for this as I am not an expert Linux user.

I appreciate your help.

(using lubuntu 16.10)


Here I found the solution.


If your key pair are created, then:

(The instruction is for RedHat but worked fine on Lubuntu and most probably will work for Ubuntu too)

The Machine Owner Key (MOK) facility is a feature that is supported by Red Hat Enterprise Linux 7 and can be used to augment the UEFI Secure Boot key database. When Red Hat Enterprise Linux 7 boots on a UEFI-enabled system with Secure Boot enabled, the keys on the MOK list are also added to the system keyring in addition to the keys from the key database. The MOK list keys are also stored persistently and securely in the same fashion as the Secure Boot key database keys, but these are two separate facilities. The MOK facility is supported by shim.efi, MokManager.efi, grubx64.efi, and the Red Hat Enterprise Linux 7 mokutil utility.

The major capability provided by the MOK facility is the ability to add public keys to the MOK list without needing to have the key chain back to another key that is already in the KEK database. However, enrolling a MOK key requires manual interaction by a physically present user at the UEFI system console on each target system. Nevertheless, the MOK facility provides an excellent method for testing newly generated key pairs and testing kernel modules signed with them.

Follow these steps to add your public key to the MOK list:

  1. Request addition of your public key to the MOK list using a Red Hat Enterprise Linux 7 userspace utility:

    ~]# mokutil --import my_signing_key_pub.der

You will be asked to enter and confirm a password for this MOK enrollment request.

  1. Reboot the machine.

  2. The pending MOK key enrollment request will be noticed by shim.efi and it will launch MokManager.efi to allow you to complete the enrollment from the UEFI console. You will need to enter the password you previously associated with this request and confirm the enrollment. Your public key is added to the MOK list, which is persistent.

Once a key is on the MOK list, it will be automatically propagated to the system key ring on this and subsequent boots when UEFI Secure Boot is enabled.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.