NetBSD/hpcmipsのアップグレード
背景
NEC モバイルギアII R430にNetBSD/hpcmips 1.5.2をインストールし,
-
ネームサーバ(named)
-
DHCPサーバ(dhcpd)
-
httpサーバ(apache)
を動かしていた.ホスト名はr430である.しかし,その時期は短く現在は全く使っていない.
そこで,現在のサーバー群の補助として使おうかと考え,NetBSDを1.7にアップグレードすることにした.
事前設定
アップグレードするには,「バイナリーインストール」と「ソースからコンパイルする」方法がある.今回は,「ソースからコンパイルする」方法を試すことにした.
r430にはIBM MicroDrive 340MBを載せ,NetBSDを使っているが,これではディスク容量が足りないため,ソースのコンパイルはできない.そこで,コンパイルに必要な/usr/src, /usr/sup等のディレクトリをNFS上に作ることにした.
r430でNFSクライアントを起動するように設定する.
[/etc/rc.conf]
nfs_client=YES
NFSサーバーはFreeBSDで,/export/share/NetBSD-R430を使えるように設定しているので,以下のようにマウントする.
$ mount -t nfs freebsd:/export/share/NetBSD-R430 /dsk2
r430では,以下のようにsymbolic linkが貼られている.
$ ls -l /usr
lrwxr-xr-x 1 root wheel 20 Jun 6 2002 pkgsrc -> /dsk2/hpcmips/pkgsrc
lrwxr-xr-x 1 root wheel 17 May 18 2002 src -> /dsk2/hpcmips/src
lrwxr-xr-x 1 root wheel 17 May 18 2002 sup -> /dsk2/hpcmips/sup
上記のように設定しているため,以下のようにディレクトリを作る.
$ mkdir -p /dsk2/hpcmips/pkgsrc
$ mkdir -p /dsk2/hpcmips/src
$ mkdir -p /dsk2/hpcmips/sup
ファイルの取得
supによる取得
supコマンドにより「release 1.6」のソースを取得する.そのためのファイルを作成する.
[/root/supfile-rel]
release-1-6 release=allsrc host=sup.jp.NetBSD.org \
base=/usr prefix=/usr \
backup use-rel-suffix delete compress
次のコマンドでソースを取得する.
# sup -fv /root/supfile-rel
そこで,supをあきらめanoncvsでソースの取得をした.
Anonymous CVSによるファイル取得
-
cvsコマンドのインストール cvsコマンドがインストールされていなければ,pkg_addでcvsをインストール.
-
anoncvsにログインする
# cvs -d :pserver:anoncvs@anoncvs.jp.netbsd.org:/cvs/cvsroot login
パスワードは「anoncvs」
-
checkout NetBSD-currentの最新ソースコードをcheckoutする.
# cvs -d :pserver:anoncvs@anoncvs.jp.netbsd.org:/cvs/cvsroot co src
-
update checkoutしたmoduleを最新のものに同期させる.checkoutしたディレクトリーで以下のコマンドを実行する.
# cvs update -P -d
updateオプション-P,-dは指定する必要がないかも,というか,CVSディレクトリが作成されずupdate自体できない.マスターcvsリポジトリ(anoncvs.netbsd.org)でも同様な結果となる
コンパイル
ユーザーランドのコンパイル
ユーザーランドのコンパイル.
# ./build.sh distribution
ktraceのコンパイルのところでエラーが出ます.(2003/6/14) usr.bin/ktrace にktraceがディレクトリとして存在しているためエラーが出ているようです.そこで,usr.bin/ktrace/ktrace/ を削除してコンパイルを再開させます.
# rm -rf /usr/src/usr.bin/ktrace/ktrace
# cd /usr/src
# ./build.sh distribution
以下も同様に処理する.
-
usr.bin/man/man
-
usr.sbin/mrouted/mrouted
こんなエラーが出てします.(2003/6/15)どうすればいいんだ〜.だれかおしえて. それにしても,Self Compileは時間がかかる.ここまでくるのに10時間以上かかったよ.(適当に改行を入れています)
/dsk2/hpcmips/src/tools/obj/tools.NetBSD-1.5.2-mipsel/bin/mipsel--netbsd-gcc -O2 -DALL_STATE -DUSG_COMPAT -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wno-uninitialized -Wreturn-type -Wswitch -Wshadow -Werror -D_LIBC -DLIBC_SCCS -DSYSLIBC_SCCS -D_REENTRANT -I/dsk2/hpcmips/src/lib/libc/include -DHESIOD -DINET6 -DNLS -DYP -D__DBINTERFACE_PRIVATE -I/dsk2/hpcmips/src/libexec/ld.elf_so -I/dsk2/hpcmips/src/lib/libc/dlfcn -DI18NMODULE_MAJOR=4 -DWITH_RUNE -I/dsk2/hpcmips/src/lib/libc -DRESOLVSORT -I. -DPOSIX_MISTAKE -DPORTMAP -DFLOATING_POINT -nostdinc -isystem /dsk2/hpcmips/src/destdir.hpcmips/usr/include -c -D_I18N_DYNAMIC /dsk2/hpcmips/src/lib/libc/gen/fmtcheck.c -o fmtcheck.so mipsel--netbsd-gcc: Internal compiler error: program cc1 got fatal signal 9 *** Error code 1
参考リンク
- NetBSDドキュメント この中に「NetBSD-currentの追跡」がある.これを参照.しかし,現在(2003/6/15)はエラーで閲覧できず.