[Tomoyo-dev 68] Re: カーネルのコンパイルにチャレンジされたい方はいらっしゃいますか?

Back to archive index

Tetsuo Handa from-****@I-lov*****
2007年 3月 24日 (土) 14:07:42 JST


 熊猫です。

> で、rpm版のコンパイルですが成功しました。
おめでとうございます。

では、次は TOMOYO パッチを当ててコンパイルする手順ですね。
以下は SuSE 10.2 の場合です。( SuSE 10.1 もほとんど同じです。)

まず、 /usr/src/packages/SOURCES/kernel-default.spec を
適当な場所にコピーしてください。例えば

cp -p /usr/src/packages/SOURCES/kernel-default.spec ~/kernel-2.6.18.8-0.1-default_tomoyo_1.4.spec

のようにします。
次に、 kernel-2.6.18.8-0.1-default_tomoyo_1.4.spec を開きます。


ファイルの先頭のほうにある Release: で始まる場所へジャンプしてください。
そして、 Release: の値を 0.1 から 0.1_tomoyo_1.4 に変更してください。
この作業は、ディストリビュータのカーネルと TOMOYO パッチを当てたカーネルを
区別できるようにするために必要です。


次に、 %define tolerate_kabi_changes で始まる場所へジャンプしてください。
そして、 %define tolerate_kabi_changes の値を 31 に変更してください。
(最初から 31 になっている場合は変更しないで大丈夫です。)


次に %build という場所へジャンプしてください。
そして、 cd linux-2.6.18 という行と cp .config .config.orig という行の間に

# TOMOYO Linux
tar -zxf %_sourcedir/ccs-patch-1.4-20070401.tar.gz
patch -sp1 < ccs-patch-2.6.18.8-0.1_SUSE.txt
cat config.ccs >> .config

という4行を挿入してください。
この作業は、 TOMOYO パッチを展開して適用するために必要です。
config.ccs は ccs-patch-1.4-20070401.tar.gz の中に含まれており、
TOMOYO のデフォルト値が記録されています。
config.ccs の内容を .config に追加することにより、
make silentoldconfig や make nonint_oldconfig の実行時に
TOMOYO の指定が行われていないことが原因のエラーが発生するのを
回避することができます。
%_sourcedir は( SuSE 10.2 の場合、) /usr/src/packages/SOURCES として処理されます。


ファイルの最後のほうにある %changelog という場所へジャンプしてください。
そして、最初と最後のログだけを残して、その間のログは削除してください。
この作業は、 sourceforge.jp のトラッキングシステムに登録する際のファイルサイズの
制限をクリアするためだけのものであり、トラッキングシステムに登録しないのであれば不要です。
既に公開されているバイナリ RPM パッケージ用の SPEC ファイルは
http://sourceforge.jp/tracker/?atid=7342&group_id=1973&func=browse にあります。


以上の修正を行ったら kernel-2.6.18.8-0.1-default_tomoyo_1.4.spec を保存します。

ccs-patch-1.4-20070401.tar.gz を /usr/src/packages/SOURCES/ ディレクトリに置いてください。
まだ ccs-patch-1.4-20070401.tar.gz はリリースされていないので
以下のように subversion から取得して作成します。

wget -O ccs-patch.tar.gz 'http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/trunk/ccs-patch.tar.gz?root=tomoyo&view=tar'
tar -zxf ccs-patch.tar.gz
cd ccs-patch
tar -zcf /usr/src/packages/SOURCES/ccs-patch-1.4-20070401.tar.gz -- *

あとは、

rpmbuild -bb ~/kernel-2.6.18.8-0.1-default_tomoyo_1.4.spec

のようにすれば TOMOYO パッチを適用したバイナリカーネルパッケージが作成されます。

実は、修正済みの kernel-2.6.18.8-0.1-default_tomoyo_1.4.spec は
上記アドレスからダウンロードした ccs-patch.tar.gz の中に含まれています。
オリジナルの /usr/src/packages/SOURCES/kernel-default.spec と比較してみると
どのように変更すればよいのかが判ることでしょう。

では、頑張ってください。




tomoyo-dev メーリングリストの案内
Back to archive index