Solución al error al cargar el controlador debido al bloqueo del kernel
Dado que el kernel de Linux ha actualizado la función de bloqueo, los módulos del kernel cuyas firmas no se pueden verificar informarán durante la instalación:
insmod: ERROR: no se pudo insertar el módulo xxxxxxxx.ko: operación no permitido
dmesg | grep Secureboot
dmesg | grep lock
imprimirá el bloqueo correspondiente y activará la información de visualización
generará la clave y el certificado cambian de nombre: signing_key.x509 y signing_key.priv y se colocan en el directorio raíz del código fuente del kernel de Linux.
Después de reiniciar el sistema usando el kernel recién compilado, use el siguiente comando para ver el certificado de firma válido:
dmesg | grep MODSIGN
Información similar a la Se mostrará lo siguiente:
[ 2.450021] MODSIGN: Certificado cargado 'GenFic: Clave de firma del kernel: b923a5f44eae25bbad52c8bf2742e7b7e6fb0c0e'
Puede compilar el módulo junto con el kernel, o puede compilarlo por separado más adelante. El módulo compilado por separado debe utilizarse el siguiente comando para firmar el módulo:
/usr/src/linux-headers-5.3.0-51-generic/scripts/sign-file sha512 /home. /yangyuqi/ko_sign_key/private_key.priv / home/yangyuqi/ko_sign_key/public_key.der xxxxxxxx.ko
Puede utilizar el siguiente comando para comprobar si la firma se ha añadido al módulo:
hexdump -C hello.ko | tail
Puede utilizar el siguiente comando para eliminar la firma:
strip --strip-debug hello.ko