Skip to content

Fixed the Required Key Not Available Issue When Loading PF_Ring Module

Fixed the “Required Key Not Available” issue when tried to load the PF_Ring Module into Linux Kernel.

Tried to install the pf_ring module on CentOS 8, here are what I had tried:

  1. Create a new CentOS 8 VM on ESXI
  2. Upgrade the OS to latest
  3. Install the pf_ring module following the official documentation

The module package had been downloaded successfully, however, when it was about to load into the kernel via modprobe , an error occurred:

# pf_ringcfg --configure-driver e1000e --rss-queues 1
...
Job for pf_ring.service failed because the control process exited with error code.
See "systemctl status pf_ring.service" and "journalctl -xe" for details.
[>] Configuration completed

# systemctl status pf_ring.service 
● pf_ring.service - PF_RING service
   Loaded: loaded (/usr/lib/systemd/system/pf_ring.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Thu 2021-04-01 22:10:57 EDT; 2min 17s ago
...
Apr 01 22:10:57 localhost.localdomain pf_ringctl[3944]: modprobe: ERROR: could not insert 'pf_ring': Required key not availab>
Apr 01 22:10:57 localhost.localdomain pf_ringctl[3944]: Unable to load PF_RING. Exiting[FAILED]
Apr 01 22:10:57 localhost.localdomain systemd[1]: pf_ring.service: Main process exited, code=exited, status=99/n/a
Apr 01 22:10:57 localhost.localdomain systemd[1]: pf_ring.service: Failed with result 'exit-code'.
Apr 01 22:10:57 localhost.localdomain systemd[1]: Failed to start PF_RING service.

According to the systemctl information, the issue is: modprobe: ERROR: could not insert 'pf_ring': Required key not availab.

I first suspect the issue might be due to the “package download” way that I chose to install the module.

Then I tried to compile the module by myself. I downloaded the source code from GitHub, the compilation went smoothly, however, when I tried to load the module into the kernel, the same issue occurred.

After some googling, I found the issue is due to UEFI systems with enabled Secure Boot[^1]. It turns out that ESXI 6.7 enable the Secure Boot by default when creating a new VM. And after disabled it, the pf_ring module can be loaded without any issue.

[^1] why-do-i-get-required-key-not-available-when-install-3rd-party-kernel-modules

Leave a Reply

Your email address will not be published. Required fields are marked *