連載
» 2011年07月22日 00時00分 UPDATE

実践しながら学ぶ Android USBガジェットの仕組み(1):Android USBガジェットを使ってみよう! (1/4)

本連載では「AndroidのUSB機能」をテーマに、Android搭載の組み込みボードを実際に用いながら、その仕組みなどについて詳しく解説する。今回は、AndroidのUSBガジェットドライバが提供する代表的な機能「USBマスストレージ」と「ADB(Android Debug Bridge)」をLinux上で使えるようにする。

[中垣内勇祐、森崇、中谷洋一(永和システムマネジメント),@IT MONOist]

はじめに

 PCの周辺機器(デバイス)にはさまざまなものがありますが、読者の皆さんはどんなデバイスを身の回りで使っていますか? マウス、キーボード、HDD、DVDドライブ……など、たくさんのデバイスがありますが、大抵の場合、これらとPCとの接続は共通して「USB(Universal Serial Bus)」が用いられているのではないでしょうか。

 USBの良さは何といっても、(ほとんどの場合)PCに挿すだけですぐに使えることです。例えば、USBメモリの場合はPCに挿すだけでフォルダが表示されて……といった具合です。では、なぜPCに挿すだけですぐに使えるのでしょうか。それは、USBが「プラグ&プレイ(Plug and Play)」という、とても便利な機能に対応しているからです。

 エンドユーザーという立場であれば「いや〜便利だね!!」という程度で、後は当たり前のように使用するだけでしょうが、実は、この便利な機能を実現する裏側では、日々苦労しているUSB開発技術者が存在するのです……(注1)。中でも、昨今、爆発的に普及しているAndroidスマートフォンの開発者はとても苦労されているのではないでしょうか(Androidスマートフォンには、USBインタフェースが標準搭載されています)。

※注1:筆者もAndroidスマートフォン開発に従事したことがあり、その大変さは身に染みています。


 ただでさえ、複雑なUSBの開発ですが、Android環境の場合は、開発期間が非常に短く、かつAndroid OS自身のバージョンアップにも随時対応していかなければならないのですから、その苦労は大変なものといえるでしょう。

 そんな開発者のために、本連載では「AndroidのUSB機能」をテーマに、Android開発の実験用に購入した組み込みボードを用いながら、その仕組みなどについて詳しく解説していきます。

 AndroidのUSB機能の仕組みを理解する上で重要となる機能は、Android OS(Linux)の「USBガジェットドライバ」です(注2)。USBガジェットドライバは、先に説明したプラグ&プレイ機能を提供するだけでなく、Androidをさまざまな用途で使えるようにするためのドライバを用意しています。特に、USBガジェットドライバが提供する代表的な機能として、「USBマスストレージ」「ADB(Android Debug Bridge)」が挙げられますので、これらを題材にして解説をしていきます。

※注2:ここで、「ガジェット」という名前は、「機器」という意味で、通常のUSBドライバと区別するために付けられています。


 まず、連載第1回となる今回は、AndroidをUSB接続するPC(ホスト)をセットアップし、実際にAndroid搭載の組み込みボードとUSB接続し、USBマスストレージとADBを使えるようにしていきます。

 なお、この組み込みボードにインストールされているAndroidはデモ用ですので、期待した通りに動作しない場合が多々あります。本連載では、そういった問題の乗り越え方も含めて紹介していきます。

――さて、どんな難問が待ち構えているのでしょうか……。

使用する環境

 はじめに、本連載で使用するPCと組み込みボードを紹介します。今回使用するPCは以下になります(図1)(表1)。

今回使用するPC 図1 今回使用するPC
OS Windows 7
CPU Core i5(2.67GHz)
メモリ 6Gバイト
HDD 約300Gバイト
USBポート USB 2.0ホスト×3
LAN 82577LC Gigabit Network Connection
表1 今回使用するPCのスペック

 続いて、使用する組み込みボード「マルチ・メディア ARM11ボード Idea6410+LCD4.3」について以下に示します。

