Android USBガジェットを使ってみよう!:実践しながら学ぶ Android USBガジェットの仕組み(1)(1/4 ページ)
本連載では「AndroidのUSB機能」をテーマに、Android搭載の組み込みボードを実際に用いながら、その仕組みなどについて詳しく解説する。今回は、AndroidのUSBガジェットドライバが提供する代表的な機能「USBマスストレージ」と「ADB(Android Debug Bridge)」をLinux上で使えるようにする。
はじめに
PCの周辺機器(デバイス)にはさまざまなものがありますが、読者の皆さんはどんなデバイスを身の回りで使っていますか? マウス、キーボード、HDD、DVDドライブ……など、たくさんのデバイスがありますが、大抵の場合、これらとPCとの接続は共通して「USB(Universal Serial Bus)」が用いられているのではないでしょうか。
USBの良さは何といっても、(ほとんどの場合)PCに挿すだけですぐに使えることです。例えば、USBメモリの場合はPCに挿すだけでフォルダが表示されて……といった具合です。では、なぜPCに挿すだけですぐに使えるのでしょうか。それは、USBが「プラグ&プレイ(Plug and Play)」という、とても便利な機能に対応しているからです。
エンドユーザーという立場であれば「いや〜便利だね!!」という程度で、後は当たり前のように使用するだけでしょうが、実は、この便利な機能を実現する裏側では、日々苦労しているUSB開発技術者が存在するのです……(注1)。中でも、昨今、爆発的に普及しているAndroidスマートフォンの開発者はとても苦労されているのではないでしょうか(Androidスマートフォンには、USBインタフェースが標準搭載されています)。
ただでさえ、複雑なUSBの開発ですが、Android環境の場合は、開発期間が非常に短く、かつAndroid OS自身のバージョンアップにも随時対応していかなければならないのですから、その苦労は大変なものといえるでしょう。
そんな開発者のために、本連載では「AndroidのUSB機能」をテーマに、Android開発の実験用に購入した組み込みボードを用いながら、その仕組みなどについて詳しく解説していきます。
AndroidのUSB機能の仕組みを理解する上で重要となる機能は、Android OS(Linux)の「USBガジェットドライバ」です(注2)。USBガジェットドライバは、先に説明したプラグ&プレイ機能を提供するだけでなく、Androidをさまざまな用途で使えるようにするためのドライバを用意しています。特に、USBガジェットドライバが提供する代表的な機能として、「USBマスストレージ」「ADB(Android Debug Bridge)」が挙げられますので、これらを題材にして解説をしていきます。
まず、連載第1回となる今回は、AndroidをUSB接続するPC(ホスト)をセットアップし、実際にAndroid搭載の組み込みボードとUSB接続し、USBマスストレージとADBを使えるようにしていきます。
なお、この組み込みボードにインストールされているAndroidはデモ用ですので、期待した通りに動作しない場合が多々あります。本連載では、そういった問題の乗り越え方も含めて紹介していきます。
――さて、どんな難問が待ち構えているのでしょうか……。
使用する環境
はじめに、本連載で使用するPCと組み込みボードを紹介します。今回使用するPCは以下になります(図1)(表1)。
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」について以下に示します。
本連載で使用する外部インタフェースは、図3にある通り、シリアルインタフェースとLAN、USBです。
ここで、USB端子が2種類あることに気付かれたでしょうか? USB端子には“ホスト用”と“デバイス用”のものがあります。通常、PCにある端子はホスト用のもので、ここにUSBメモリなどを挿します。一方、デバイスの方は、スマートフォンなどのデバイス側でよく見かけるものです。本連載で説明する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搭載 組み込みボードのスペック |
関連記事: | |
---|---|
⇒ | 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にインストールし、デュアルブートできるようにする方法を紹介します。
今回紹介するデュアルブート環境の構築手順は、以下の通りです。
- UbuntuのCDイメージをダウンロード
- Daemon Tools Liteをインストールする
- Ubuntuをインストールする
- 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)。
これで仮想ドライブのセットアップは完了しました。次に、先ほどダウンロードしたUbuntuのCDイメージ「ubuntu-ja-11.04-desktop-i386.iso」を仮想ドライブに挿入してみましょう。
まず、Windowsの(右下の)タスクバーからDaemon Tools Liteをダブルクリックで開き、設定画面の「イメージカタログ」にダウンロードしたCDイメージ(ubuntu-ja-11.04-desktop-i386.iso)をドラッグ&ドロップします(図6)。そして、追加したイメージを選択して、マウントボタンを押します。
この後、エクスプローラを確認すると、通常のCDドライブを開いているかのように見えます(図7)。
3.Ubuntuをインストールする
次は、いよいよUbuntuのインストールです。インストールディスクを開いて、「wubi.exe」を起動します。すると、最初にインストール方式を選択する画面が表示されます(図8)。
この選択画面では、[Windows内にインストール]を選択します。この方式はフルインストールに比べて、以下のような特徴があります。
- Ubuntuインストール用のパーティションを作成する必要がない(注4)
- Ubuntuの動作性能はわずかに落ちる(注5)
- アンインストール(デュアルブートの解除)がとても簡単にできる(注6)
このようにWindowsユーザーが「Ubuntuも試したい!」という場合に使い勝手のよいものになっています。
次に、インストールの設定をします。インストール先のドライブは自由に設定してください。ただし、空き容量を十分に確保しておくことをオススメします。本連載では、Androidソースをフルビルドしますので、インストールサイズは「30Gバイト」に設定しました。インストールを開始し、無事に完了すればUbuntuのセットアップは終了です。
4.Ubuntuを起動する
PCを再起動し、次のようなOS選択画面が表示されれば、デュアルブート環境の構築は成功です。
Copyright © ITmedia, Inc. All Rights Reserved.