Top > Computer > FreeBSD(98)

FreeBSD(98) 4.2 でタイマー録音・ntp サーバ

 FreeBSD(98) 4.2R-Rev1 を PC-9821Xa7/C4 にインストールし, ラジオをタイマー録音しようという計画です. 時計合わせのために ntpd も動かしてみました.
 私は経験が浅いので,妙なことをやっている部分がありそうです.


  1. 計画
  2. 準備
    1. 機器構成
    2. インストール CD-R を作る
    3. HDD のパーティションの準備
    4. ブートフロッピィディスクの作成
  3. FreeBSDのインストール
    1. カーネルコンフィギュレーションメニュー
    2. インストーラ
    3. 続いては (FreeBSD ports)
  4. Window Maker の導入
    1. 日本語に設定
  5. VNC の導入
    1. VNC 本体のインストール
    2. VNC 上でWindow Maker が使えるようにする
  6. カーネルの再構築
    1. サウンドの動作確認まで
  7. タイマ録音
    1. ntpd で時刻あわせ
    2. rclock
    3. タイマ録音の実行
  8. 追加インストール
    1. CD 1枚め
    2. WXG for FreeBSD 1.0β
  9. 更新履歴

§1 計画

もくろみは次のようなものです.

では,OS は何にしましょうか.

ということで FreeBSD を使ってみることにしました.

§2 準備

(1) 機器構成

FreeBSD のインストールに必要な情報を集めます. 必要に応じて FreeBSD 配布に添付されている文書 を参照してください.  Windows 95 以降がインストールされているなら, コントロールパネルのシステムで割り込みや DMA, そして winipcfg コマンドでネットワーク関連の設定値を見ると良いでしょう.
 使用した機器の構成を下に示します (インストールに際して必要ではない情報も含まれています).

本体 PC-9821Xa7/C4
CPU Pentium 75 @ 100MHz
2nd キャッシュ 256KB
メモリ 64MB
HDD 3.2GB
CD-ROM ドライブ 東芝 32x
ビデオ TGUi
サウンド 内蔵PCM
NIC PC-9801-108 (IRQ=3 )

10BASE-T LAN カードの PC-9801-108 は,IRQ を 3 で使用しています. 環境によっては PCI セットアップディスクで調整が必要かもしれません. PCI セットアップユーティリティについては, 計算機の取扱説明書を参照してください.

(2) インストール CD-R を作る

 手元にある CD-ROM を調べると, FreeBSD 4.2R-Rev1 がいくつか見つかりましたが, FreeBSD(98) は 4.1.1R-Rev1 までしかありませんでした. そこで,4.2R-Rev1 の PC-98 への 差分ファイル (16MB くらい)をダウンロードしました. ちなみに,FreeBSD(98) 4.2R-Rev1 は 2000年12月11日にリリース されています.
 差分ファイルをダウンロードしたら, 手元の 4.2R-Rev1 CD-ROM にこのファイルを追加すれば良いのですが, 単純に追加したところ CD-R の容量が足りなくなったため, packages ディレクトリを除去した CD-R を作成しました. または 700MB CD-R メディアを使ってもよいでしょう.

(3) HDD のパーティションの準備

 HDD 総容量 3.2GB のうち,最初の約 2.2GB を FreeBSD に, そして残りの 1023MB を MS-DOS に割り当てることにしました. MS-DOS 領域を作ったのは, ハードウェアのテストなどに使うことがあるかもしれないためです.
 まず,NEC MS-DOS 6.2 で HDD 全体を初期化しました. つづいて MS-DOS 上で約 2.2GB のパーティションと 1023MB のパーティションを作り, 前者のパーティションを削除しました.

(4) ブートフロッピィディスクの作成

ブートフロッピィディスクの作成は, Linux や NetBSD と同様,rawrite コマンドを使って行います. FreeBSD はフロッピィ2枚が必要です. krnl144.flpmfsroot.flp をそれぞれのフロッピィに rawrite してください.
 ブートフロッピの作成は,いわゆる AT 互換機上でも可能です. 当然のことですが,その場合は AT 互換機用の rawrite コマンドを使います.
 フロッピディスクを挿入したまま計算機を再起動すれば, インストーラが起動するので,次の「インストール」へ進みます.

