Kernel

在 CentOS 6 上從 RHEL 6 MRG 源編譯實時核心

  • November 13, 2012

我正在嘗試從Centos 6 x86_64 系統上的RHEL6 MRG 源 RPM編譯 kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpm。

這是我第一次這樣做,所以我研究瞭如何正確地做到這一點。根據我的發現,我做了:

rpm -ihv kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpm 
cd ~/rpmbuild/SPECS
nano kernel-rt.spec 
rpmbuild -bb kernel-rt.spec 2> build-err.log | tee build-out.log

在 kernel-rt.spec 我已經禁用了我不需要的變體的編譯 - 即只編譯 rt 和韌體。還定義為不建構調試資訊。

編譯完成後,我有~/rpmbuild/RPMS/x86_64/兩個文件:

kernel-rt-2.6.33.9-rt31.75.el6rt.x86_64.rpm
kernel-rt-devel-2.6.33.9-rt31.75.el6rt.x86_64.rpm

但是當我嘗試安裝核心時,我收到錯誤消息:$ sudo rpm -ihv kernel-rt-2.6.33.9-rt31.75.el6rt.x86_64.rpm 錯誤:依賴項失敗:kernel-rt-firmware >= 2.6.33.9 kernel-rt-2.6.33.9-rt31.75.el6rt.x86_64需要-rt31.75.el6rt

沒有文件夾 ~/rpmbuild/RPMS/noarch - 我希望它出現在哪裡。

另外,我試過rpmbuild --rebuild kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpm了,但得到了相同的結果……

我究竟做錯了什麼?我已經看過這個問題,但它表明我已經嘗試過並且我想自己建構核心,而不是使用從 SLC 預先建構的。

如果您沒有進行任何劇烈的驅動程序更改或其他優化,我仍然建議使用預編譯的實時核心,但如果您需要建構自己的,請執行以下操作以生成正確的包。

rpmbuild -ba --without debug kernel.spec

這將建構您的核心。

rpmbuild -ba --target noarch --with firmware --without debug --without doc --without perftool --without perf kernel.spec 

這將建構 kernel-rt-firmware 包。

我自己沒有嘗試過,但是問題中引用的 repo 中有一個 rt-firmware SRPM。可能提供依賴的建築。

引用自:https://serverfault.com/questions/331352