LIVA MINI PC KITとFreeBSD
少し前のことですが,ECS - LIVA MINI PC KITを購入してみました。
筐体の大きさは,直感的には「お豆腐半丁分」程度。Intel BayTrail-M SoC と,DDR3L 2GBと,32GBまたは64GBのeMMCストレージがオンボードで搭載され,外部インタフェースとしては,GbEとWi-Fi,USB,HDMI,VGAなどが出ています。
DC5V単電源で動作し,消費電力はTypicalでたぶん10ワットもいかない。ファンレスながらも,稼働中はヒートシンクがほんのりと暖まる程度です。
しかしクセがある
スペックだけを見ると,自宅でちょっと動かしておきたいサーバや,実験用環境として使うには最適なものに思えてきます。しかし,一般論として,この手の低価格ミニPCには,ハードウェア的な「クセ」が多かれ少なかれあり,好きなOSを入れて運用したいという向きは注意が必要です。公式にサポートされているOSならば何の問題もなく動作しても,Linuxを入れるとか,少しでも道を外れたことに手を出そうとすると,とたんに「クセ」が顕在化するのです。
そもそも,低価格ミニPCは,フルサイズのPCとは少し違った構成になっています。BIOSではなくUEFI起動が必要だったり,eMMCストレージや,Wi-Fiモジュールなど,普通のPCではあまり採用されないようなデバイスが,ふんだんに使われていたりします。こと,UEFIがらみの話は根が深いようで,以下の記事が興味深いです。
Why cheap systems run 32-bit UEFI on x64 processors - Intel Software and Services
LIVAに話を戻しましょう。この子も,ご多分に漏れずクセがあるため,ここで気づいたことをまとめておきたいと思います。
Ubuntuはわりと動く
LIVAにおいて,公式にサポートされているOSはWindows 8.1 64bit版のみです。それ以外では,Ubuntu Desktopが比較的素直に動作し,Ubuntu Serverも少し無理をすればインストールできます。Ubuntu Serverのインストールに一工夫必要なのは,eMMCのドライバがないためです。
第323回 1週(2週?)遅れのGW特別企画!・ECS LIVAでUbuntuを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
ECSのLIVA-B3-2G-32Gにubuntu-server14.04 を今度こそインストール — eelsden
FreeBSDを動かしたい
Ubuntuは動いたので,FreeBSDも動かしたくなりました。インストール時点での最新版,FreeBSD 10.2-Release amd64-uefiのインストールイメージをUSBメモリに書き込み,以下の記事を参考に,インストーラを起動することができました。ブートローダーで mode 2 と打ってビデオモードを切り替えないと,なぜかカーネルがPanicします。
LIVA C0-2G-64G-WでFreeBSDを動かす カール・ミッチーのなんでも日記/ウェブリブログ
残念ながら,FreeBSDは内蔵eMMCを認識してくれません。また,Wi-Fiモジュールも認識してくれません。Wi-Fiはまあいいとして,eMMCを認識しないとインストール先が存在しないことになります。
そこで,インストールイメージとは別のUSBメモリをあらかじめ接続しておき,そこへインストールすることにします。FreeBSDは,これをSCSIドライブとして認識するので,手順は,普通のディスクにインストールするのと変わりません。
なお,USBメモリへのインストールはものすごく時間がかかります。ソースコードやportsまで入れると何時間もかかるので,必要最小限の構成でインストールすることをおすすめします。
FreeBSDは,入れてしまえば安定動作
インストールさえすれば,FreeBSDはUSBメモリから起動し,安定して動作します。Wi-Fiは使用できませんが,GbEは使えますので,ネットワークにも接続できます。ディスクアクセスは,所詮はUSBメモリなので決して速くありませんが,インストールが異様なまでに遅いこととは対照的に,実運用では,まあまあ実用的なレベルです。ただし,連続して書き込みを行うと,どうしても時間がかかるようです。
USBメモリのパーティション構成
gpart show コマンドで見られます。
=> 34 30529469 da0 GPT (15G) 34 1600 1 efi (800K) 1634 16777216 2 freebsd-ufs (8.0G) 16778850 13750653 3 freebsd-ufs (6.6G)
このとおり,先頭にefiパーティションがあることがわかります。残りのパーティションは,2つに分割しました。/ を read-only として,read-write 可能な別パーティションを設けるためです。
以上,とりとめもなく書きましたが,参考になれば幸いです。