修正したリリースの作成
NetBSDの動作条件で書きましたように、さくらのVPS 512で動作させるためにはカーネルの修正が必要です。
ソースコードの修正
以下の2つの修正を行います。
if_wm.cのパッチ
wm(4)の本体であるif_wm.cのパッチです。wm(4)はインテルのi8254xをベースとしたギガビットイーサネットのドライバーで、EEPROMの内容の読み書きを行う部分の修正です。
ダウンロード: if_wm.c.diff.bz2
パッチを表示
Index: sys/dev/pci/if_wm.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_wm.c,v retrieving revision 1.1.1.24 retrieving revision 1.1.1.1.2.20 diff -u -u -r1.1.1.24 -r1.1.1.1.2.20 --- sys/dev/pci/if_wm.c 29 Nov 2011 01:12:03 -0000 1.1.1.24 +++ sys/dev/pci/if_wm.c 30 Nov 2011 06:28:12 -0000 1.1.1.1.2.20 @@ -4588,6 +4588,14 @@ reg = CSR_READ(sc, WMREG_EECD) & ~(EECD_SK | EECD_DI); CSR_WRITE(sc, WMREG_EECD, reg); + /* XXX: workaround for a bug in qemu-0.12.x and prior */ + reg |= EECD_SK; + CSR_WRITE(sc, WMREG_EECD, reg); + reg &= ~EECD_SK; + CSR_WRITE(sc, WMREG_EECD, reg); + delay(2); + /* XXX: end of workaround */ + /* Set CHIP SELECT. */ reg |= EECD_CS; CSR_WRITE(sc, WMREG_EECD, reg);
リリースの作成
ソースコードを修正したら、後はいつものようにbuild.shスクリプトでリリースを作成します。次はamd64版を作成する場合の一例です。
# build.sh -m amd64 -D /work/amd64/tree -O /work/amd64/obj -R /data/release
これでエラーがなければ/data/release以下に、NetBSDのrelease(7)に基づいた構成のリリースを作成できます。