BeagleBoard上のAndroidでWacomのペンタタブレットを使う
今回は、Wacomのペンタブレットを、BeagleBoard上のAndroidで利用出来るようにする。
使用するタブレットは、FAVOという自宅にずっと放置されていた古いモデル:
タブレットのLinux向けのドライバは、Web上で公開されているので、これを上手く利用してAndroid向けのドライバを作成する事にする。
WacomタブレットのLinux向けドライバ
Wacomのペンタブレットデバイスは、W8001というチップセットを内部で使用しているらしく、このチップセット向けのLinuxデバイスドライバのソースは、Web上で公開されている。
SourceForgeで公開されている、WacomタブレットのLinux向けドライバのWebページから、適切なカーネルバージョンのドライバソースを取得する。
今回は、2.6.26〜2.6.36向けのドライバソースであるinput-wacomを利用する。
input-wacomの中にもバージョンがいくつかあるようだが、今回は、input-wacom-0.11.0.tar.bz2を取得する。
ドライバモジュールのコンパイル・インストール
autotools
input-wacomのWikiページを見ると、ドライバは、autotoolsを利用してコンパイル可能だと説明されている。
私は、autotoolsという名前は聞いたことがあるものの、詳細については知らなかった。どの様な役割を果たし、どう使うのかに関しては、Kazuyaさんのautoconfに関するページが非常に参考になった。
BeagleBoard(ARMプロセッサ)向けコンパイル・インストール
ただ、今回はautotoolsを使ってコンパイルをする必要はない。なぜなら、BeagleBoard向けにモジュールとしてコンパイルすれば良いことがわかっているし、Makefileを生成するまでもなく、それを実行するためには、以下のmakeを実行すれば良いからである:
> make ARCH=arm CROSS_COMPILE=/home/hide/workspace/git/myFroyo/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- -C /home/hide/workspace/git/myFroyo/kernel SUBDIRS=/home/hide/workspace/input-wacom-0.11.0/2.6.30 modules
これにより、/home/hide/workspace/git/myFroyo/kernelのカーネルのコンフィギュレーションを使って、BeagleBoard向けのドライバモジュールが/home/hide/workspace/input-wacom-0.11.0/2.6.30以下に作成される。作成されるモジュールは、wacom.koと、wacom_w8001.koの2つである。
次に作成したモジュールをBeagleBoardに転送する:
> ./adb -s 20100720 push /home/hide/workspace/input-wacom-0.11.0/2.6.30/wacom.ko /system/lib/modules/wacom.ko > ./adb -s 20100720 push /home/hide/workspace/input-wacom-0.11.0/2.6.30/wacom_w8001.ko /system/lib/modules/wacom_w8001.ko
ADBを使ってホストPCからAndroidにリモートシェルでアクセスし、モジュールをインストールする:
adb> insmod /system/lib/modules/wacom.ko adb> insmod /system/lib/modules/wacom_w8001.ko
インストール後に、ペンタブレットデバイスをAndroidに接続すれば、認識されてインプットデバイスとして利用することが出来るようになる。
モジュールインストールの自動化
WiFiモジュールの起動時インストールと同様に、ペンタブレットデバイスのモジュールも起動時にインストールされるように設定する。
まず、WiFi設定時に作成した/system/etc/init.omap3.shをAndroidからホストPCに転送する:
> ./adb -s 20100720 pull /system/etc/init.omap3.sh /home/hide/workspace/android_init/init.omap3.sh
取得したinit.omap3.shに以下のインストールコマンドを追記する:
--- init.omap3.sh.org 2011-06-19 22:43:34.000000000 +0900 +++ init.omap3.sh 2011-06-19 13:34:24.000000000 +0900 @@ -6,3 +6,7 @@ netcfg ra0 up netcfg ra0 dhcp +# enable Wacom pen tablet +insmod /system/lib/modules/wacom.ko +insmod /system/lib/modules/wacom_w8001.ko +
追記したinit.omap3.shをAndroidに転送し、スクリプトを更新する:
> ./adb -s 20100720 push /home/hide/workspace/android_init/init.omap3.sh /system/etc/init.omap3.sh
最後に、ADB経由でAndroidを再起動する
> ./adb -s 20100720 reboot-bootloader
この再起動以降は、起動時に自動的にドライバモジュールがインストールされるようになり、何もしなくても起動直後からペンタブレットデバイスを利用出来るようになる。
参考文献
Linuxデバイスドライバ全般に関しての見識を得るためには、必携:
- 作者: Jonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman,山崎康宏,山崎邦子,長原宏治,長原陽子
- 出版社/メーカー: オライリージャパン
- 発売日: 2005/10/22
- メディア: 単行本
- 購入: 2人 クリック: 43回
- この商品を含むブログ (36件) を見る