2017-03-28 51 views
2

当前正在运行CENTOS 7机器,试图安装lttng-toolslttng-moduleslttng:无法列出内核事件:内核跟踪器不可用

我正在经历所需的步骤,以便在位于http://lttng.org/docs/v2.9/的计算机上获得lttng安装,并且我几乎每一步都遇到了问题。我现在的问题是安装lttng-modules。我试图运行的集中提供安装lttng-modules命令:

cd $(mktemp -d) && 
wget http://lttng.org/files/lttng-modules/lttng-modules-latest2.9.tar.bz2 && 
tar -xf lttng-modules-latest-2.9.tar.bz2 && 
cd lttng-modules-2.9.* && 
make && 
sudo make modules_install && 
sudo depmod -a 

对此我收到错误“Can't read private key”之后INSTALL /probe/path/name/probe_name.ko用于探测的完整列表。我阅读了自述文件,并确保正确设置了OS配置变量依赖关系。从这里,我完全不确定,任何帮助,将不胜感激。

终端输出的一个片段如下:

Can't read private key 
    INSTALL /tmp/tmp.frbWYvVaL8/lttng-modules-2.9.1/probes/lttng-probe-x86-exceptions.ko 
Can't read private key 
    INSTALL /tmp/tmp.frbWYvVaL8/lttng-modules-2.9.1/probes/lttng-probe-x86-irq-vectors.ko 
Can't read private key 
    INSTALL /tmp/tmp.frbWYvVaL8/lttng-modules-2.9.1/tests/lttng-clock-plugin-test.ko 
Can't read private key 
    INSTALL /tmp/tmp.frbWYvVaL8/lttng-modules-2.9.1/tests/lttng-test.ko 
Can't read private key 
    DEPMOD 3.10.0-327.el7.x86_64 
make[1]: Leaving directory `/usr/src/kernels/3.10.0-327.el7.x86_64' 
+0

dadrexel,您是否使用Secureboot?当你建立外部模块,并且您的内核已经签署,您必须登录与您的MOK关键的模块,但如果你的内核是从CentOS的,你有没有高手你有两个变种:1)禁用安全启动和模块签名(CONFIG_MODULE_SIG_FORCE - http://askubuntu.com/questions/755238)或2 )使用您自己的私钥对模块(和内核)进行签名,然后使用mokutil将此密钥安装到UEFI中:http://lxr.free-electrons.com/source/Documentation/module-signing.txt?v=4.8 – osgx

回答

0

这听起来像启用Linux的模块签名(在http://lxr.free-electrons.com/source/Documentation/module-signing.txt?v=4.8文件化),这通常被接通现代启用Secureboot-UEFI系统。您的引导加载程序(shim-signed或其他)使用某些UEFI预安装的(可信的)OEM/KEK密钥进行签名,Shim预先安装了一些操作系统供应商密钥,供应商的内核和模块使用操作系统供应商密钥(更多位于https://wiki.ubuntu.com/SecurityTeam/SecureBoot)签名。您的内核可能启用了CONFIG_MODULE_SIG_FORCE(因为它在ubuntu https://askubuntu.com/questions/755238中完成),并且不会加载未签名的模块(或使用非可信密钥签名的模块)。

如果您不是操作系统发行版的作者,那么您没有操作系统供应商私钥来签署模块。并且该消息表示您没有任何密钥来签署模块。

你有几个变种:​​

  • 试图找到在您的操作系统所需的模块(预生成和操作系统供应商签署)。如果没有所需的模块,请尝试要求操作系统供应商将其包含在内(或向他们付钱以用他们的密钥签署您的模块)。 (RedHat在EfficiOS的帮助下于2015年为RHEL7做了一些lttng:https://developers.redhat.com/blog/2015/07/09/lttng-packages-available-for-rhel-7/“现在可用于Red Hat Enterprise Linux 7的LTTng软件包” - 可能仍然在packages.efficios.com门户上发布,可能与CentOS兼容)
  • Make your own关键层次。您不能将任何密钥添加到由供应商签名的内核二进制文件中,但内核将允许您使用MOK密钥对模块进行签名。所以你需要创建你的密钥,并将其安装到垫片中(mokutil,它将作为可信的if recorded in hardware store - UEFI密钥数据库添加到内核中),用它签署新模块(原始内核和OS模块将与OS供应商密钥一起工作)。
  • 不安全:禁用安全启动和使用(自定义编译?)内核所需的模块签名和注册自己的密钥为可信(这should be listed in cat /proc/keyskeyctl list %:.system_keyring),并签署
  • 不安全内核的所有模块,不推荐,只能用作测试PC上的临时解决方案 PC:禁用安全引导并禁用模块签名(禁用CONFIG_MODULE_SIG_FORCE)并使用(自定义编译或来自OS供应商(如果具有此类版本)内核)。

有来自操作系统供应商的一些应用手册有关模块签名:

  • https://docs.fedoraproject.org/en-US/Fedora/23/html/System_Administrators_Guide/sect-signing-kernel-modules-for-secure-boot.html的Fedora发行版包括签署引导加载程序,签署内核,并签署内核模块另外,签订第一阶段引导加载程序和签名的内核包含嵌入式Fedora公共密钥...这些部分还提供了可用选项的总览,以便将您的公钥导入要部署内核模块的目标系统上。启用安全引导时,EFI操作系统引导加载程序,Red Hat Enterprise Linux内核和所有内核模块必须使用私钥进行签名并使用相应的公钥进行身份验证。红帽企业Linux 7发行版包括签名的引导加载程序,签名的内核和签名的内核模块。另外,签名的第一阶段启动加载器和签名的内核包含嵌入式红帽公钥。 ..这些部分还提供了可用选项的总览,以便将您的公钥导入要部署内核模块的目标系统。
+0

在Fedora上注册密钥('mokutil --import')和签名模块的例子(CentOS,RHEL和Fedora是相关的和相似的):http://www.pellegrino.link/2015/11/29/signing-nvidia-privacy -dr iver-on-fedora.html – osgx

+0

同时检查http://stackoverflow.com/a/27519206 - 当完整的内核被重新编译时,可以有密钥生成;如果你的情况是这样的,只需使用密钥重新编译内核并签署/将此新密钥安装为/使用MOK。 – osgx