NetBSD/hpcmipsのアップグレード

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プログラムの使用メモリが膨大に増幅し,実行時エラーが発生し,r430がキーボード入力を受け付けなくなった.

そこで,supをあきらめanoncvsでソースの取得をした.

Anonymous CVSによるファイル取得

  1. cvsコマンドのインストール cvsコマンドがインストールされていなければ,pkg_addでcvsをインストール.

  2. anoncvsにログインする

     # cvs -d :pserver:anoncvs@anoncvs.jp.netbsd.org:/cvs/cvsroot login
    

    パスワードは「anoncvs」

  3. checkout NetBSD-currentの最新ソースコードをcheckoutする.

     # cvs -d :pserver:anoncvs@anoncvs.jp.netbsd.org:/cvs/cvsroot co src
    
  4. 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)はエラーで閲覧できず.