§3 FreeBSDのインストール

手順のメモを下に示します. 注意すべき点をあげると, メニューを選択するときはスペースキーを中心に使わないとわけがわからなくなります.

(1) カーネルコンフィギュレーションメニュー

 最近はここで何も設定しなくてもうまくいくことが多いようですが, PC-9801-108 の IRQ をデフォルトの 6 から 3 に変更しておかないとインストール後ネットワークが使用できませんでした. もっとも,カーネル再構築のときに設定しても良いのですが.
 ここでは

Start kernel configuration in Visual mode

を選択し,ed6 (PC-9801-108) の IRQ を変更しました. PC-9801-108 が ed6 だということは, 上述の PC-98 への差分 にも添付されている次の文書からわかります:

 また,使用している IRQ 等については, 前述したように Windows 95 以降をインストールしてみて, コントロールパネルのシステムから見るのが手軽です (必ずしも同一になるとは限りません. 場合によっては PCI セットアップユーティリティでの設定が必要です).
 こうして集めた情報は以下のようになりました. I/O アドレスについての情報は今回は必要ありませんでした.

(2) インストーラ

あとはふつうに FreeBSD をインストールします. ごく簡単な手順を次のファイルに書きました: install.txt

(3) 続いては (FreeBSD ports)

 FreeBSD(や NetBSD)は,インストールされるのは OS (と X) が中心です. アプリケーション等は自分で追加する必要があります. FreeBSD では,ports といって 4000を超えるソフトウェアが簡単にインストールできるようになっています. ports については,FreeBSD Ports のページ(日本語)を参照してください.

  1. su してスーパーユーザになります.
  2. /stand/sysinstall を実行します.
  3. `Do you use Japanese message?' と聞かれます. PC-98 は最初から日本語に対応しているので, そのままリターンキーを押します.
  4. 「デバイスをプローブしています, 少しお待ちください…」と表示されます.
  5. `/stand/sysinstall Main Menu' が表示されるので, 「C 設定」を選択します.
  6. FreeBSD 設定メニューが表示されるので, 「P パッケージ」を選択します.
  7. インストールメディア選択画面が出ます. CD-ROM に収録されている ports のリストを見たければ `1 CDROM' を選択します. FreeBSD サイトの FTP サーバにあるリストから選びたければ `2 FTP' を選択します.
  8. `2 FTP' を選んだ場合は,どこの FTP サーバを使うか聞かれます. 日本 (98) または日本 (98) #2〜#8 のうちから選べば良いでしょう (インターネットに接続しておくことが必要です). ここで確認画面が出たら適当に答えます.
  9. 「INDEX を確認しました. そこからパッケージデータを読んでいます…」 と表示されます.FTP の場合は, INDEX がダウンロードされるまでしばらく待つ必要があります.
  10. パッケージ選択画面が出てきます. 分野ごとに分類されているので,適当なものを選択し, 上下キーで移動して必要なパッケージにチェックを入れていきます. 画面一番下に,いま選択しようとしているものが何なのか簡単に説明が出るので, 参考にします. ソフトウェアを一つ選択すると, そのソフトウェアの動作に必要なソフトウェアにも自動的にチェックが入ります.
  11. 選択が終わったら,左右キーで `Install' を選択すれば, あとは自動的にインストールが行われます. 何もチェックしなかった場合も,`Install' を選択するとメニューが終了できます.

§4 Window Maker の導入

ports から i18n 対応版をインストールしました. そのままでいちおうの動作はしますが, 日本語設定を行っておきましょう.

(1) 日本語に設定

  1. ユーザの ID でログイン
  2. ‾/.cshrcsetenv LANG ja_JP.EUC と記述 (シェルに tcsh を使っている場合)
  3. wmaker.inst すると, ホームディレクトリに GNUstep ディレクトリが作成され, 設定ファイルなどがおさめられます.
  4. wsetfont japanese すると, 日本語フォントの設定が行われます.

