IntelのスティックPCであるIntel Compute Stick のWindows版に(あえて)Ubuntuをインストールしていきます。
Ubuntu版を使用しない理由
Intel Compute Stickには、Ubuntu 14.04 LTSのプレインストール版(STCK1A8LFC)が存在していますが、今回はWindows 8.1版(STCK1A32WFC)へUbuntuをインストールしていきます。
理由としては、以下の2点です。
2015年8月中旬時点では、Ubuntu版が日本で発売されていない
Ubuntu版はシステムメモリが1GB(Windows版2GB) 、ストレージが8GB(Windows版32GB)というWindows版よりも控えめの構成で、快適な動作が可能か不安がある
今回ご紹介する方法を試すことで、製造元・販売元のIntel及びアイ・オー・データ機器からの保証が受けられなくなる可能性がありますので、リスクを考えてから試していただくようお願いします。また、プリインストールされているWindows 8.1を消去してしまうので、再度Windows 8.1を使用したい場合は事前に必ずWindows 8.1のシステムバックアップを取得してください。
作業に必要なもの
インストール及び、その後の作業のために以下を準備します。
USBハブ
Intel Compute Stickには、USB2.0ポートが1つしかないため、入力デバイスや、ライブUSBを接続する必要からUSBハブの準備が必須です。最低でも3ポート、可能であれば4ポート以上あるものを準備しましょう。バスパワーハブである必要はありません。
キーボード・マウス
Bluetooth接続以外の物、可能であれば有線のものを準備しましょう。ライブUSBからブートさせた時点ではBluetoothは利用できません。
USBイーサネットアダプタ
ライブUSBからブートさせた時点では内蔵の無線LANは利用できません。インストール後の作業でパッケージを追加でインストールするため、別途でUSB接続のイーサネットアダプタを用意する必要があります。準備するアダプタは有線のものでも無線のものでも問題ありません。筆者は有線のものを使用しました。
Ubuntu 14.04.2のライブUSBイメージ
今回はUbuntu 14.04.2のiso を使用して、Ubuntuをインストールします。これは後述する無線・サウンドデバイス認識のためにkernel 3.16が必要であるためです。Ubuntu 14.04.2のカーネルサポートは2016年8月まで対応している ので、ひとまずここ1年の間は継続して使用できます。ライブUSBは、Ubuntuの場合は「ブータブルUSBの作成」から作成可能です。microSDカードにライブイメージを作成することも可能ですが、筆者は試していません。
インストール作業
ライブUSBをブートさせるために、ブートオプションの変更を実施します[1] 。 本体へ電源供給用のMicro USBケーブルを接続してから電源投入後、F2キー押下でBIOS(UEFI)の設定画面に入り、[ Configuration]-[Select Operating System]を[Windows 8.1 32-bit]から[Ubuntu 14.04 LTS 64-bit]へ変更して、設定を保存します(図1) 。
[1] どうやら、Intel Compute Stickは32bit/64bitの2つのEFI Shellを持っているようで、UEFIの設定でトグルする仕組みになっています。他のスティック型PCでは32bit UEFIのみ対応となっているものがほとんどなので、Ubuntuを簡単にインストールしたいのであれば、現時点ではIntel Compute Stickが唯一の選択肢となります。ちなみに、32bit UEFIに対応しているDebian Jessieの“ multi-arch” isoイメージ を使用すると[Select Operating System]を[Windows 8.1 32-bit]のままにしてもDebianのインストールが可能でした。
図1 UEFIの[Select Operating System]を変更する
その後、ライブUSBを挿入した状態で、再度電源投入すればライブUSBがブートして、デスクトップが表示されます。後の作業は通常のUbuntuインストールと大きく変わる部分はありません(図2)
図2 Intel Compute Stickのインストール時の画面。インストールに関して特別な作業はない。eMMCはSDカードとして見え、自動パーティショニングを選択した場合はEFIシステムパーティション、ROOT、スワップ領域の3パーティションが作成される。
インストール作業での注意点として、手動でパーティションを設定する場合、ディスクの先頭に512MB程度の大きさで、EFIシステムパーティションを作成する必要があります。Intel Compute StickはUEFIブートのみに対応しており、Legacyモードでのブートには対応していないので、ディスクの先頭にUEFIシステムパーティションを作成(して、grub2のEFIアプリケーションを配置)しなければ、インストール作業を実施してもeMMCをブート対象のデバイスとしてUEFIが見つけてくれません。なお、自動でのパーティション作成とした場合eMMC内のパーティション切り分けは以下になっていました。
モデル: MMC S10032 ( sd / mmc )
ディスク / dev / mmcblk0 : 30.6GB
セクタサイズ (論理/物理): 512B / 512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 538MB 537MB fat32 boot
2 538MB 28.5GB 28.0GB ext4
3 28.5GB 30.6GB 2054MB linux - swap ( v1 )
Intel Compute StickのeMMCも、第323回で吉田さんが紹介されたECS Liva と同じように、デバイスとしては/dev/mmcblk0として見えます。そして、USBポートがUSB 2.0ということも相まって、インストール(eMMCへの書き込み)にかなり時間がかかります(eMMC自身はread平均130MB/s、write平均45MB/s程度でした) 。筆者は何度かインストールを試して、それぞれで完了までに概ね20~30分程度かかりました。
デバイスを認識させる
microSDカードスロットや、グラフィックに関しては特に問題なく動作しています。Unityの3Dアクセラレーションが有効になってるのか確認するため、unity_support_testの出力を確認したところ、Unity 3D supportedがyesとなっていました。
$ / usr / lib / nux / unity_support_test - p
OpenGL vendor string : Intel Open Source Technology Center
OpenGL renderer string : Mesa DRI Intel ( R ) Bay Trail
OpenGL version string : 3.0 Mesa 10.3 . 2
Not software rendered : yes
Not blacklisted : yes
GLX fbconfig : yes
GLX texture from pixmap : yes
GL npot or rect textures : yes
GL vertex program : yes
GL fragment program : yes
GL vertex buffer object : yes
GL framebuffer object : yes
GL version is 1.4 +: yes
Unity 3D supported : yes
ただし、無線デバイス(Realtek RTL8723BS)及びHDMIの音声デバイス(Intel SST Audio Device)が使用できません。無線デバイスが使用できないと余計に無線デバイスをささなければならなかったり、有線の場合は配線等の取り回しが悪くなり、折角のスティックPCとしての長所を生かすことができなくなってしまいます。
そこで、初期状態では認識されていないデバイスを使用するために、OEM用のパッケージと思われる、chestersmill-settingsパッケージを導入 して、ドライバを追加でインストールします[2] 。
[2] chestersmill(Chester's Mill)が何を示しているのかは不明です。邪推レベルですが、Millという末尾の名前から、Intelのリファレンス機用のコードネームらしく見えます。
まず、必要なパッケージであるdkmsのインストールを行います。
$ sudo apt - get install dkms
その後、chestersmill-settingsのあるリポジトリの追加を行います。
$ cat << 'EOT' | sudo tee / etc / apt / sources . list . d / chestersmill . list
deb http : //oem.archive.canonical.com/updates/ trusty-chestersmill public
deb - src http : //oem.archive.canonical.com/updates/ trusty-chestersmill public
EOT
更に、追加したリポジトリを信頼できるソフトウェア提供元にするため、リポジトリの公開鍵(Canonical Archive Automatic Signing Key)を追加します。鍵の追加が完了したら、apt-get updateでパッケージインデックスファイルの再同期を実施します。
$ sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys F9FDA6BED73CDC22
$ sudo apt - get update
リポジトリ追加後、chestersmill-settingsをインストールします。内部的にRTL7823BS用の無線LAN用、Bluetooth用、音声デバイスの3つのデバイスのdkms installが走るため、インストール完了にはやや時間がかかります。
インストールが完了したら再起動します。再起動するとそれぞれのデバイスが使用可能になります。
sudo apt - get install chestersmill - settings
sudo reboot
無線LANは特に切れたり、接続が不安定になる現象に遭遇はしませんでした。速度を確認するため、speedtest-cli でダウンロード速度を調べてみたところ、下り19Mbps/上り0.5Mpbsという結果でした。
Bluetoothは熱によってデバイスとの接続が切れてしまったり、起動時に見えなくなっているという現象に遭遇しました。無線LANが802.11bgn 2.4GHzにのみ対応していることもあり、無線LANとBluetoothキーボード・マウスを併用した状態ではキーボードのチャタリングが起きる可能性も高いので、入力デバイス接続用としてはBluetoothを積極的に使用しないほうがストレスを感じる瞬間が少ないでしょう。
詳しいことはまだわかりませんが、Ubuntuプレインストール版では、Canonical側でchestersmill-settingsのような、何らかのスペシャルなパッケージ・ドライバがインストールされていてデバイスの認識はきちんとケアされているのだと思われます。
使用感
あらかたデバイスが使用可能になったところで、使用感について述べていきましょう。
アプリケーションの起動からウインドウの表示までに時間がかかったり、UnityのDashの表示に時間がかかったりしてもたつくタイミングはあるものの、テキスト編集やインターネットの閲覧に関しては大きな問題はありませんでした。
ディスク容量は、インストール直後では空き領域が20GB程度あるので、大きいデータを置かないのであれば、不自由することはないでしょう。空き容量が足りない場合、データ用ディスクとして、microSDカードを使用できると考えるかもしれません。しかし、microSDカードを常時挿入したままでいるとブートに失敗するので、止めておいたほうが無難です[3] 。
[3] microSDカードをさした状態でブートすると、EFI的なディスク番号の採番(fs0、fs1、……)がeMMCよりもmicroSDカードのほうが優先的に採番されるので、EFI shellが実行する/boot/efi/startup.nsh内に書かれているgrubのEFIアプリケーションのパスが実態と合わなくなることが原因です。従って、startup.nshに書かれているパスのディスクの部分をfs0:/boot/efi…… → fs1:/boot/efi……へ書き換えてやるか、UEFIの設定でEFI Shellを立ち上げるようにして、自分で対話的にEFIアプリケーションを実行することで問題を回避することが可能です。
SoCの動画再生支援機能を確認するため、i965-va-driverとvainfoをインストール後、vainfoを実行してみました。MPEG2、 H264、 VC-1には対応しているようです。
libva info : VA - API version 0.35 . 0
libva info : va_getDriverName () returns 0
libva info : Trying to open / usr / lib / x86_64 - linux - gnu / dri / i965_drv_video . so
libva info : Found init function __vaDriverInit_0_35
libva info : va_openDriver () returns 0
vainfo : VA - API version : 0.35 ( libva 1.3 . 0 )
vainfo : Driver version : Intel i965 driver - 1.3 . 0
vainfo : Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlick
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline : VAEntrypointVLD
VAProfileH264ConstrainedBaseline : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
実際に動画再生が可能なのか確認してみます。Intel Compute Stickに搭載されているSoCであるZ3735F の最大解像度が1920×1080であることから、vlcでSintel の1080p版をダウンロードして再生して見たところ、問題なく再生できました(図3) 。また、YouTube等の動画サイトからの再生では最初はロードに時間がかかるものの、その後は特に問題なく再生できていたので、ちょっとした動画をインターネットで見る分には支障ないと思われます。
図3 Sintelの1080p版をvlcで最大化で再生。映像や音声の遅れはなく、シークをしても再生が止まってしまうことはなかった。
システムモニタを見る限りでは、メモリが2GBしかないことがボトルネックとなっています。例えば、ブラウザのタブを開き過ぎると簡単にスワップが発生してしまいます。Ubuntuプレインストール版は、メモリが1GBであることを考えると動作はかなりシビアかもしれません。システムのメモリ使用量を減らしてみるためにXubuntuをインストールしてみたところ、特にアプリケーションを起動していない状態でのメモリ使用量はUbuntuに比べて200MB程度減ったことと、ウインドウマネージャがXfceになったことで体感は早くなったと言える状態になりました(図4) 。その代わり、Xubuntuだとなぜかchestersmill-settingsをインストールして認識させた無線LANが頻繁に切れたり、HDMIからの音声出力がぶつ切れになるなど各種デバイスがうまく動作しない現象に遭遇しました。
図4 Intel Compute StickへインストールしたXubutuのデスクトップ。動作は軽快になったものの、デバイスの動作が不安定になっている。
スティック型であることを活かしてプレゼン用に使用するという用途が思いつきます。しかしながら、世の中的にはプロジェクターへの接続はVGAのみという場所がまだ多いと思われます。そこで、HDMI-VGA(と、HDMIの延長ユニット)を使用してIntel Compute StickをVGAでディスプレイへ接続してみたところ、特に問題なくデスクトップが表示されました。
電源のない環境でも5V 2Aの出力に対応したモバイルバッテリーがあれば動作可能です。小型のキーボードとマウスを一緒に携帯すれば、ノートパソコンを持ち歩くよりも軽量になるので、学会や、勉強会で発表が多い方にはおあつらえ向きかもしれません[4] 。
HDMI接続可能なモバイルディスプレイ を使用して、デモ用途で使用するのも適していそうです。
総合すると、やや辛い局面がないではないものの、メモリを使いすぎる作業は実施しないという割り切りさえできれば、概ね日常での使用はこなせるであろう性能・使用感でした。