解决编译内核报错:No rule to make target ‘debian/canonical-certs.pem‘

解决编译内核报错:No rule to make target 'debian/canonical-certs.pem'问题

更换内核后重新编译内核报错1如下:

c 复制代码
make[1]: *** No rule to make target 'debian/canonical-certs.pem', needed by 'certs/x509_certificate_list'.  Stop.
make: *** [Makefile:1868: certs] Error 2

该错误提示缺少 debian/canonical-certs.pem 内核签名证书文件,这通常是因为内核编译过程中需要该证书文件来对内核进行签名,尤其是在启用 Secure Boot 或需要内核签名的情况下。

解决方案

如果你不需要内核签名或不打算使用 Secure Boot,你可以通过禁用内核的签名相关选项来绕过此问题。具体方法是使用内核配置工具禁用 SYSTEM_TRUSTED_KEYS,这会阻止内核编译过程中对证书文件的需求。执行以下命令来禁用证书签名验证:

c 复制代码
scripts/config --disable SYSTEM_TRUSTED_KEYS

执行完禁用签名验证的配置后,建议清理构建目录并重新编译内核:

c 复制代码
make clean
make mrproper
make

重新编译后报错情况2如下:

c 复制代码
make[1]: *** No rule to make target 'debian/canonical-revoked-certs.pem', needed by 'certs/x509_revocation_list'.  Stop.
make: *** [Makefile:1868: certs] Error 2

该错误提示缺少 debian/canonical-revoked-certs.pem 文件,这是内核编译过程中需要的 证书吊销列表 文件。这通常与 内核签名 和 证书吊销 机制相关。如果你不需要证书吊销的功能,或者不打算使用内核签名功能,你可以通过禁用 SYSTEM_REVOCATION_KEYS 配置选项来解决此问题。禁用该选项将阻止内核编译过程中要求证书吊销列表文件。执行以下命令来禁用证书吊销功能:

解决方案:

c 复制代码
scripts/config --disable SYSTEM_REVOCATION_KEYS

在禁用证书吊销功能后,建议清理构建目录并重新编译内核:

c 复制代码
make clean
make mrproper
make

最初遇到这个问题时,我尝试直接修改了 config 文件,但在重新执行 make 后,修改的配置会自动恢复为初始状态,无法保存我的修改。这个问题可能是由于内核构建系统会自动重置某些配置文件,导致修改无效。最终,通过命令直接禁用内核配置中的证书吊销功能,避免了编译过程中对缺失的 debian/canonical-revoked-certs.pem 文件的依赖,问题得以解决。

相关推荐
讯捷蓝达1 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
爱和冰阔落3 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
lisanmengmeng4 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮5 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
上火的金鱼妹5 小时前
k8s生产实际问题排查(网关,数据库读写等)
运维·服务器
孙克旭_5 小时前
k8s基础组件与创建资源
运维·docker·容器·kubernetes
孙克旭_5 小时前
云原生基础之Containerd容器运行时
运维·云原生
分布式存储与RustFS5 小时前
RustFS 自建对象存储实战目录:110 篇按场景分类(持续更新)
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
无忧_wy5 小时前
MoneyPrinterTurbo 自动化视频生成实战指南
运维·人工智能·自动化·音视频
木头左16 小时前
【Nginx】内网服务源 IP 白名单实战:动态域名解析放行网段 + 端口接管零改造
运维·nginx·白名单·反向代理