槻ノ木隆のPC実験室

ファンレスマザーボード「EPIA-E533」活用記
~ファイルサーバー兼ルーターを構築/Linux編



●RedHat 7.2Jを利用したサーバー

 前回のWindows編に続き、ちょっと趣を変え、Linuxでサーバーを立ててみる場合も検証してみた。というより、このEPIA-533のパワーだと、Windowsはちょっと処理が重過ぎる。サーバー用途なら無理にWindowsでなくても、Linuxで十分目的は果たせるわけで、こちらを本命に考えている人は多いだろう。さて、そのLinuxであるが、どのディストリビューションを使うかは割と好みが出るところ。一応今回は無難な選択として、RedHat Linux 7.2JのFTP版をインストールしてみた。

【編集部注】本記事で扱ったBusmasterを認識しないというトラブルについては「補遺」にて解消しております。併せてお読みください。


●まずはデスクトップを....

 サーバー用途ならXは要らないし、日本語もまず不要なのだが、一応動作確認ということで最初はワークステーションパッケージを選んでインストールしてみた。XFree86では、自動検出で“CyberBlade(Generic)”が選ばれ、そのまま無難に動作してしまった(写真8)。その他の問題も一切無く、あっけなくインストールは完了。再起動すると素直に立ち上がった。ちなみにこの時点では音が一切ならないが、こちらはsndconfigをかけると、VIAのAC'97 Codecを自動検出。問題なく設定は完了し(写真9)、再起動後はサウンド再生も問題なく出来るようになった(写真10)。

【写真8】インストール完了後のデスクトップ。サイズは1,024×768ピクセルを選択 【写真9】sndconfigを実行すると、対話式メニューで設定が進む。終了後は/etc/modules.confに設定が書き込まれ、再起動すると設定が有効になる 【写真10】XMMSでMP3ファイルの再生中。画面はしばしば描画が間に合わなくなるが、再生自体は途切れずに行なわれた

 一応問題はないのだが、なんとなく全般的に動作が遅い感じがする。特に新しいプログラムを実行するときなど、かなり待たされる印象がある。最初は「こんなもんか」と思っていたのだが、実はここに落とし穴があったのだった。これは後述したい。


●ファイルサーバーとして「使えない」

 さて、次はファイルサーバーである。一応念のため、フルパッケージを選んでRedHatをインストールしなおしてから、設定にかかったほうが良い(理由は後述)。Sambaを立ち上げて設定を行なう手順はすでにあちこちに解説があるし、かなり長くなるので今回は割愛する。一応手順どおりに行なえば問題なく立ち上がり、ちゃんとクライアントからもアクセスできるのだが、SambaのフォルダをWindows XP Professionalからマウントし、HDBenchをかけてみると散々たる結果になってしまった(写真11)。Read 1.8MB/Sec、Write 2.0MB/Secというのは幾らなんでも遅すぎる。

 そこでhdparmを使って現在の状況を確認してみると、using_dmaの項目が0、つまりDMA転送が行なわれていない。だが、DMA転送を有効に切り替えようとすると、“Operation not permitted”と怒られて変更できない。ちなみにローカルでの転送速度を確認してみると、わずかに2.4MB/sec。なるほどHDBenchの成績が悪いのも無理はない(写真12)。

