原贴:https://blog.csdn.net/m0_38066161/article/details/81812816
我在尝试以编译模块的方式添加系统调用时,执行sudo insmod module.ko命令,遇到如下问题:
insmod: ERROR: could not insert module module.ko: Required key not available
我所使用的系统为 Ubuntu 18.04,Linux Kernel 为 4.15.0-32-generic。
出现此问题的原因是,Ubuntu Kernel 使用 EFI_SECURE_BOOT_SIG_ENFORCE 内核配置,这样会阻止内核载入第三方模块。
解决方法如下:
在终端执行如下指令:
sudo apt install mokutil
sudo mokutil --disable-validation
1
2
执行后,终端会让你设置8-16位密码(之后要用,不要忘记哦~)
接下来,重启电脑,会出现蓝屏(不要紧张,按下任意键进入选择界面 :-)),选项如下:
- Continue boot
- Change Secure Boot state
- Enroll key from disk
- Enroll hash from disk
选择Change Secure Boot state,接下来会让你输入之前的密码。
我的系统很调皮,没有让我直接输入密码,而是要求 Enter password character 7,意思是输入密码的第7位(这点要注意!)。
接下来进入Disable Secure Boot选择界面,选择 yes(不要直接按下Enter,这样就前功尽弃,只能从头再来了!)。
然后下个界面又回到最开始的界面,选择reboot,重新进入系统,赶紧测试下模块能不能安装进内核吧~
以上的解决方法应该对Ubuntu的最近几个distribution都适用(我没有测试过,不成功轻锤 :-))
————————————————
版权声明:本文为CSDN博主「Jyh7」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_38066161/java/article/details/81812816