PowerMate をLinuxで使う

前提(PowermateをLinux上で使う)


Griffin Technologyのパワーメイト(PowerMate)を研Qでlinux上でつかうことになったのでそれのメ モ。インストールに想定する機器は、ふつーのAT互換機+VineLinux2.6カーネル2.4あ たり。結論からいうとLinux上で動作して、xmms上でもちゃんと使えます。 Griffin Technology(http://www.griffintechnology.com/index.html)

まずは・・・

とりあえず、Vinelinuxでは、標準の状態でも機器としては認識します。ただ標準のドライバで出来ること はホトンドないです。ボタンを押したことぐらいしかわからない。(cat /dev/input/event0ってやるとわかるとおもいますが)というわけで満足に使い たければ、カーネルソースにパッチを当てなければならない模様。

ちなみにドライバをパッチ当てたときのdmesgによる認識結果

hub.c: new USB device 00:1f.4-2, assigned address 2
usb.c: USB device 2 (vend/prod 0x77d/0x410) is not claimed by any active
driver.
usb.c: registered new driver powermate
input: Griffin PowerMate on input0

パッチあて

とりあえず、apt-getでカーネルソースをもってこよう。できるだけ最新版がいいんじゃないかと思います。(理由:なんとなく)

apt-get kernel-source

その後、Linux and the Griffin PowerMateから、パッチをDLします。その後、 /usr/src/linux-2.4.20/drivers/usb/(カーネルのバージョンがちがったら-2.4.20の部分が違います) に移動して、パッチをあてます。

patch -p1 < powermate-*.patch

な、感じでパッチをあてれば、その後はカーネル再構築(モヂュールだけでよかたい)します。 簡単にかくと

make dep
make modules
make module_install

make modusles_installを忘れて2時間ほど悩んだのは秘密ですが・・・ んでもってこれらのパッチの当て方をまとめた英語版が http://groomlakelabs.com/grandamp/how-to/powermate-howto.txtあたりに書かれています。英語が得意なかたはこっちのほうが詳しくて良いと思います。

ちなみにカーネルの再構築ってなんぞや?っていうひとはこちらのサイトへ

Linux活用 日記-カーネル再構築 (http://www.a-yu.com/kernel.html)

その後、カーネルを再構築し再起動した後、rootになって

/sbin/modprobe evdev
/sbin/modprobe powermate

として、

hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik 
hid-core.c: USB HID support drivers
usb.c: registered new driver powermate
input: Griffin PowerMate on input0
みえれば、OKです。

powermate使用プログラム

ドライバーを入れただけではなんにも使えません。ちゃんと、ユーザープログラムをいれなければなりません。xmmsだとプラグインみた いなのが用意されてるみたいですが、試していません。まぁ、研究用途で使うので、適当に、付属してたサンプルプログラムを簡単に分解してわかるようにしておきまし た。

超簡単サンプルプログラム(power_mate.c)

といいつつ、書きっぱなしもなんなのでhttp://groomlakelabs.com/grandamp/code/にあるxmmsのプラグインをためしてみたところちゃんと動いたので、 ボリューム調整デバイスとしてlinuxで使えます。めでたしめでたし。ちゃんと、ボリュームに応じて青色LEDの明るさが 変わります。押しながら右にまわすと次の曲、左に回すとプレイリスト上の一個前の曲に移動します。2回おすとpause。もう一回2回おすと再生ですな。かなり便利 です。バックグラウンドでうごかしていても、ちゃんとキャッチするのでパワーメイトを完全に、XMMSのコントロール用につかえます。ぶっちゃけ、 それ以外に一般生活では使いみちがないっちゃー無いんですが...

ちなみにkylix上で使いたい人は、linux/input.hがkylixの型と競合するので、適当に構造体input_eventを書いておきましょう。もちろん書いたばあいは linux/input.hは抜いておきます。

一台予備として買っておいたので、ディスプレイの上から吊るして使っています。これならタンジブルインターフェースに近いですね(ぜんぜんタンジブルじゃないです。ウソですよ)


gaeru@gaeru.dyndns.org