NetBSD 1.3.2からcurrentへの移行

NetBSD 1.3.2からNetBSD currentへ移行を行ったときの手順です。

単にcurrentへ移行するだけではなく、egcsやpmap.newへの移行も含んでいます。

その後での必要と思われる変更項目も含めています。

カーネル作成の前の準備

カーネルを作成するためのコマンドの準備を行います。

  1. /etc/mk.confへの設定の追加を行います。 以下の項目を追加します。
    USE_EGCS=YES
    PMAP_NEW=YES
    UVM=YES
    
    現在のcurrentのi386版ではデフォルトとなっているので、 特に追加する必要はありません。
  2. カーネルを作成できる様に、 config(8)のコンパイルとインストールを行います。
    	# cd /usr/src
    	# (cd usr.sbin/config; make depend && make && make install)
    
  3. カーネルのコンパイルには不要だったかもしれませんが、 make(1)のコンパイルとインストールを行います。
    	# (cd usr.bin/make; make depend && make && make install)
    

新しいカーネルのコンパイルとリブート

新しいkernelのコンパイルとリブートします。

	# cd sys/arch/i386/conf
	# config MYKERNEL	(自分で使うconfigのファイル)
	# cd ../compile/MYKERNEL
	# make depend && make
	# mv /netbsd /netbsd.old; mv netbsd /
	# reboot

ユーザ・ランドの更新

ユーザ・ランドの更新のための準備です。

  1. オプションの増えている、 install(1)のコンパイルとインストールを行います。
    	# cd /usr/src
    	# (cd usr.bin/xinstall; make depend && make && make install)
    
  2. オプションの増えているld(1)のコンパイルを行います。 増えているヘッダ・ファイルを先立って /usr/include以下にコピーします。
    	# cp include/dlfcn.h /usr/include
    	# (cd gnu/usr.bin/ld; make includes; cd ld; make install)
    
  3. 機能の増えている lex(1)のコンパイルとインストールを行います。
    	# cd /usr/src
    	# (cd usr.bin/lex; make depend && make && make install)
    
    これは1999年1月16日過ぎに加わった、 nsswitchの機能追加に伴うlexの変更です。 この手順を踏んで実際に移行を行ったわけではありません。
  4. 機能の増えている sh(1)のコンパイルとインストールを行います。
    	# cd /usr/src
    	# (cd cd bin/sh; make depend && make && make install)
    
    これは1999年1月28日過ぎに加わった、 sh(1)の変数解釈に関する変更です。 この手順を踏んで実際に移行を行ったわけではありません。
  5. makeの定義ファイルのインストールを行います。
    	# (cd share/mk; make install)
    
  6. egcsを使用する環境への以降のため、 先だってegcsのコンパイルとインストールを行います。
    	# (cd /usr/src/gnu/usr.bin/egcs; make; make install)
    
  7. egcsの使用に合わせてlibgccのコンパイルとインストールを行います。
    	# (cd /usr/src/gnu/lib/libgcc; make; make install)
    
  8. 不要となる古いg++のヘッダ・ファイルを削除しておきます。
    	# rm -rf /usr/include/g++
    
  9. インストールされないbfdライブラリを削除しておきます。
    	# rm -rf /usr/include/bfd
    
    これは2月上旬のbinutilsの更新に伴う変更を反映させたものです。
  10. ヘッダ・ファイルを更新します。
    	# make includes
    
  11. binutilsとbfdライブラリを先立ってコンパイルとインストールを行います。
    	# (cd usr/src/gnu/usr.bin/binutils; make)
    	# (cd usr/src/gnu/lib/bfd; make cleandir depend; make; make install)
    	# (cd usr/src/gnu/usr.bin/binutils; make; make install)
    
  12. ユーザ・ランドのコンパイルとインストールを行います。
    	# (cd /usr/src; make build)
    
  13. ブート・ローダの更新
    	# cd /usr/mdec
    	# ./installboot -v biosboot.sym /dev/rsd0a
    
    /dev/rsd0aは、 ルート・ファイルシステムのrawデバイスのパス名です。 これを実行した後はFDISKパーティションのパーティションIDを、 165(旧NetBSD and FreeBSD)から169(現NetBSD)に変更できます。

その他

重要なポイントには以下の点があります。

謝辞

やまの ゆうじさんに、 情けないtypoの存在を御連絡して頂きました。

目次へ コメントの送付


Copyright (C) 1999, 2000, 2001, 2002, 2003
Takahiro Kambe. All rights reserved.