Ubuntu Weekly Recipe

第388回Intel Compute StickでUbuntuを使う

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 UEFIの[Select Operating System]を変更する
図1 UEFIの[Select Operating System]を変更する

その後、ライブUSBを挿入した状態で、再度電源投入すればライブUSBがブートして、デスクトップが表示されます。後の作業は通常のUbuntuインストールと大きく変わる部分はありません(図2)

図2 Intel Compute Stickのインストール時の画面。インストールに関して特別な作業はない。eMMCはSDカードとして見え、自動パーティショニングを選択した場合はEFIシステムパーティション、ROOT、スワップ領域の3パーティションが作成される。
図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]⁠。

まず、必要なパッケージである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]⁠。

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で最大化で再生。映像や音声の遅れはなく、シークをしても再生が止まってしまうことはなかった。
図3 Sintelの1080p版をvlcで最大化で再生。映像や音声の遅れはなく、シークをしても再生が止まってしまうことはなかった。

システムモニタを見る限りでは、メモリが2GBしかないことがボトルネックとなっています。例えば、ブラウザのタブを開き過ぎると簡単にスワップが発生してしまいます。Ubuntuプレインストール版は、メモリが1GBであることを考えると動作はかなりシビアかもしれません。システムのメモリ使用量を減らしてみるためにXubuntuをインストールしてみたところ、特にアプリケーションを起動していない状態でのメモリ使用量はUbuntuに比べて200MB程度減ったことと、ウインドウマネージャがXfceになったことで体感は早くなったと言える状態になりました(図4⁠⁠。その代わり、Xubuntuだとなぜかchestersmill-settingsをインストールして認識させた無線LANが頻繁に切れたり、HDMIからの音声出力がぶつ切れになるなど各種デバイスがうまく動作しない現象に遭遇しました。

図4 Intel Compute StickへインストールしたXubutuのデスクトップ。動作は軽快になったものの、デバイスの動作が不安定になっている。
図4 Intel Compute StickへインストールしたXubutuのデスクトップ。動作は軽快になったものの、デバイスの動作が不安定になっている。

スティック型であることを活かしてプレゼン用に使用するという用途が思いつきます。しかしながら、世の中的にはプロジェクターへの接続はVGAのみという場所がまだ多いと思われます。そこで、HDMI-VGA(と、HDMIの延長ユニット)を使用してIntel Compute StickをVGAでディスプレイへ接続してみたところ、特に問題なくデスクトップが表示されました。

電源のない環境でも5V 2Aの出力に対応したモバイルバッテリーがあれば動作可能です。小型のキーボードとマウスを一緒に携帯すれば、ノートパソコンを持ち歩くよりも軽量になるので、学会や、勉強会で発表が多い方にはおあつらえ向きかもしれません[4]⁠。

HDMI接続可能なモバイルディスプレイを使用して、デモ用途で使用するのも適していそうです。

総合すると、やや辛い局面がないではないものの、メモリを使いすぎる作業は実施しないという割り切りさえできれば、概ね日常での使用はこなせるであろう性能・使用感でした。

おすすめ記事

記事・ニュース一覧