Kenji Arisawa
E-mail: arisawa@aichi-u.ac.jp
Aichi University
Kurozasa 370, Miyoshi-cho
Aichi, Japan

Plan9端末のシステム設定

2001/06/09 更新
単なるメモでごめんなさいネ... 目次
  1. ユーザ登録
  2. 時刻の設定
  3. Plan9.iniの設定
  4. VGAのハードウェアアクセラレーション
  5. ホスト名の設定
  6. ネットワーク設定
  7. 安全運転

kfs へのユーザ登録

ユーザ 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の設定

筆者が自宅で使用している 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のハードウェアアクセラレーション

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