組み込みボード(正面) 図2 組み込みボード(正面)

 本連載で使用する外部インタフェースは、図3にある通り、シリアルインタフェースとLAN、USBです。

組み込みボード(インタフェース部分) 図3 組み込みボード(インタフェース部分)

 ここで、USB端子が2種類あることに気付かれたでしょうか? USB端子には“ホスト用”と“デバイス用”のものがあります。通常、PCにある端子はホスト用のもので、ここにUSBメモリなどを挿します。一方、デバイスの方は、スマートフォンなどのデバイス側でよく見かけるものです。本連載で説明するUSBガジェットドライバが使用するのはこのデバイス側の方です。

組み込みボード(USB端子の拡大) 図4 組み込みボード(USB端子の拡大)
OS Android 2.1(Eclair)
CPU ARM1176JZF-Sコア(667MHz)
メモリ 128Mバイト Mobile DDR RAM
NAND Flash 256Mバイト
USBポート USB 1.1ホスト×1、USB 2.0デバイス×1
LAN 10/100Base-T Ethernet(DM9000)
表2 Android搭載 組み込みボードのスペック


PCのセットアップ

 それでは、まずPCのセットアップをしましょう。本連載では、Androidと接続するPC側のOSとして、「Linux」を採用します。

 「えっ、ちょっと待ってよ!」と、ここで、

1.Windowsを使うユーザーがほとんどなのに、なぜわざわざ「Linux」なの?


2.それに、今回使用するPCに搭載されているOSは「Windows 7」でしょ!?


という疑問を持った読者の方もいらっしゃるのではないでしょうか。

 まず、最初の疑問に対してですが、ユーザー視点からLinuxを採用するメリットはあまり見いだせないと思います。Linuxは、Windowsほど普及しているわけではありませんし、いまでこそGUI環境は充実してきましたが、やはり、まだまだWindowsほどの使い勝手の良さはないような気がします。

 ですが、“Androidの基盤部分を理解したい”という視点からは、いろいろとメリットを見いだすことができます。例えば、以下のものが挙げられるのではないでしょうか。

  • AndroidのベースとなるOSはLinuxなので、Linuxをホストとデバイスの両面から知ることができる
  • 今回、AndroidとUSB接続するが、その際、ホスト側のUSBドライバも作ってみると楽しいかもしれない
  • Linuxはオープンソースなので、分からないところはソースを参照できるし、いざとなればカスタマイズできる

 次に、2番目の疑問ですが、PCにWindowsとLinuxをデュアルブートできる環境を構築しますので問題ありません。一昔前は、デュアルブートするには、Windowsのパーティションを切って、いろいろとややこしい手順を踏み、下手をするとWindowsが立ち上がらなくなることもありました。

 ですが、最近はLinuxマシンを簡単に構築できるようになりました(本当に便利な世の中になったものです)。今回は、Ubuntu(11.04)をWindowsにインストールし、デュアルブートできるようにする方法を紹介します。

 今回紹介するデュアルブート環境の構築手順は、以下の通りです。

  1. UbuntuのCDイメージをダウンロード
  2. Daemon Tools Liteをインストールする
  3. Ubuntuをインストールする
  4. Ubuntuを起動する

 それでは、1つずつ説明していきましょう。

1.UbuntuのCDイメージをダウンロード

 まず、Ubuntuの日本語WebサイトからUbuntuの「Remix CDイメージ」をダウンロードします。今回は、原稿執筆時点(2011年6月)で最新のバージョン「11.04」を入手します。

