编译Kernel 6.7.2时遭遇证书构建错误,寻求修复方案及内核升级指导
编译Kernel 6.7.2时遭遇证书构建错误,寻求修复方案及内核升级指导
嗨,别担心,你的英语完全没问题!我来帮你解决这个内核编译时遇到的证书错误,顺便给你梳理完整的内核升级步骤~
错误原因解析
你看到的No hay ninguna regla para construir el objetivo 'debian/canonical-certs.pem'(没有构建debian/canonical-certs.pem的规则),是因为Ubuntu/Debian系的内核默认会尝试加载Canonical官方的签名证书来验证内核模块,但你的编译环境里并没有这个文件,导致证书列表构建失败。
修复方案(两种可选)
方案1:临时跳过证书验证(快速解决,适合测试编译)
如果不需要内核模块签名功能,可以直接关闭相关配置:
- 方法A:用图形化配置工具修改
- 进入内核源码目录,执行命令打开配置界面:
make menuconfig - 依次展开
Cryptographic API->Certificates for signature checking - 把
Provide system-wide ring of trusted keys设置为n(取消勾选),同时将Require modules to be validly signed也设置为n - 保存配置并退出,然后重新执行编译:
make -j$(nproc)($(nproc)会自动用满CPU核心,加速编译)
- 进入内核源码目录,执行命令打开配置界面:
- 方法B:命令行直接修改配置(更快捷)
执行以下两条命令跳过证书校验:
之后重新编译即可。scripts/config --set-str SYSTEM_TRUSTED_KEYS "" scripts/config --set-str MODULE_SIG_KEY ""
方案2:配置自定义签名证书(保留模块签名功能)
如果需要内核模块签名,可以自己生成自签名证书:
- 在内核源码目录下生成密钥对:
openssl req -new -x509 -newkey rsa:4096 -keyout kernel_key.pem -out kernel_cert.pem -days 3650 -nodes -subj "/CN=Your Kernel Signing Key/" - 把生成的证书路径配置到内核:
scripts/config --set-str SYSTEM_TRUSTED_KEYS "kernel_cert.pem" scripts/config --set-str MODULE_SIG_KEY "kernel_key.pem" - 重新执行编译命令:
make -j$(nproc)
内核升级后续步骤
编译完成后,执行以下步骤完成内核安装和升级:
- 安装内核模块:
sudo make modules_install - 安装内核镜像到系统引导目录:
sudo make install - 更新GRUB引导配置:
sudo update-grub - 重启系统,之后用
uname -r命令检查内核版本,确认已经升级到6.7.2
备注:内容来源于stack exchange,提问作者Ricardo Andres Riquelme Rios
相关产品推荐
相关产品推荐

