I'm trying to compile kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpm from RHEL6 MRG source RPMs on Centos 6 x86_64 system.
It's first time I'm doing this, so I did research on how to do this properly. From what I found, I did:
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
in kernel-rt.spec I've disbleed compilation of variants I don' need – ie compile only rt and firmware. Also defined not to build debuginfo.
After compilation finished, I've got in ~/rpmbuild/RPMS/x86_64/
two files:
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
but when I tried to install kernel, I got error message:
$ sudo rpm -ihv kernel-rt-2.6.33.9-rt31.75.el6rt.x86_64.rpm
error: Failed dependencies:
kernel-rt-firmware >= 2.6.33.9-rt31.75.el6rt is needed by kernel-rt-2.6.33.9-rt31.75.el6rt.x86_64
There was no folder ~/rpmbuild/RPMS/noarch – where I would expect it to show up.
Also, I've tried rpmbuild --rebuild kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpm
, but got same results…
What am I doing wrong?
I've seen this question, but it suggests what I tried already and I want to build kernel myself, not use pre-built from SLC.
Best Answer
I'd still recommend using the precompiled realtime kernels if you're not making any drastic driver changes or other optimizations, but if you need to build your own, do the following to generate the proper packages.
This builds your kernel.
This builds the kernel-rt-firmware package.