9月 242008
 

秋葉を俳諧していたら、16GB の SDHC が 3,980yen で売っていた。「あぁ。ここまで値段が下がったんだな。」と言うことで、今まで EeePC には USB 接続で 2.5 インチの HDD を着けていたのだけど、16GB の SDHC にインストールすることを決意。今回は FreeBSD/i386 7.1-STABLE をインストールしたサーバの最終形をまとめてみたいと思います。

まずはインストールですが、USB 接続で CD-ROM ドライブを接続しますが、パーティションは、オンボードの 4GB の SSD が ad0 です。でもって USB 接続の SDHC ドライブに刺した今回の 16GB SDHC は da1 として認識されます。da0 は 500MB ほどあるのですが、これが何を指しているのか見当が付きません。

パーティションを切った後インストールが始まりますが、CD-ROM からはインストールできないので FTP インストールします。とは言いつつ、 7.1-BETA では ae0 も ath0 も認識してくれないので USB NIC である aue0 経由でインストールします。

インストール完了後、いよいよ SDHC からブートしますが、インストール時、da1 にインストールしたのですが、起動は da0 がどっかに行ってしまい /dev/da0s1a になるので ufs:da0s1a と指定した後、/etc/fstab を直します。これでブート完了。

インストール後のパーティションは大体こんな感じ。あ。僕の EeePC はメモリ 2GB 積んでいるので、今回は swap 領域は無し;-)。

Filesystem  1024-blocks    Used   Avail Capacity  Mounted on
/dev/da0s1a      988398   48664  860664     5%    /
devfs                 1       1       0   100%    /dev
/dev/da0s1f     7752798  675874 6456702     9%    /home
/dev/da0s1e     4954158 1131084 3426742    25%    /usr
/dev/da0s1d     1482638    2770 1361258     0%    /var
/dev/md3         126702   17856   98710    15%    /data 

 
/dev/md3 については後ほど詳細を記述します。

SDHC をパーティションとして使ってみた感想ですが「むちゃくちゃ遅い」って感じです。マルチタスク、マルチプロセスでアクセスした時にそれが現れます。けど、USB HDD を付けていないので見た目は美しいです。後、オンボードの SSD はそのままなので WindowsXP は残ったまま。と言うのもちょっと安心でしょうか(ハードウェアの動作確認的に)。

これで 7.1-BETA が動作し始めましたが、一応 /usr/src を最新の STABLE にします。そして、ae0 のパッチを適用し、カーネルを最新にしてリブートすると ae0 は利用可能状態になります。

後、ath0 についてですが、8-CURRENT では /usr/src/sys/contrib/dev/ath が更新され、hal が最新のものになりました。これで PCI-e の ath0 も動作するようになりました。早速試してみましたが、おぉ。何とか動きますね。ath0 を利用するためには以下のカーネルモジュールが必要です。僕は最近はほとんどをカーネルモジュールにしているのですけど。

wlan_load="YES"
wlan_wep_load="YES"
wlan_scan_ap_load="YES"
wlan_scan_sta_load="YES"
if_ath_load="YES"
ath_hal_load="YES"
ath_rate_load="YES"

 
で、利用してみた感想ですが、IPv4/IPv6 共に利用できます。ただ、しばらく使っていると通信断が頻繁に発生します。ifconfig で確認しても status: active なんだけど、通信できない。でもってメッセージも出力されないのでこれが頭痛い・・。瞬断なら良いのだけど、五分位平気で止まってしまう。けど、あるタイミングでは利用できる。と言う状態だったので結局 ath0 は使うの止めて、aue0 を利用している状態です・・。トホホ。

さてと。ここまでが主にハードウェアと FreeBSD の相性みたいな問題ですが、ここからはインストール先を SDHC にした場合のチューニングについてです。なんせ、遅いし、書き込み回数の上限があるドライブなので、極力アクセスを抑えたいのですね。

と、言うことでまずは syslog を他のサーバに転送しましょう。EeePC 側の /etc/syslog.conf は以下の感じです。

*.*     @192.168.1.21

 
全てを他のサーバへ。って感じ。後、/etc/newsyslog.conf ではログローテートを停止します。ログローテートされるファイルの部分をコメントアウトします。例えば sendmail.st、maillog などかなぁ。まぁ、そもそも、/etc/rc.conf に newsyslog_enable=”NO” と書いてしまいましたが;-)。

これでログの出力は止まりましたが、lastlog と wtmp は localhost に出力するようにしました。

後、syslog サーバですが、FreeBSD で構築すると随分難儀なのねぇ・・。syslog サーバ側の /etc/rc.conf は以下のように設定してログを受信するようにしました。IPv4 にか対応できていない設定がダサいんですけど、書き方解らない・・。なんややこしいんだっ!! -a だけにして残りは libwrap で制限させれば良いじゃねーかよっ!!とか思うんですけど・・。と、言うことでコミッタの方、修正していただけると嬉しいです;-P。

syslogd_enable="YES"
syslogd_flags="-a 192.168.1.0/24:*"

 
syslog サーバ側では -s オプションを消して、-a でアドレスを羅列する設定を記述するみたいです。IPv6 アドレスも書けるみたいですが、実際に書いてもダメだったので、設定方法の調査を諦めて、IPv4 で転送することにしました・・。

さて、これでサーバとしてもだいぶ完成してきました。しかし、更に SDHC へのアクセスを抑えたいのでメモリをファイルシステムと利用したくなってきました。調べてみると、FreeBSD では mdmfs(8) と言うのがあって簡単にメモリをファイルシステムとして利用できるみたいです。man mdmfs すると書いて有りますが、以下のコマンド一発でメモリをファイルシステムとして利用できます。

# mdmfs -s 128m md /data

 
実メモリの内、128MB を /data として利用します。ってコマンドですね。でもって、上の df -k コマンドの結果の一番下の /dev/md3 がその部分になります。/etc/fstab に書いておくと、起動時に勝手にファイルシステムを作ってくれて mount までしてくれるみたいです。すばらしいですねぇ;-)。/etc/fstab への記述方法は man mdmfs に書いて有ります。

と、言うことで、/data には madoka4 のログと、squid のキャッシュ・ログを置くことにしました。当然、起動時には /data/ の下は空っぽなので環境生成するスクリプトを書く必要がありますが。

さて、このサーバで起動しているものですが大体以下ですかねぇ。グローバル IPv4 付加されているので貴重な存在です。

・esecanna+vjed2.5 FreeBSD/amd64からのかな漢字変換サーバ
・dtcpc+dtcpc+rtadvd    IPv6 トンネルルータ
・named    自宅網内のネームサーバ
・squid     Proxy サーバ
・DarwinStreamingServer ブロードキャスター用 DSS

さてと。これでいよいよ 初代 EeePC をしまともな構成で投入できるようになりました。良かった良かった。後の問題は ath0 で、これが通信断が発生しないようになると aue0 が取れるのでもっと美しくなるのだけど・・。

それにしても、今となっては NetBook がシャバ中にあふれているので本当にこの NotePC を買って失敗した。と言うのが感想です。

けどもまぁ、無事にサーバとして動作してくれと本当に良かった。画面サイズがちっこいのもサーバとして利用するのであれば気にはならないですしねぇ。