Kernel
在 CentOS 6 上從 RHEL 6 MRG 源編譯實時核心
我正在嘗試從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。可能提供依賴的建築。