Wiiリモコンで操作できるプレゼン・マシンの製作(1) ―― オリジナルのAndroidマシンを自作する

渡邊 賢二

2.Userlandの構築

●Bluetooth USBアダプタ向けの修正を行う

 Wiiリモコンは,BluetoothのHID(Human Interface Device)として実装されています.Wiiリモコンを動作させる準備として,まずBluetooth USBアダプタを動作させるための修正を行います.

 AndroidではBluetoothモジュールの電源制御にRF KillというKernelの機能(Switch Class)を使用しますが,Bluetooth USBアダプタはこの仕組みに対応していません.Bluetoothの電源制御はlibbluedroidライブラリで実施しており,このソース・コードを修正する必要があります.
 


 上記のパッチをホーム・ディレクトリに置き,patchコマンドで変更を適用します.

$ cd ~ / mydroid / 
$ patch -p1 <  ~ / ignore_rfkill.patch  

 

●バッテリを持たないデバイス向けの修正を行う

 BeagleBoardはバッテリを持たないため,バッテリ残量が0%とみなされ,Android起動直後に低バッテリの警告がポップアップします.これに対応するため,バッテリ・サービスのバッテリ状態の設定処理を修正します(警告がでるだけなので,必須ではない).
 



 
 

 上記のパッチをホーム・ディレクトリに置き,patchコマンドで変更を適用します.

$ patch  -p1 < ~ / no_battery.patch 

 

●マウスを有効化する

 Androidはデフォルトでタッチ・スクリーンとトラック・ボールに対応していますが,マウス(ポインティング・デバイス)に対応しておらず,マウス・カーソルも表示されません.このパッチを適用せずにマウスを接続した場合,おかしな挙動になります.Wiiリモコンはマウスとしてエミュレートして動作させるため,Androidでマウス操作を可能にするための修正を行います.


 

 上記のパッチをホーム・ディレクトリに置き,patchコマンドで変更を適用します.

$ patch -p1 < ~ / mouse-cursor_and_wheel-event.patch

 

●キー・レイアウト・ファイルを修正する

 Androidでは,インプット・デバイスごとにキー・レイアウト・ファイル(Androidのキー名とキー・コードのマップ・ファイル)を持つことができます.デフォルトではエミュレータ用のキー・マップ・ファイル(qwerty.kl)がインストールされます.このデフォルトのキー・レイアウト・ファイルはBACK(戻る)が専用ボタンにのみ割り当てられているため,EscキーにもBACKを割り当てます.

 

●initプロセス設定ファイルを修正する

 Androidのinitプロセスが使用する設定ファイル(init.rc)を修正します(※4).initの"init"トリガのアクションとして,ルート・ファイル・システムをread only(ro)で再マウントする処理が含まれていますが,この処理はKernelパニック(致命的なエラーによる処理の停止)を引き起こしてしまうため,コメント・アウトします(※5).また,Androidが使用するサウンド関連のデバイス・ノードはLinux標準の"/dev/snd/"配下ではなく"/dev/"となっているため,正常に起動できません.これに対応するため,init.rdに"/dev/snd/"配下のデバイス・ノードに対するシンボリック・リンクを"/dev/"に作成する処理を追加します.

※4 initプロセスはinit.rcの他に"/proc/cpuinfo"の"hardware"の項目からハードウェア名を取得し,"init.<ハードウェア名>.rc"も読み込んでいるので,本来はこちらに記述するのが正しいです(この場合,MACHINE_STARTで指定するハードウェア名の修正が必要になる).

※5 yaffs2のマウント処理も必要ありませんが,マウントに失敗するだけで無害なのでそのままにしてあります.

 

●Homeキーを有効化する

 デフォルトでは携帯電話向けに,SIMのアクティベーションが完了するまで,Homeキーを無効にする処置を行っています.これに対応するため,system.propファイルにHomeキーを有効にするプロパティを設定しておきます.

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日