カテゴリー
DNRH-001

DNRH-001のその後

DNRH-001
DNRH-001

昨年、仕立てたDNRH-001サーバーが実家の屋根裏で稼働してからほぼ1年経ちました。当初メモリを512MBと少な目だったので増設も兼ねて箱を開けてみました。

DNRH-001
DNRH-001

DNRH-001
DNRH-001

DNRH-001
DNRH-001

DNRH-001
DNRH-001

郊外の住宅地の屋根裏でホコリが少なかったのでしょう、ファンにこびりついているホコリはほとんどありませんでした。吸出しにしたこともありますが、ヒートシンクに積もったホコリも微少です。これだったらサーバーが壊れるまで掃除しなくても大丈夫でしょう。もっとも、ハードウェアの耐用年数はとっくに来ているはずの製品ですけど。

メモリスロットは1個だけなので512MBのを外して1GBのに交換です。メモリ交換後にmakeworldしてみましたが、変更前後で処理時間に目立った変化はありませんでしたし。もともとCPUが貧弱なのでメモリもこれ以上増やしてもあまり意味はないでしょう。まあ、気休めですね。

 

カテゴリー
DNRH-001 FreeBSD

DNRH-001のLANポート

DNRH-001にはLANポートが二つあります。
ルーターとか作るのに便利なのですがどのポートがどのデバイスに割り当てられるのかはやってみないと分からないのでFreeBSD 8.0-Releaseでやってみた結果をここにメモします。

LAN1 = vr1
LAN2 = vr0

dmesgの結果

vr0: <VIA VT6105 Rhine III 10/100BaseTX> port 0xd000-0xd0ff mem 0xe6400000-0xe64000ff irq 10 at device 15.0 on pci0
vr1: <VIA VT6102 Rhine II 10/100BaseTX> port 0xe400-0xe4ff mem 0xe6402000-0xe64020ff irq 11 at device 18.0 on pci0

カテゴリー
DNRH-001 FreeBSD

DNRH-001の内蔵UPSをFreeBSDで使う

はじめに

一時期安値で放出されたUPS内蔵ファンレスPCのDNRH-001が何故か手元にあります。2年ほど前に友人のONSさんが静かなPCだけど電源から変な音がするのが気になるし、もう使わないので誰かいる?と仲間内に放出されたのを私が手を挙げてゲットした物なのです。前回日本に一時帰国した際にこちらに持ち帰って非力なWindowsマシンとして使っていました。最初のうちは内蔵UPSが機能していましたがそのうちに動作が怪しくなり、さらにGUIで使うには遅いPCなので使う機会が減りついにお蔵入りになってました。最近になってFreeBSD 8.0-RELEASEで使ってみようとふと思い、どうせなら内蔵UPSもきちんと使えるようにしようと色々手を入れることにしました。これはその時の自分用の備忘録です。

電源の異音対策

まず、変な音は電源部の二次側にあるトロイダルコアに線を巻いたトランスから発生していました。巻線が磁界で振動して鳴いています。トランスを取り外して線を巻きなおし、エポキシ系の接着剤で巻線を固めて取り付け直してほぼ鳴き止みました。これ以上は真空チャンバで脱泡して固めればいいのですがまあそこまでは無理ですね。

放熱対策

次に、ファンレスPCということなので静かでいいのですが、やはり熱が相当こもります。CPUに大きなヒートシンクが付いていますがmake worldを始めるとかなり熱くなります。それ以上にチップセットのヒートシンクも熱くなります。筐体内で空気が淀むのでHDDも相当熱を持ちます。さすがにこれで24時間稼動は無理なので熱対策をします。ネットで色々調べてみましたが、結論は静音ファンを1個追加して軽く空冷し、3.5インチのHDDを2.5インチのに載せ替えて消費電力を若干下げて対応することにしました。HDDの3.5-2.5変換の基板は「これ」を購入しました。送料無料の通販で$1.59なり。熱対策で電源部に小口径のファンを入れている例もみかけましたが電源部はケースに放熱する構造なので筐体内に若干でも空気が流れていればOKレベルだろうということでCPUとチップセットの近くにファンを1個だけで済ませました。
ファンは近所の店で「Cooler Master Case Fan R4-SPS-20AK-GP」を購入。CPUとチップセットとメモリに風が良く当たる位置で筐体側にネジ4個で取り付けます。筐体には元々パンチングメタル状に穴が開いていますが穴が小さくてあまり効率が良くありません。ドリルで穴を広げて風がよく抜けるようにしました。風の向きは外気吸入です。このファンは薄型大口径でかなり筐体が華奢です。取り付けの時にネジをきつく締めるとネジの回転で筐体が少したわみ、回転するファンの羽根がファンのケースに当たるのでネジ締めの加減が難しいです。
このファンは風切り音はほとんどしませんが効果は絶大でした。これで指で触れないくらいに熱くなっていたチップセットのヒートシンクも問題ないレベルまで温度が下がりました。HDD周りも2.5インチ採用で隙間が出来、空気が流れているので大丈夫そうです。

