Kenji Arisawa
E-mail: arisawa@aichi-u.ac.jp
Aichi University
Kurozasa 370, Miyoshi-cho
Aichi, Japan
 Plan9端末のシステム設定 
2001/06/09 更新
単なるメモでごめんなさいネ...
目次
-  ユーザ登録
-  時刻の設定
-  Plan9.iniの設定
-  VGAのハードウェアアクセラレーション
-  ホスト名の設定
-  ネットワーク設定
-  安全運転
ユーザ alice を登録する
	disk/kfscmd 'users alice'
すると
	/adm/users
	/usr/alice/
が作成される。この後は alice としてログインし
	/sys/lib/newuser
と
	mail -c
を実行する。これによって、各々
	/usr/alice/tmp
	/usr/alice/lib/*
	/usr/alice/bin/*
および
	/mail/box/alice/*
が作成される。
ユーザ none のホームディレクトリも作成しておいた方が良い。
/adm/users には既に登録されているので、
none でログインして
	/sys/lib/newuser
	/mail -c
を実行する。
BIOS で時刻を合わせる。端末の場合には日本時間で構わない。
/adm/timezone/local の内容を日本に設定する
cd /adm/timezone; cp Japan local
時刻同期は timesync が行っている。
(ps を実行すると timesync が見えるであろう)
/bin/termrc の中を見ると
aux/timesync -rL
がマシンの立ち上げ時に実行されるようになっているのが確認
できるであろう。
timesync のオプション r は端末に内蔵されている時計を利用する事を
L は、これが Local time である事を伝えている。
筆者が自宅で使用している plan9.ini は
	*nomp=1
	distname=plan9
	monitor=xga
	vgasize=1024x768x24
	mouseport=ps2
	bootargs=local!#S/sdD1/fs
	bootfile=sdD1!9fat!9pcdisk
	ether0=type=ne2000 port=0x300 irq=10
	ipconfig=local
	hwaccel=on
となっている。
筆者の plan9 のファイルシステムは IDE#3 に置かれているので
sdD1 になっている。
このうち、最後の2つ(ipconfigとhwaccel)は筆者の工夫であり
後で説明する。(これらの設定は環境変数として引き継がれる)
VGAのハードウェアアクセラレーションが使えるか否かは使い心地に
大きく影響する。この設定は /bin/termrc で行う。
アクセラレーションを指定したものの、うまく動作しない場合には
ファイル編集が非常に困難になる(従って termrc の編集が困難になる)ので
ひと工夫が必要である。
筆者の場合には次の様にしている。
	if(! ~ $monitor '' && ! ~ `{cat /dev/user} none){
		aux/vga -l $vgasize
		# turn off hardware acceleration until you know it's ok.
		if(~ $hwaccel on)
			echo -n 'hwaccel on' >'#v/vgactl' >[2]/dev/null
		if not
			echo -n 'hwaccel off' >'#v/vgactl' >[2]/dev/null
つまりこのコントロールを plan9.ini で行える様にするのである。
現在のホスト名は
term% cat /dev/sysname
で確認できる。
ネットワークを使用しない場合にはホスト名を設定する必要はない。
Plan9 ではホスト名はネットワークカードのMACアドレスを通じて
認識される。
認識された MAC アドレスは /net/ether0/addr を見れば判明する。
筆者の自宅のマシン(ホスト名 pc)の /lib/ndb/local の内容は
以下の通りである。(一部のみを切り出した。)
ipnet=home ip=192.168.1.0 ipmask=255.255.255.0
        ipgw=192.168.1.254
ip=192.168.1.2     ether=0000f45d42c5   sys=pc
        dom=pc.aichi-u.ac.jp
        bootf=/386/9pcdisk
        proto=il
        auth=hera
この内、
bootf は単体システムでは使用されない。
proto も単体システムでは使用されない。
筆者の場合には大学の CPU システムに繋げるので auth によって
認証サーバが指定されているが、そうでない場合には auth は必要が
ない。
ネームサーバは
dom=
        ns=aucc.aichi-u.ac.jp
        ns=....
dom=aucc.aichi-u.ac.jp ip=202.16.124.1
dom=...
のように指定する。
TCP で接続するホストには例えば
sys=bell
        dom=plan9.bell-labs.com
        ip=204.178.16.2
        proto=tcp
のように指定する。
sysの値はホストのニックネームであり、ドメインのホスト名と一致させる
必要はない。
proto の値は 9fs コマンドでプロトコルの指定を省略した時に使用される。
ホストの IP アドレスなどは(DHCPサービスを受けない場合には)
ホスト名と /lib/ndb/local の内容比較によって決定されている。
この決定は /bin/termrc の中で行われている。
筆者の場合には plan9.ini で
	ipconfig=local
を設定し、/bin/termrc は以下のようしている。
# cs sets sysname
ndb/cs
sysname=`{cat /dev/sysname}
...
# start ethernet if any; ignore errors
switch($ipconfig){
case local
        eval `{ndb/ipquery sys $sysname ip ipgw ipmask}
        ip/ipconfig -g $ipgw ether /net/ether0 add $ip $ipmask
case *
        ip/ipconfig >/dev/null >[2=1]
}
ndb/dns -r
なお現在の IP アドレスは
term% cat /net/tcp/0/local
192.168.1.2!23565
term%
で判明する。
万が一の安全のために、ファイルシステムへのアクセスの別ルートを確保し
ておきましょう。
カーネルを自分で再コンパイルする場合には絶対に必要です。
ファイルシステムをマウントするのに必要なもの全てを FD に入れるには
以下のディレクトリを作成し
term% .make
を実行すればよい。
ディレクトリとファイルの内容
term% ls -l
--rwxr-xr-x M 3 arisawa arisawa     70 Jun  2 21:16 .make
--rw-rw-r-- M 3 arisawa arisawa 470306 Jun  2 21:17 9pcdisk.gz
--rw-rw-r-- M 3 arisawa arisawa    196 Jun  2 21:32 plan9.ini
term% cat .make
#!/bin/rc
#
#       execute this file in this directory to create a disk.
#       files begining with `.' will not be copied.
#
disk/format -b /386/pbs -f -d /dev/fd0disk /386/9load [~.]*
term% cat plan9.ini
*nomp=1
distname=plan9
monitor=xga
vgasize=1024x768x24
mouseport=ps2
bootargs=local!#S/sdD1/fs
bootfile=fd0!dos!9pcdisk.gz
ether0=type=ne2000 port=0x300 irq=10
ipconfig=local
hwaccel=on