【写真11】前回の記事の写真1との数字の差を比較して欲しい。しかし、何でFileCopyだけが数字が大きくなるのかが謎である 【写真12】hdparm HDDデバイス名で現在の動作モードの簡単表示(-iをつけるとドライブ自体の詳細表示が行なわれる)。hdparm -d1 -X69 HDDデバイス名で動作モード設定(-d1がDMA転送有効、-X69はUltraDMA mode5の指定)。hdparm -t HDDデバイス名で簡単なベンチマークを行なってくれる

 どうやら、これはVT8231に対応したドライバを入手しないといけないようだ。VIAのサポートページ( http://www.viaarena.com/?PageID=87 )にはRedHat 7.2用のIDEドライバの「説明」がPDFファイルで置かれている。これを読むと、すでにVT8231用のドライバはRedHat 7.1/7.2に含まれているのだが、「バグのためにATA/33以上のスピードで動作しない」とあり、この修正方法が記されている(念のために書いておけば、このもともとのドライバ自体を提供したのはVIAではない)。

 手順はというと、

【写真13】xconfigの画面。まず左上の画面が登場、ここの左下にある"ATA/IDE/MFM/RLL Support"をクリックすると、左下の小さい画面が登場する。ここにある"IDE, ATA and ATAPI Block device"をクリックすると右下の画面が出現する。ここでスクロールさせてゆくと、"VIA82CXXX chipset support"の項目が"n"にチェックされているので、"y"にチェックしなおす
(1) まずRedHatのインストールパッケージの選択で、カーネルソースをインストールしてあることを確認する。これが未インストールの場合、もう一度パッケージの選択を行なうか、rpmを使ってソースをインストールする。これがあるので、フルパッケージを入れておいたほうが無難だったりする。(*2)
(2) /usr/src/linux-2.4.7-10/drivers/ide/via82cxxx.cをエディタなどで開く。
(3) ソースコード先頭で

  } via_isa_bridges[] = {
      { "vt8233", PCI_DEVICE_ID_VIA_8233_0, 0x00, 0x2f, VIA_UDMA_100 },
      { "vt8231", PCI_DEVICE_ID_VIA_8231, 0x00, 0x2f, VIA_UDMA_66 },

となっているところを

  /*
   * VIA SouthBridge chips.
   */
  } via_isa_bridges[] = {
      { "vt8233", PCI_DEVICE_ID_VIA_8233_0, 0x00, 0x2f, VIA_UDMA_100 },
      { "vt8231", PCI_DEVICE_ID_VIA_8231, 0x00, 0x2f, VIA_UDMA_100 },

に修正する(3行目の最後の定義を"VIA_UDMA_66"→"VIA_UDMA_100"に変更)。また、中ほどにある関数"pci_init_via82cxxx(struct pci_dev *dev, const char *name)"の中の

  via_80w = 0;
      if (via_config->flags & VIA_BAD_CLK66) { /* Disable Clk66 */

となっている個所を

  /* via_80w = 0; */
      if (via_config->flags & VIA_BAD_CLK66) { /* Disable Clk66 */

と変更する(つまり"via_80w = 0;"の行をコメントアウト)。変更を確認後、セーブする。
(4) /usr/src/linux-2.4.7-10/でmake mrproperを実行してから、make xconfigを実行する。GUIが立ち上がったら、"ATA/IDE/MFM/RLL Support"の中の、"IDE, ATA and ATAPI Block device"の項目を選び、"Generic PCI bus-master DMA support"と"VIA82CXXX chipset support"の2つを"y"に設定する。設定が終わったら、"Save and Exit"を選んで完了(写真13)。
(5) カーネルを再構築する。
(6) ブートローダーに登録する。

 といった具合だ。ちなみに、一連の作業に必要な時間は約30分ほどだった(カーネルのビルドに約25分ほど)。

【写真14】00:11.0にVT8231があり、この子デバイスとして11.1にBusMaster IDEが見えてるので、認識できないわけではないと思うのだが、lspciの結果をそのままドライバが使ってるわけでもないので、どこで認識ミスが発生しているのかは今回突き止められなかった
 さて、再起動すると直るか……というと、これが全然駄目。どういうわけか判らないが、「チップセットが不明」だとして再構築したVT82cXXXドライバを利用してくれず、結局PIOアクセスのままである。ただlspci(全てのデバイスを表示するコマンド)をするとちゃんとVT8231を認識している(写真14)あたりが謎である。この状況で2日ほど悩んだのだが、残念ながら時間切れで今回は解決せずに結局放棄する羽目になった。ちょっとカーネルを上げたほうがいいのかもしれない。

 ちなみに上述のVIAの説明によれば、C3プロセッサを使っている場合はカーネルパラメータで

 ・プロセッサタイプを"Pentium III(Coppermine)"から"K6/K6-2/K6-III"に変更
 ・SMP(Symmetric Multi Processor)のサポートをDisable

にすべきだとあるのだが、これをやったところEthernetカードが2枚とも見えなくなるという不思議な現象が出てしまい、こちらも解決しなかった。EPIA-533のチューニングは、もう少し本腰を入れてやらないと面倒なことになりそうだ。

 そういうわけで、2MB/Secかそこらしか出ないのではファイルサーバーとして失格であり、WebあるいはFTPでもこの状況は変わらない。もちろんADSLなどで公開サーバーを立てるならこれで十分(回線のUpLinkが512kbps~1Mbps、つまり50KB/Secから100KB/Sec程度)なのだが、LAN内ではちょっとこのスピードは耐えられないだろう。

(*2) サーバー/ルーターの類を設定するときの基本は「余分なものはいれない」である。例えばXを入れても単に遅くなるだけで、メリットはない。しかも潜在的なセキュリティホールが増えることになる。
 が、これはパッケージや構成を確認する環境を別に用意して、こちらで動作を確認できる場合には通用しても、これから初めてルーターを作りますなんて人にはあまり向かない。もちろんゲームなんぞ入れる必要はないのだが、Linuxはディストリビューションごとにパッケージの依存関係が違うため、最初は丸ごとインストールもそう悪いものではないと筆者は思っている。
 その後に、立ち上がる不要なサービス類を手動で止めて行く方が判りやすい。HDDは無駄になるが、RedHat 7.2JのFTP版をフルにインストールしても高々2GBちょいであり、気にするほどの量でもないだろう。


●ルーターの設定

【写真15】最終的には5.85MB/Sec弱までいった。
 さて気を取り直して、ルーターの場合を考えてみる。こちらはHDDのアクセスは無いから、かなり高速に動作するはずである。ちゃんと動かすためには、パケットフィルタリングのルールを細かく設定しなければいけないが、これは個々の環境によっても異なってくるので、とりあえず単純にIPマスカレードを使ってのポートフォワーディングを確認してみた。

 環境を再び図1に戻し、

iptables -t nat -A POSTROUTING -s 192.168.20.0/8 -o eth0 -j MASQUERADE

というコマンドを一発実行させた。ちなみにPC1側がeth0、PC2側がeth1である。この環境で、先ほどの約700MBのファイルを再びIriaを使ってダウンロードしてみた。結果はというと、写真15の通り5.8MB/Secあまりのスループットが出た。bps換算で46Mbps強だから、Windows XPの時と比較して、かなりの性能向上が得られる事が判る。

 今回のテストはGNOMEを動かしっぱなし、カーネルチューン一切なしと言う状況だから、このあたりをチューニングすればもう少し高速になる可能性があるが、ただパケットフィルタリングを行なうとその分オーバーヘッドが出るわけで、ほぼ相殺されると思って良さそうだ。だとしても46Mbpsはかなりのもので、Bフレッツを含めてほとんどの場合で不自由はなさそうだ。


●そんなかんなで……

 EPIA-533を使ってのファイルサーバー/ルーター構築を一通りご紹介した。BusMaster IDEに関してはちょっとミソをつけた形になったが、それ以外はWindows/Linuxとも、特に問題なく動作した。特にWindowsに関しては、あまりのトラブルの無さに拍子抜けするほどである。その意味では、Linuxの方がまだ色々悩めそうである。特にBusMasterに関しては、他のディストリビューションを色々試してみたいところだ。

 もっともここまででは紹介してこなかったが、変なことはまだあったりする。この製品にはFDDインターフェイスが無いかわりに、USB HDDからブートできるという機能がある。そこでノバックの「HDDもっとはい~るKIT」を使って3.5インチのIDE HDDを接続してみたのだが、まるっきりアクセスしてくれない。

 使われているコントローラは飛鳥のFireUSB-1で、割合最近はメジャーなコントローラなのだが、どうも対応していないようだ。どこのUSBコントローラに対応しているかがどこにも記載されていないので、最終的には数を集めて総当りテストでもしてみるしかなさそうだ。

 そんなわけで、普通に使う分には極めて当たり前の様に動作するが、その先は色々茨の道が待ち構えていそうである。そういった事を含めて楽しめるなら、このマザーはかなり買いだろう。昨今は価格も12,800円程度まで大幅に下がったようで、気軽に人柱になりやすい(?)製品といえそうだ。

□VIAのホームページ(英文)
http://www.via.com.tw/
□製品情報(英文)
http://www.viavpsd.com/products/epia_mini_itx_spec.jsp
□関連記事
【5月2日】ファンレスマザーボード「EPIA-E533」活用記
~DVD再生で静音デスクトップPCとしての実力を見る
http://pc.watch.impress.co.jp/docs/2002/0502/eden.htm
【5月9日】ファンレスマザーボード「EPIA-E533」活用記
~ファイルサーバー兼ルーターを構築/Windows編
http://pc.watch.impress.co.jp/docs/2002/0509/eden2.htm

バックナンバー

(2002年5月9日)

[Reported by 槻ノ木隆]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp
個別にご回答することはいたしかねます。

Copyright (c) 2002 impress corporation All rights reserved.