テーマを変更すると,メニュー等の日本語が正常に表示されなくなることがあります.その場合も wsetfont japanese してください.

§5 VNC の導入

(1) VNC 本体のインストール

VNC (Virtual Network Computing) を使うと,ほかのコンピュータから「デスクトップを遠隔操作」することができます. 具体的には,ほかのコンピュータ上に X デスクトップを再現することができ, そのコンピュータのマウスとキーボードで操作ができます (画面イメージ).
 ここでは, FreeBSD ports に収録されている VNC-3.3.3.2 パッケージを使用しました. インストール方法については, 前述 しています.

(2) VNC 上でWindow Maker が使えるようにする

どのようにするのが普通なのか良くわかりませんが, ここでは次のようにしてみました.
 ファイルを書き換える場合は, オリジナルのファイルを別名で保存しておきましょう.

 ‾/.vnc/xstartup

Window Maker を起動させるために, 最後の行の ``twm'' と記述されている部分を wmaker に書き換えます. すると次のようになりました:

	#!/bin/sh

	xrdb $HOME/.Xresources
	xsetroot -solid grey
	xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
	/usr/X11R6/bin/wmaker

 ‾/.vnc/GNUmaker

 ‾/GNUmaker/ の設定をそのまま使いたかったので, ``# ln -s ../GNUmaker GNUmaker'' のようにしてシンボリックリンクを張っておきました.

§6 カーネルの再構築

 サウンドを有効にするためにはカーネルの再構築が必要です. ついでにいらなさそうな機能を外してカーネルを軽くします. 手順については前述の 30分でわかるシステムの再構築 2.9章 という文書の最初に書いてあります.
 私が作成した定義ファイルは次のようになりました: 001227.txt

このファイルの中で,## で始まる行は私がいじった部分です. 変更点はだいたい以下のとおりです.

(1) サウンドの動作確認まで

 デバイスファイルの作成

まずサウンド用のデバイスファイルを作っておきます. 手順は次のとおりです.

  1. # cd /dev
  2. # ./MAKEDEV snd0

 wmmixer,wavplay のインストール

ports から wmmixer,wavplay を入れました. wmmixer-1.0b1 は Window Maker にマッチしたミキサーソフトで, これで音量設定を行います. wavplay-1.4 はコマンドラインから wav ファイルの録音再生ができるソフトです. いずれも ports から簡単にインストールできます.

 音声再生・録音テスト

次のようにしてサウンド機能が有効になっているかテストします.

  1. 適当な wav ファイルを用意します(ここでは test.wav とします).
  2. Window Maker 上で wmmixer を起動し, 各音量設定をあげておきます. 本体のスピーカの音量は最初は下げておきましょう.
  3. wavplay test.wav で本体スピーカから音が出ることを確認します.
  4. wmmixer でライン入力を録音ソースに指定します. 具体的には,左右ボタンでプラグとコードの絵のアイコンを表示させ, 下にあるボタンを押します.
  5. マシンの LINE IN に音声を入力します.
  6. 録音します. wavrec -s 22050 -M -t 2 -b 8 test.wav のような感じです.パラメタについては wavrec -h で調べてください. 録音が終わったら,ライン入力を外し, wavplay test.wav で再生してみます.

§7 タイマ録音

(1) ntpd で時刻あわせ

部屋が寒いせいもあるかもしれませんが, マシンの時計が1日に10秒以上狂います. これではタイマ録音がうまくいきません.
 そこで ntpd に時計あわせをやってもらいましょう. ntpd は,よその ntp サーバにアクセスして時計あわせができるほか, 自分自身が ntp サーバになるので, ほかのマシンからの時刻問い合わせに応答してくれます. FreeBSD 4.2R では /usr/sbin にインストールされてるので, 設定をすれば使えるようになります.
 なお,ダイヤルアップ環境では ntpdate を使ったほうがいいようです.

 /etc/rc.conf の修正

