くにゅくにゅの雑記帳

実験ノート的なやつ

LIVA MINI PC KITとFreeBSD

少し前のことですが,ECS - LIVA MINI PC KITを購入してみました。

f:id:kunukunu:20151010151511j:plain

筐体の大きさは,直感的には「お豆腐半丁分」程度。Intel BayTrail-M SoC と,DDR3L 2GBと,32GBまたは64GBのeMMCストレージがオンボードで搭載され,外部インタフェースとしては,GbEWi-Fi,USB,HDMIVGAなどが出ています。

f:id:kunukunu:20151010151520j:plain

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は,入れてしまえば安定動作

インストールさえすれば,FreeBSDUSBメモリから起動し,安定して動作します。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 可能な別パーティションを設けるためです。

 

以上,とりとめもなく書きましたが,参考になれば幸いです。