Webサイト http://www.ubuntulinux.jp/products/GetUbuntu
ダウンロードファイル ubuntu-ja-11.04-desktop-i386.iso
ファイルサイズ 約700Mバイト
表3 UbuntuのRemix CDイメージ

 さて、「次は、CD-Rを用意して、CDイメージを焼いて……」と思われるかもしれませんが、ここではもう少し便利なやり方を紹介します。ダウンロードしたCDイメージをそのまま使って、あたかも実際にCD-Rを読み込んでいるかのようにする方法です。これを実現してくれるのが「仮想ドライブ」と呼ばれるものです。それでは、次の説明を読んで仮想ドライブをWindows上にセットアップしてみましょう。

2.Daemon Tools Liteをインストールする

 「Daemon Tools Lite」は仮想ドライブを構築するソフトウェアで、個人による非商用利用であれば無料で使用できます。まずは、以下のWebサイトからインストーラをダウンロードしましょう。

Webサイト http://www.daemon-tools.cc/jpn/products/dtLite
ダウンロードファイル DTLite4402-0131.exe
ファイルサイズ 約11Mバイト
表4 Daemon Tools Liteインストーラ

 インストーラを起動してインストールを開始します(注3)。インストールが完了するとPCの再起動を求められるので、再起動します。再起動後、エクスプローラでコンピュータのドライブ一覧を見ると、新しくBD-ROMドライブが表示されているはずです(図5)。

インストールされた仮想ドライブ 図5 インストールされた仮想ドライブ
※注3:インストール機能の選択では、「DAEMON Tools Lite コアファイル」「SPTD 1.76-高度エミュレーション(再起動要)」を選択します。


 これで仮想ドライブのセットアップは完了しました。次に、先ほどダウンロードしたUbuntuのCDイメージ「ubuntu-ja-11.04-desktop-i386.iso」を仮想ドライブに挿入してみましょう。

 まず、Windowsの(右下の)タスクバーからDaemon Tools Liteをダブルクリックで開き、設定画面の「イメージカタログ」にダウンロードしたCDイメージ(ubuntu-ja-11.04-desktop-i386.iso)をドラッグ&ドロップします(図6)。そして、追加したイメージを選択して、マウントボタンを押します。

CDイメージをドラッグ&ドロップ 図6 CDイメージをドラッグ&ドロップ

 この後、エクスプローラを確認すると、通常のCDドライブを開いているかのように見えます(図7)。

仮想ドライブからUbuntuのCDデータを参照 図7 仮想ドライブからUbuntuのCDデータを参照

3.Ubuntuをインストールする

 次は、いよいよUbuntuのインストールです。インストールディスクを開いて、「wubi.exe」を起動します。すると、最初にインストール方式を選択する画面が表示されます(図8)。

インストール方式の選択画面 図8 インストール方式の選択画面

 この選択画面では、[Windows内にインストール]を選択します。この方式はフルインストールに比べて、以下のような特徴があります。

  • Ubuntuインストール用のパーティションを作成する必要がない(注4)
  • Ubuntuの動作性能はわずかに落ちる(注5)
  • アンインストール(デュアルブートの解除)がとても簡単にできる(注6)
※注4:Ubuntuのインストール先は、Windows上の通常ファイルに対して行われます。
※注5:Windowsのファイルシステムを介した仮想環境であるためです。
※注6:Ubuntuのインストール先フォルダ内にある「uninstall-wubi.exe」をダブルクリックして、アンインストールボタンを押すだけです。


 このようにWindowsユーザーが「Ubuntuも試したい!」という場合に使い勝手のよいものになっています。

 次に、インストールの設定をします。インストール先のドライブは自由に設定してください。ただし、空き容量を十分に確保しておくことをオススメします。本連載では、Androidソースをフルビルドしますので、インストールサイズは「30Gバイト」に設定しました。インストールを開始し、無事に完了すればUbuntuのセットアップは終了です。

4.Ubuntuを起動する

 PCを再起動し、次のようなOS選択画面が表示されれば、デュアルブート環境の構築は成功です。

デュアルブート成功 図9 デュアルブート成功
       1|2|3|4 次のページへ

Copyright© 2014 ITmedia, Inc. All Rights Reserved.

エンジニア電子ブックレット