编译内核 5.11.11

She*_*med 13 compiling kernel

在 ubuntu 20.04 LTS 中;添加新系统调用后,我正在编译最新的内核 5.11.11,在执行 make 命令期间出现此错误:

make[1]: *** No rule to make target 'debian/canonical-certs.pem', needed by 'certs/x509_certificate_list'.  Stop.
make: *** [Makefile:1809: certs] Error 2
Run Code Online (Sandbox Code Playgroud)

如果有人可以提供帮助,我将不胜感激,谢谢。

Dou*_*ies 21

在您的内核配置文件中,您会发现这一行:

CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
Run Code Online (Sandbox Code Playgroud)

改成这样:

CONFIG_SYSTEM_TRUSTED_KEYS=""
Run Code Online (Sandbox Code Playgroud)

根据您的源结构,您可以通过命令行来完成。例子:

scripts/config --disable SYSTEM_TRUSTED_KEYS
Run Code Online (Sandbox Code Playgroud)

或者

scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
Run Code Online (Sandbox Code Playgroud)


小智 8

好吧,我刚刚生成了一个自签名的 x509 证书,其公用名作为我的名字,将密钥和证书放在同一个文件中,并将两行都指向该文件。编译完美,安全性应该完好无损。我假设它用于签署内核二进制文件,您可以在安全启动中将您的证书列入白名单,以允许您的内核启动。

openssl req -x509 -newkey rsa:4096 -keyout certs/mycert.pem -out certs/mycert.pem -nodes -days 3650
Run Code Online (Sandbox Code Playgroud)
CONFIG_MODULE_SIG_KEY="certs/mycert.pem"
CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_SYSTEM_TRUSTED_KEYS="certs/mycert.pem"
CONFIG_SYSTEM_EXTRA_CERTIFICATE=y
CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=4096
CONFIG_SECONDARY_TRUSTED_KEYRING=y
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
Run Code Online (Sandbox Code Playgroud)


小智 5

运行“make menuconfig”后只需执行以下两个命令

scripts/config --disable SYSTEM_TRUSTED_KEYS
scripts/config --disable SYSTEM_REVOCATION_KEYS

Run Code Online (Sandbox Code Playgroud)

“make”命令运行时,如果出现任何与证书相关的问题,只需按Enter即可。就是这样。