京都嵯峨野 鳥居本


Date/Time: 2006:12:02 10:31:41
Camera: Canon
Model: Canon EOS Kiss Digital N
Exporsure Time: 1/80
FNumber: 6.3
Aperture Value: 5.3
Focal Length: 30.0

Close

y2blog » PC Engines APU4D4を使ってみた

4

26

2020

PC Engines APU4D4を使ってみた

PCEngines社の新しいAPU4D4を購入してみた


APU4D4で組んだ NW Music Server
APU4D4をネットワークミュージックサーバに仕立てる

スイスのPC Engines社のAPUシリーズは、小型コンピュータボードの大半を占めるARM系のプロセッサではなく、Intel系プロセッサ「AMD 組み込み型 Gシリーズ・プロセッサー・ファミリー」を搭載するちょっとユニークな小型コンピュータボードだ.


Intel系プロセッサなので、Cent OS や VMWare ESXi なども動かすことが可能だ.このAPUシリーズはSIMカードスロットを備えていることから、モバイル通信を利用した組み込み系の制御システムとして使われることを想定したボードのようだ.電源も一般的なDC5V系ではなく、DC12Vでの利用を前提としている.(使われている電源周りのICプロセッサの仕様を確認すると、実際は 6.5V〜18Vくらいまでの範囲の電圧に対応できるようだ.回路図が公開されているので、公表されている仕様以外の大部分は自分で回路図を追って行くしか内だろう.


Cent OSなどのメジャーなLinuxディストリビューションが使える上に、ネットワークポートが3〜4個も備わっているのでネットワークルータを自作する用途にはとても重宝する小型ボードだ.普段慣れているエンタープライズ系Linux知識をそのまま活かすことができる.


今回は、これまでのAPU2D4からこの新しいAPU4D4にネットワークミュジックサーバを置き換えた様子を紹介する.ついでに、Linux系サーバをこの手の用途に使う場合の最大の悩みどころである電源周りの省力運用化に欠かせない小型UPS(もどき)の自作の様子についても紹介する.


PC Engine APU4D4到着


PC Enginesがこの新しいAPU4D4シリーズを発表したのは記憶が定かではないが、昨年末くらいには製品情報が公開されていたような気がする.APU2,3シリーズからAPU4シリーズで大きく仕様が変更されたのは、搭載するNICポートの数が3個から4個に増えたことぐらいで、他はそれ程大きな変更はない.使用しているプロセッサは、AMD GX-412TC ( 1 GHz quad Jaguar core with 64 bit and AES-NI support, 32K data + 32K instruction cache per core, shared 2MB L2 cache: TDP 6W ) のままだ.


今回は、APU4D4と専用アルミケース(アウトレット品)、Mini PCIe Wi-Fi カード (Compex WLE600VX 802.11ac/a/b/g/n miniPCI express radio card) 2枚を購入した. Mini PCIe Wi-Fiカードを秋葉原で探し回ったが、新品、中古品も含めて全く手に入れることができなかったので、PC Engines社のShop で簡単に購入できてしまったのにはちょっと拍子抜けしてしまった.


PC Engines APU4d4
PC Engines社から発売された APU4D4 ボード

APU4d4 Back Side
APU4D4ボードの裏面には従来と同じIntel系プロセッサの AMD GX-412TC が搭載されている

APU4d4 NW Ports
APU4d4ボードのNWポートは1つ増えて4つになった(NICのチップはIntel i211ATシリーズ)

Mini PCIe Wi-Fi Card
日本では入手が難しいMini-PCIe規格のWi-Fiカードも簡単に入手できた

APU2C4 v.s. APU4D4
APU2Cシリーズと並べてみた




APUシリーズ用の小型UPSを作ってみる


この手の小型組み込み用ボードでLinuxを稼働させる場合、最も頭の痛い問題は電源断時にLinuxのシャットダウンを自動で確実に行わせる事だろう.エンタープライズ系のシステムエンジニアであれば、物理サーバと何らかのUPSの組み合わせは必須で、UPSとLinux OSとの間で電源のON/OFFのハンドリングが正しくかつ確実に行わなければ、システムが飛んでしまうことは珍しいことではない.


尤も、最近はジャーナリング系のファイルシステムの採用が増えているので、昔ほどファイルシステムが障害を起こすことは少なくなったが、Linux系OSではシャットダウン処理は読み込み専用でもない限り必須である.小型のIoTシステムなどでは、複雑な処理が必要なジャーナリング系のファイルシステムは導入し難く、音質的にも不利なのでオーディオサーバ用途には向かないだろう.


一般家庭においても、PCを仕事で使う場合には停電や雷などの不意の電源トラブルを避けるため小型PC用UPSを導入している人も多いことだろう.だが、Raspberry Pi のような 5V程度のACアダプタを使う小型コンピュータボードでは、そのためにUPSを使ってる人は殆どいないだろう.小型PC用UPSといっても、普通に売られているコンシューマ用途の製品はAC100V仕様の物しか見当たらない.


Raspberry Pi専用の小型UPSボードもその筋の専門店を探せば入手可能だが、Raspberry Pi以外と組み合わせるのは一手間掛かってしまう.Raspberry Piに関しては探せばまだ見つかるだけましだが、APUシリーズのような +12VDC 系に対応したものは皆無だ.勿論、AC100V仕様のUPSにACアダプタをつないで、UPSのシャットダウン信号をうまくAPU側に渡すことができれば、UPSとしての機能は果たせるが如何せん馬鹿でかく重たい鉛バッテリの塊と格闘しなければならない.勿論、持ち運びなど論外だ.


一般的にコンピュータの電源シーケンスは結構複雑で、エンタープライズ系のインフラエンジニアはUPSのシャットダウンシーケンスの設計にかなりの労力をつぎ込まなければならない厄介物だ.


APUシリーズでLinuxを安心して稼働させるにはやはりDC12V専用の小型UPSが必要になる.勿論市販品がなど期待できないので自作ということになるのだが、市販のUPSとシャットダウンソフトウェアのような高機能な物を作るのは難しいので、何らかの予定外の電源断が発生した場合に、APU上の Linux OSがきちんとシャットダウンシーケンスに従った停止ができるようにするだけの単純な物だ.


単純とは言っても、UPS側で電源断の検知、シャットダウン信号の送出、Linux OS側でシャッドダウンメッセージ信号を受け取ってシャットダウンを行い、必要であれば電源OFFを行わなければならない.通常であれば面倒なUPSソフトウェアを自分で開発しなければならないところだが、幸いなことにAPUシリーズには、PWRボタン端子が用意されており、この端子を押下する(Lowレベルに落とす)だけで、ACPIに対応しているOSの制御が行える.APUの場合、OSの停止から電源OFFまでこの “PWR”ボタン押下によって簡単に実現できる.



APU PWR ボタン
APUシリーズには “PWR” ボタン接続端子が用意されている(向かって右側手前の黒いピンヘッダ)

12V用自作UPS
電源部を切り離したAPU4D4とAPU専用自作UPS、PWR/RSTボタン中継基板

UPS Powered APU4D4
自作UPS基盤をマザーボード上のCPUヒートシンク取り付け用ホールを利用してスタッキングする

現段時点ではまだ初期動作確認が終わった段階なのでもう少しUPSの動作シーケンスに工夫が必要だ.今回はOSのシャットダウンだけが目的で、手持ちのストックパーツだけで組むので、プログラマブルな方法ではなく単純なHWロジックだけで組んでいる.本格的なUPSを作るのであればPICなどでプログラムを組むのが無難かもしれない.


今回は、とりあえず不意の電源断が発生した場合に、きちんとシャットダウンできることを確認しただけのほんの初期段階に過ぎないので、回路図や詳細については後日きちんと動作するようになってから紹介する予定だ.


電源断検出からシャットダウンシーケンスを開始するまでの時間やシャットダウン信号の送出時間、シャットダウンシーケンス中の複電時の振る舞いなど考えなければならないことはたくさんあるので、果たして単純なHWロジックだけできちんと作成できるかどうかは微妙な所だ.