内蔵UPSの電池交換

お次は内蔵UPS周り。内蔵UPSの電池は単三型のニッケル水素電池を10本パックにしてヒューズが入った金属ケースに入っていました。電池を外して電圧チェックしてみましたが完全に駄目になっていました。最初は単三のエネループを電池ボックスに入れて使おうかと思いましたが適当な10本用の電池ボックスが見つからず、代わりに電池10本をパックしてリード線を出したタイプのものを見つけたのでそれを使うことにしました。(電池単体の仕様書はこちら→PDF)
この電池パックは元の金属ケースには入らない形状なので手持ちのガラエポのユニバーサル基板を適当に切って取り付け台にし、テープとタイラップで電池を固定して押し込みました。ヒューズは元から付いていたのをそのまま流用。

充電特性

この状態で早速データ取りです。BIOS画面にしたままでまずは電池を充電しながら端子電圧を見ていきます。10本直列なので1本当たりの電圧は計算が簡単ですね。青色のデータは諸般の事情で測定時間が飛んでたり、充電が途中で休止したりのデータですが、1回目の充電のデータです。この内蔵UPSの充電回路の開放電圧は約16Vで、実際の充電電流は測定していませんが、電池の仕様では0.1C(10時間充電)で充電終止電圧が1.48Vくらいなので、測定値から見るとほぼ20時間率のトリクル充電を行っているようです。赤色のデータは2回目の充電で、こちらはほぼ連続したデータが取れています。いづれも同じような素直な充電特性です。

放電特性

放電特性は電圧だけでなくシリアル(COM2)のDCDとDSRの動作を合わせて確認。AC電源断から数秒でDCDがLからHに変化します。これでACラインが切れたことが検出できます。電池の放電が進み電圧が10.5Vを切ると今度はDSRがLからHに変化します(バッテリLow)。そしてその後1分しないうちにPCはハング(BIOS画面で時計表示が止まる)しました。これでバッテリを使い切る直前にシャットダウンするのはかなり危険というかほぼ無理でしょう。UPSの動作として利用できるのはAC断のDCDだけと思った方がよさそうです。
肝心の電池の持ち時間ですがBIOS画面で約45分で落ちましたから、負荷がかかっている場合を考えても20分くらいはいけそうです。2200mAhの電池で45分ということは大体30~40Wの消費電力に相当ですからまあ妥当な線でしょう。

UPS制御ソフト

これで内蔵UPSの使い方と限界が分かったので、最後にFreeBSDで使う方法(ソフト)です。まずAC通電時に手動で shutdown -p now の動作確認。すると一旦は電源が切れるのですが、その後すぐに勝手に電源が入ってしまいます。結局ACPIを無効にしてAPMを有効にすることで電源を切れるようになりました。以下がそのための方法の詳細。

/boot/loader.conf に下記を追記。

apm_load="YES"

/boot/device.hints に下記のように編集

hint.acpi.0.disabled="1" ←追記
#hint.apm.0.disabled="1" ←コメントアウト
hint.apm.0.disabled="0" ←追記
hint.apm.0.flags="0x20"

/etc/rc.conf に下記を追記

apm_enable="YES"

COM2を監視しつつshutdownする動作のソフトをネットで色々探してみたら「FreeBSD対応フリーソフトウェア」を見つけました。これはCTSがAC断、DCDがバッテリLowとして動作しているのでソースをいじってそれぞれDCDとDSRに書き換え。他に”shutdown -h now”の記述を”shutdown -p now”に書き換えたりMakefileを修正したりでDNRH-001に対応できるようになりました。AC断からシャットダウンまでの時間はとりあえずデフォルトの5分(300秒)のままにしています。ソース修正後、make; make install; でコンパイル&インストール。そして、 /etc/devfs.conf に下記の設定を追加します。

link cuau1 usv

注) 手動で “ln -sf /dev/cuau1 /dev/usv” とシンボリックリンクを張ってもFreeBSD 8.0-RELEASEでは再起動すると設定が消えてしまうので上記の方法で設定する必要がありました。

これでFreeBSDを再起動すると /usr/local/etc/rc.d/usvd.sh で /sbin/usvd と /sbin/usv_back が起動します。動作は以下のとおり確認できました。

  • ACの状態を10秒毎に監視
  • ACが切れて5分後に自動的にシャットダウンして電源オフ。
  • 5分以内にACが復活したらそのまま動作継続。
  • シャットダウン中にACが復活したらリブートして復帰。
  • シャットダウン完了までにACが復活しなければそのまま電源オフ。
  • ACが復活したら起動。

付録

FreeBSD対応フリーソフトウェア(簡易シャットダウンソフト)DNRH-001対応版
※このソフトの著作権は、(株)ユタカ電機製作所にあります。