我正在尝试编译 kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpmRHEL6 MRG 源 RPM在 Centos 6 x86_64 系统上。
这是我第一次这样做,所以我研究了如何正确地做到这一点。根据我的发现,我做到了:
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-2.6.33.9-rt31.75.el6rt.x86_64 需要 kernel-rt-firmware >= 2.6.33.9-rt31.75.el6rt
我期望它会显示在那里,但是却没有文件夹 ~/rpmbuild/RPMS/noarch。
另外,我尝试过rpmbuild --rebuild kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpm
,但得到了相同的结果......
我做错了什么?我见过这个问题,但它建议我已经尝试过的方法,我想自己构建内核,而不是使用 SLC 预先构建的内核。
答案1
我仍然建议使用预编译实时内核如果您没有进行任何重大的驱动程序更改或其他优化,但如果您需要构建自己的驱动程序,请执行以下操作来生成适当的软件包。
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 包。
答案2
我自己没有尝试过,但问题中引用的 repo 中有一个 rt-firmware SRPM。构建可能会提供依赖项。
答案3
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