Android USBガジェットを使ってみよう!:実践しながら学ぶ Android USBガジェットの仕組み(1)(2/4 ページ)
本連載では「AndroidのUSB機能」をテーマに、Android搭載の組み込みボードを実際に用いながら、その仕組みなどについて詳しく解説する。今回は、AndroidのUSBガジェットドライバが提供する代表的な機能「USBマスストレージ」と「ADB(Android Debug Bridge)」をLinux上で使えるようにする。
Android USBマスストレージ
誰しも一度は、携帯電話で写真や動画を撮影した経験があるのではないでしょうか。そこで撮影した写真や動画のデータは、大抵の場合、大容量のSDカードに保存すると思いますが、月日がたてば思い出も増え、いずれSDカードの容量も不足していきます……。
そういう場合は、SDカードのデータをPCなどにバックアップすることになると思いますが、ほとんどの携帯電話のSDカードは、バッテリーを外さないと取り出せない構造になっています(注7)。バッテリーを外すには、一度、携帯電話の電源をOFFにしないといけないので、ちょっと不便です。
そんなとき、携帯電話をPCにUSB接続して、SDカードの中のデータを取り出せたら便利ではないでしょうか? Android USBマスストレージは、そんな機能を提供します。使い方は簡単です。USBケーブルを接続するだけです。実際にやってみましょう。
今回、2枚の写真の入ったSDカードを用意しました。図10は、このSDカードを組み込みボードに挿して、ボード上で閲覧している様子です。
それでは、この組み込みボードをPCに接続してみましょう。
……あれ? 何も起きません。早速つまづきました!!
実は、この組み込みボード上に搭載された初期状態のAndroid 2.1は、「USB接続されたらSDカードをPCから閲覧できるようにする」という設定が適切にされていません。そのため、何も起きなかったのです。
通常であれば、Android内で常駐している「ボリュームデーモン」というデーモンプロセスが、自動で閲覧できるような状態にしてくれるのですが、ちょっとうまくいってないようです。というわけで、今回は、ボリュームデーモンの代わりに、手動でセッティングしてみましょう。
セッティングするといっても、この組み込みボードにどうやってアクセスすればよいのでしょうか? この組み込みボードにはシリアルケーブルを接続するための端子があります。この端子を使って、今回使用するPCと接続することで、Androidのコンソールを立ち上げることができます。なお、PC側でシリアルコンソール接続するためのアプリケーションとして本稿では「screen」を使用します。
まずは、PC側でAndroidのコンソールを立ち上げるところまでやってみましょう。
1.screenをインストールする
以下のコマンドでscreenをインストールしましょう(注8)。
sudo apt-get install screen
2.PCと組み込みボードをシリアルケーブルで接続する
実は、本連載で使用するPCには、シリアルインタフェースはありません。そのため、“シリアル変換USBケーブル”を使ってUSB接続するようにしています(図12)。
3.Androidのコンソールを立ち上げる
それでは、以下のように「screen」コマンドを実行(注9)して、Androidのコンソールを立ち上げます。
screen /dev/ttyUSB0 115200
そして、組み込みボードの電源をONにし、Android起動時のログ情報をPC側で見てみましょう(図13)。起動ログが出てきましたよ〜。うまくいきましたね!
それでは、いよいよPC側から組み込みボード上のSDカードを閲覧できるようにしてみましょう! まず、SDカードのパーティション名を知る必要があります。パーティション情報は「/proc/partitions」で参照できます。
項目 | 概要 |
---|---|
major | デバイスのメジャー番号 |
minor | デバイスのマイナー番号 |
#blocks | パーティションのブロック数 |
name | パーティションの名前 |
表5 パーティション情報の説明 |
この内、SDカードのパーティション名は“mmcblk0p1”です。ファイルシステム上のパスとしては「/dev/block/mmcblk0p1」です。このパス名を、Android USBガジェットのマスストレージの設定ファイル「/sys/devices/platform/s3c6410-usbgadget/gadget/lun0/file」に追加します(注10)。
echo “/dev/block/mmcblk0p1” > /sys/devices/platform/s3c6410-usbgadget/gadget/lun0/file
これで終わりです。それでは、実際にPCと組み込みボードをUSBで接続してみましょう。なお、接続する際には、組み込みボード側からはSDカードを閲覧できないように、SDカードはアンマウントしておきます(注11)。
USB接続すると図16のように、SDカードのディレクトリがPC上にポップアップします!
Copyright © ITmedia, Inc. All Rights Reserved.