/etc/rc.conf に ntpd 等を動作させるための設定を記述します. /etc/defaults/rc.conf ファイルにひな形がありますので, 次の部分をコピーして /etc/rc.conf に貼りつけます. ここではファイルの末尾に付け加えました:

### Network Time Services options: ###
timed_enable="NO"		# Run the time daemon (or NO).
timed_flags=""			# Flags to timed (if enabled).
ntpdate_enable="NO"		# Run ntpdate to sync time on boot (or NO).
ntpdate_program="ntpdate"	# path to ntpdate, if you want a different one.
ntpdate_flags=""		# Flags to ntpdate (if enabled).
xntpd_enable="NO"		# Run ntpd Network Time Protocol (or NO).
xntpd_program="ntpd"		# path to ntpd, if you want a different one.
xntpd_flags="-p /var/run/ntpd.pid"	# Flags to ntpd (if enabled).

こうしてできた /etc/rc.conf を次のように修正します:

 /etc/ntp.conf

ntpd が時刻を問い合わせるサーバのありかなどを記述します. 設定例 に記述している ntp サーバは,公開されている stratum 1 (階層1)サーバです. トラフィックが集中しないようにするため階層2以下のサーバを指定したいところですが, 階層2以下で公開されているものはほとんどないようです.
 ほかのマシンで ntpd か何かを動かす場合は, 上記のサーバに時刻を問い合わせるのではなくこのマシンの ntpd に時刻を問い合わせるように設定し, 上述のようなサーバへのトラフィックを減らすようにしましょう.
 セシウム時計で運用している国立天文台には遠慮することにしました. ほかは GPS 時計で運用しているようです(確実ではありません). いまの ntpd は IP アドレスでなくドメイン名を指定しても大丈夫なようですが, ここでは IP アドレスで記述しました.

 動作確認

以上の設定ができたら, date コマンド(か ntpdate コマンド)で時刻を合わせておきます. それは,あまりにも時刻が狂っていると ntpd が時計を合わせられないかららしいです.
 つづいてマシンを再起動すれば ntpd が動作するはずです. 動作確認については, NTP(Network Time Protocol)サーバの設定 という web ページを参考にして行いました.具体的には:

 (おまけ)ほかのマシンの時刻あわせ

ほかのマシンの時計をこのマシンの時計に合わせるようにするにはですが, まず UNIX 系マシンでは ntpd あるいは xntpd などを使えば良く, 設定ファイルでは ntp サーバーとしてこのマシンを設定するわけです.
 Windows マシンの時計を合わせるには 桜時計 などを使います. ダウンロードしたファイルを適当なディレクトリに解凍し, (LAN 環境なので)SW_NORAS.EXE へのショートカットをスタートアップに登録します. 起動したら設定を行います.NTP サーバー名にこの FreeBSD マシンを指定し, 「起動時にオンラインにする」「常駐する」にチェックを入れておきます. マシンの指定を IP アドレスではなくマシン名で行うには, C:¥Windows¥hosts を適切に設定しておく必要があります.

(2) rclock

決められたスケジュールで録音プログラムを起動させるため, X 上で動作する rclock を ports からインストールします. rclock は,プログラムの表示だけでなくメッセージの表示もできます.
 スケジュールは ‾/.rclock に記述します. wavrec の起動が3〜10秒弱かかるようなので, 1分前に wavrec を起動させるようにしました.

 ‾/.rclock の書式(加筆必要@@@@)

第1カラム
時刻.06:59 のように記述する. 「毎時59分」は *:59 のように指定する.
第2カラム
曜日.
第3カラム
日付.
第4カラム
動作.

# で始まる行は,コメントです.

(3) タイマ録音の実行

これでこのマシンはタイマ録音・ ntp サーバマシンとして稼働できることになります. いまの起動手順は次のとおりになっています.

  1. マシンに電源コードと LAN ケーブルをつなぐ. LAN ケーブルは Hub を通して CATV インターネットやほかのマシンにつながっている.
  2. マシンの電源を入れ,しばらく待つ.
  3. ほかのマシンから telnet してログインする (root ではログインできないので,ほかのユーザ名で入る).
  4. vncserver -depth 16 :1 する. VNC は root でなくても実行できます.
  5. ほかのマシンで vnc viewer をインストールして起動する. あるいは web ブラウザで http://(マシン名かIPアドレス):5801 を開いてもよい.
  6. その上で rclock と wmmixer を起動する.
  7. wmmixer の音量設定を確かめる.

