系统为ubuntu18.04, 在编译内核模块insmod helloworld.ko的时候提示如下错误。
出现此问题的原因是,Ubuntu Kernel 使用 EFI_SECURE_BOOT_SIG_ENFORCE
内核配置,这样会阻止内核载入第三方模块
解决方法:
1 sudo apt install mokutil
2 sudo mokutil --disable-validation
3 执行后,终端会让你设置8-16位密码
4 重启电脑,会出现蓝屏
选项如下: 选择Change Secure Boot state
- Continue boot
- Change Secure Boot state
- Enroll key from disk
- Enroll hash from disk
5 接下来会让你输入在第三步设置的密码,也有可能只让你输入密码的某一位,比如第三位。
6 接下来进入Disable Secure Boot选择界面,选择 yes,然后下个界面又回到最开始的界面,选择reboot,重新进入系统。在执行insmod helloworld.ko就可以正常插入了