This process presumes you have generated a signing key (/root/signing/MOK.priv and /root/signing/MOK.der) that has been registered for signing modules.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # Install prerequisites dnf install --skip-broken epel-release gcc make autoconf automake libtool rpm-build libtirpc-devel libblkid-devel libuuid-devel libudev-devel openssl-devel zlib-devel libaio-devel libattr-devel elfutils-libelf-devel kernel-devel-$( uname -r) python3 python3-devel python3-setuptools python3-cffi libffi-devel git ncompress libcurl-devel dnf install --skip-broken --enablerepo=epel --enablerepo=powertools python3-packaging dkms # Clone OpenZFS repo git clone https: //github .com /openzfs/zfs cd zfs # generally stay in the main branch, but if you want to use the latest then check out the staging branch # git checkout zfs-2.2.5-staging . /autogen .sh . /configure make make install # Sign the kernel modules /usr/src/kernels/ $( uname -r) /scripts/sign-file sha256 /root/signing/MOK .priv /root/signing/MOK .der /lib/modules/ $( uname -r) /extra/zfs .ko /usr/src/kernels/ $( uname -r) /scripts/sign-file sha256 /root/signing/MOK .priv /root/signing/MOK .der /lib/modules/ $( uname -r) /extra/spl .ko # And verify the modules are signed modinfo -F signer /usr/lib/modules/ $( uname -r) /extra/zfs .ko modinfo -F signer /usr/lib/modules/ $( uname -r) /extra/spl .ko |