2017-03-28 52 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