もちろん,rclock や wmmixer は ‾/.vnc/xstartup で自動起動するようにできますし, wmmixer の起動時の音量設定は ‾/.wmmixer に記述すればできます.

§8 追加インストール

このマシンで何か作業するときのため, 基本的なプログラムを入れておきます.

(1) CD 1枚め

手元の FreeBSD 4.2R-Rev1 CD-ROM 1枚めから次の package をインストールしました.

ja-kterm16c-6.2.0
X 上で使う漢字コンソールです.
ja-kinput2-canna-3.0
日本語変換プロセッサ canna に対応した kinput2 です. これを ports からインストールしようとすると, canna も同時にインストールしてくれます.
ja-eterm-0.9
ウィンドウを透明にできるコンソールです.
ja-man-1.1h
日本語マニュアルを見る jman コマンドです.
ja-man-doc-4.2
日本語マニュアルです.
ja-netscape-navigator-linux-4.76
Netscape には FreeBSD 版もありますが, Linux 版のほうが便利なようです. 自動的に Linux エミュレート関連のパッケージもインストールされます.

ここで次のような設定をしました.

 ‾/.cshrc

環境変数 PAGER の設定をしている行を次のように書き換えます:

 ‾/.xinitrc

	env LANG="ja_JP.EUC"
	kterm16c &
	[ ! -d $HOME/GNUstep/Library/WindowMaker ] && /usr/X11R6/bin/wmaker.inst
	exec /usr/X11R6/bin/wmaker

 ‾/.Xdefaults

	#ifdef COLOR
	*customization: -color
	#endif

	KTerm*kanjiMode:        euc
	KTerm*vt100*translations:       #override ¥
        Shift<Key>space:        begin-conversion(_JAPANESE_CONVERSION)

 ‾/.vnc/xstarup

xterm でなくて 16色 kterm が起動されるように書き換えます.

	#!/bin/sh

	xrdb $HOME/.Xresources
	xsetroot -solid grey
	kterm16c -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
	/usr/X11R6/bin/wmaker

(2) WXG for FreeBSD 1.0β

私は Windows 上の日本語 IME には A.I.SOFT の WXG を使っています. 最近 A.I.SOFT が WXG の Linux/FreeBSD β版をフリーで公開しているので, これを入れてみることにしました. WXG は canna 互換として動作しますので, あらかじめ canna 環境を作っておけば入れ換える形で使用できるようになります.
 A.I.SOFT の運営するサイト e言葉 から WXG for Linux/FreeBSD Ver 1.0β(port/package形式) をダウンロードし,pkg_add コマンドによりインストールします:

canna でなく WXG が起動するようにするには, canna の起動スクリプト canna.sh を rename し, 続いて WXG が自動起動するように wxg.sh を作成しておきます. 手順は次のとおりです:

  1. # cd /usr/local/etc/rc.d/
  2. # mv canna.sh canna.sh.stop
  3. # cp /usr/local/lib/wxg/sample/wxg.sh ./

あとはシステムを再起動すれば, 起動メッセージの終わりのほうに Wxg が見えるはずです. X を起動し kinput2& すれば, Shift+スペースキーによって kterm 上などで WXG が起動されます.

§9 更新履歴

2000/12/28
作成
2000/12/29
本体の機種名が Xa になっていたのを Xa7 に訂正
追加インストール」を追加
2000/12/30
計画」を追加
音声再生・録音テスト」を補足
2001/02/08
「FreeBSD のインストール」章までを全面的に修正
2001/02/09
全面修正,「タイマ録音」章を追加
2001/02/11
1分前に設定うんぬんを追加
タイマ録音の実行」 補足
2001/02/12
ntp で時刻あわせ」補足

TOP  Email to Kunihiko Nakano(c) FEB 9, 2005