OpenBSDパッチ&&カーネル メンテ

JUGEMテーマ:コンピュータ


パッチの情報がたまにでているのでパッチブランチかパッチを当てる。

GENERICカーネルならパッチブランチからとってくればいいと
おもうのだが、偏屈なうちのマシンではカスタマイズしてるの
でひとつひとつ取り込んであてることにした。

数もかぎられてるのであまりその辺は
苦労しないのだけどむしろ忘れてしまうのでメモ。
��ソースに手を加えてたら別の話。というかリリース自体独自扱いでは)

□パッチをあてる
□パッチをあてたら
パッチファイル内の手順にしたがって
◆カーネルの再コンパイル必要ー>再コンパイル
あるいは
◆モジュールのビルド
をおこなう。

例:

016: SECURITY FIX: October 8, 2007 All architectures
Malicious DHCP clients could cause dhcpd(8) to corrupt its stack
A DHCP client that claimed to require a maximum message size less
than the minimum IP MTU could cause dhcpd(8) to overwrite stack memory.
A source code patch exists which remedies this problem.


このファイルを開くと
Apply by doing:
cd /usr/src
patch -p0 < 016_dhcpd.patch

And then rebuild and install file:
cd usr.sbin/dhcpd
make obj
make cleandir
make depend
make
make install

Index: usr.sbin/dhcpd/options.c
....
とあるので、 /usr/src/016_dhcpd.patchにファイルが
あればそのまま実行する。

Apply by doingにしたがってコマンドをうって
rebuild and install fileにしたがってコマンドをうつ。

ものによってはAnd then rebuild your kernel.と
指示しているものもあるのでそのときはカーネルのリビルドを実行。

カーネルの再構築

# cd /usr/src/sys/arch/i386/conf
# /usr/sbin/config GENERIC
# cd /usr/src/sys/arch/i386/compile/GENERIC
# make clean && make depend && make

i386とかGENERICなどは適宜読み替え。

こんなかんじでおわってりゃ成功。

ld -Ttext 0xD0200120 -e start -N -S -x -o bsd ${SYSTEM_OBJ} vers.o
text data bss dec hex
4148869 113696 867536 5130101 4e4775

もちろん置き換える。

# cp /bsd /bsd.old 古いファイルのバックアップ
# cp bsd /bsd 上書きコピー
# reboot

カーネルカスタマイズにかんしては
HRK's OpenBSD Memo - カーネルをカスタマイズする


5.1 - OpenBSD's Flavors

サポートポリシーからすると4.0はもうおわってるのか orz.
そろそろ4.2以降移行しないといかんが。。マシン自体も変えたい。

コメント

このブログの人気の投稿

4.3.0 Temporary Lookup Failureでドツボってた話

tomcat起動時の環境変数でJRE_HOMEを指定するときに

何が得られて何処へ向かうかだけを問うべき