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