我是新手,经常发帖提问,但在 askubuntu 论坛上读了很多。我对 linux 的了解不算专业,但还算过得去。我是一名日常用户,我所有的电脑都使用 xubuntu。今天我有一个问题,我在论坛或万能的谷歌上都找不到帮助...
我的问题:我正在新硬件上设置 Xubuntu 16.04。主板上的电源管理芯片驱动程序在源代码中不可用,所以我必须自己添加它。名字是 ftsteutates。源代码和 make 文件由富士通西门子提供。我信任源代码,并希望避免关于签署模块的政治讨论。
我将所有东西都解压到一个新文件夹中并运行,没有任何错误:
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
之后,文件夹中会出现 ftsteutates.ko,然后我运行
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install
并收到错误消息:
root@HoSe:~/HomeServer/ftsteutates# make -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install
make: Entering directory '/usr/src/linux-headers-4.4.0-36-generic'
INSTALL /home/martin/HomeServer/ftsteutates/ftsteutates.ko
At main.c:222:
- SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
sign-file: certs/signing_key.pem: No such file or directory
DEPMOD 4.4.0-36-generic
make: Leaving directory '/usr/src/linux-headers-4.4.0-36-generic'
我从消息中得知,make 命令正在尝试对模块进行签名,但找不到signed_key.pem。
我读了一些关于签名密钥的内容,发现该标志
CONFIG_MODULE_SIG_ALL=yes
在内核的配置文件中意味着所有模块将在 make ... modules_install 调用期间自动签名。显然,这在我的案例中不起作用,我不明白为什么。
此外,配置文件还包含
CONFIG_SYSTEM_TRUSTED_KEYS='certs/signing_key.pem'
我检查了此文件,但系统中没有找到它。从https://www.kernel.org/doc/Documentation/module-signing.txt我想它应该在那里。
而且,我不知道这两条 SSL 错误消息的背景,也没有通过搜索找到任何相关信息。
我现在陷入了困境。有人能给我一些提示,告诉我该读什么以及如何解决这个问题吗?
问候马丁
编辑:我也尝试在笔记本电脑上安装 Xubuntu 15.10。类似的问题。Make ... modules 工作正常。在 make ... modules_install 中:没有 SSL 错误,也没有关于 signature_key.pem 的抱怨,但消息是:
Can't read private key.
答案1
您缺少用于对模块进行签名的签名密钥:sign-file: certs/signing_key.pem: No such file or directory
。
您有两个选择:要么禁用模块签名,要么创建可用于对模块进行签名的密钥。我建议按照此处所述创建密钥: 没有 OpenSSL 签名文件 signature_key.pem 导致加载内核模块时出错
需要在 中创建密钥/lib/modules/$(uname -r)/build/certs
。