在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 

内核rt.spec我disbleed编译变体我不需要 – 即只编译rt和固件。 还定义不build立debuginfo。

编译完成后,我有~/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 ,但得到了相同的结果…

我究竟做错了什么? 我已经看到了这个问题 ,但是它暗示了我已经尝试过的东西,并且我想自己构build内核,而不是使用从SLC预build的内核。

如果您没有进行任何严格的驱动程序更改或其他优化,我仍然build议使用预编译的实时内核 ,但是如果您需要自行构build,请执行以下操作以生成正确的程序包。

 rpmbuild -ba --without debug kernel.spec 

这会build立你的内核。

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

这样就构build了kernel-rt-firmware软件包。

我自己没有尝试过,但是在问题中引用的回购中有一个rt固件SRPM。 build立可能提供依赖关系。

 cd ~/rpmbuild/SPECS rpmbuild -bb --without debug kernel-rt.spec --clean cd ~/rpmbuild/SPECS rpmbuild -bb --target noarch --with firmware --without debug --without doc --without perftool --without perf kernel-rt.spec --clean