web-dev-qa-db-ja.com

CentOS6でRHEL6MRGソースからリアルタイムカーネルをコンパイルする

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とファームウェアのみをコンパイルします。また、debuginfoをビルドしないように定義されています。

コンパイルが終了した後、私は~/rpmbuild/RPMS/x86_64/2つのファイルを取得しました。

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 -rt31.75.el6rtはカーネルに必要です-rt-2.6.33.9-rt31.75.el6rt.x86_64

フォルダー〜/ rpmbuild/RPMS/noarch-が表示されると予想される場所はありませんでした。

また、rpmbuild --rebuild kernel-rt-2.6.33.9-rt31.75.el6rt.src.rpmを試しましたが、同じ結果が得られました...

私は何が間違っているのですか?私は この質問 を見てきましたが、それは私がすでに試したことを示唆しており、SLCから事前に構築されたものを使用せずに自分でカーネルを構築したいと思います。

3
sashk

ドライバーを大幅に変更したり、その他の最適化を行ったりしない場合は、 プリコンパイル済みリアルタイムカーネル を使用することをお勧めしますが、独自にビルドする必要がある場合は、次の手順を実行して適切なパッケージを生成します。

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パッケージがビルドされます。

3
ewwhite

私はこれを自分で試したことはありませんが、質問で参照されているリポジトリにrt-firmwareSRPMがあります。依存関係を提供する可能性のあるビルド。

1
Staffan Tj