Ubuntu Weekly Recipe

第214回 春休み特別企画・赤外線リモコンを使う,あるいは「Ubuntu魔法使い」になる方法

この記事を読むのに必要な時間:およそ 7.5 分

リモコンの設定

次にリモコンそのものについての設定を行います。一口にリモコンと言ってもテレビ・エアコン・HDDレコーダ・BDプレーヤなど様々な家電製品用のものが身の回りにあるかと思いますが,リモコンのどのボタンが押されたのかを判別するための設定を/etc/lirc/lircd.confに記述する必要があります。

lircをインストールする際に設定された内容は,パッケージで準備されている設定を読み込むことになっていますが,残念ながらGV-MC7/RCKITのリモコンの信号はこの設定ではうまく認識されません。また,lircパッケージにに同梱されている設定ファイル群やlircプロジェクトで集積されているリモコン設定ファイル群注2にもこのリモコン用の設定は含まれていません。本来であればこういった場合には,ハードウェアの仕様を調べたり,実際にmode2コマンドで表示された内容などを参考に試行錯誤で設定ファイルを作らないといけないのですが,調べてみると昨年Vine Linuxのユーザーフォーラムでこの製品が話題となりGV-MC7/RCKITのリモコン用の設定ファイルが投稿されているのを見つけました。カンニングしているような気分もありますが,ここはありがたく使わせていただくことにします(フォーラムの投稿から設定ファイルの部分を抜き出したもの(gvmc7_rckit.conf)を用意しました)⁠

実際の設定ファイルである/etc/lirc/lircd.confを見てみると,設定ファイルをincludeで組み込むよう指定されています。

#Configuration for the Windows Media Center Transceivers/Remotes (all) remote:
include "/usr/share/lirc/remotes/mceusb/lircd.conf.mceusb"

そのため,先程の設定ファイルを/etc/lirc/にコピーした上で,lircd.confを編集します。

$ cd /etc/lirc
$ sudo cp /(ダウンロードしたディレクトリ)/gvmc7_rckit.conf /etc/lirc/
$ ls -l /etc/lirc/*.conf
-rw-r--r-- 1 root root 22016 2012-01-01 13:30 gvmc7_rckit.conf
-rw-r--r-- 1 root root   488 2012-01-01 13:30 hardware.conf
-rw-r--r-- 1 root root   561 2012-01-01 13:30 lircd.conf
-rw-r--r-- 1 root root   121 2011-04-01 13:30 lircmd.conf
$ sudo nano lircd.conf
(lircd.conf を編集します)

lircd.confファイルはすでに組み込まれていたincludeの部分をコメントアウトして,/etc/lirc/gvmc7_rckit.confを代わりにincludeするように編集します注3)⁠

#Configuration for the Windows Media Center Transceivers/Remotes (all) remote:
#include "/usr/share/lirc/remotes/mceusb/lircd.conf.mceusb"

#Configuration for the IO-DATA GV-MC7/RCKIT remote controller:
include "/etc/lirc/gvmc7_rckit.conf"

ここまで作業できたところで,lircサービスを開始させます。

$ sudo service lirc start
 * Starting remote control daemon(s) : LIRC                              [ OK ]

これでlircの設定が完成したわけですが,lircd.confやgvmc7_rckit.confが本当にうまく設定できているのかテストします。mode2コマンドはカーネルモジュールのテストですが,今回はlircのテストです。

$ irw
(ここでリモコンの電源ボタンを押してみます)
0000000000000001 00 KEY_POWER I-O_DATA_GV-MC7_RCKIT
0000000000000001 01 KEY_POWER I-O_DATA_GV-MC7_RCKIT
0000000000000001 00 KEY_POWER I-O_DATA_GV-MC7_RCKIT
0000000000000001 01 KEY_POWER I-O_DATA_GV-MC7_RCKIT
0000000000000001 02 KEY_POWER I-O_DATA_GV-MC7_RCKIT
0000000000000001 03 KEY_POWER I-O_DATA_GV-MC7_RCKIT
0000000000000001 04 KEY_POWER I-O_DATA_GV-MC7_RCKIT
(リモコンの再生ボタンを押してみます)
0000000000000009 00 KEY_PLAY I-O_DATA_GV-MC7_RCKIT
0000000000000009 00 KEY_PLAY I-O_DATA_GV-MC7_RCKIT
0000000000000009 01 KEY_PLAY I-O_DATA_GV-MC7_RCKIT
0000000000000009 02 KEY_PLAY I-O_DATA_GV-MC7_RCKIT
0000000000000009 03 KEY_PLAY I-O_DATA_GV-MC7_RCKIT
...(以下いろいろテストしてみてください)
^C (終了する場合には Ctrl+Cを押します)
$

このように,押されたリモコンの名前が表示されればlircは正常に動いています注4)⁠

注2
www.lirc.orgにメーカー・機種別に設定ファイルが公開されています。また,アーカイブとしてまとめられたものがダウンロードできます。
注3
lircd.confに直接gvmc7_rckit.confの内容を記述すると,dpkg-reconfigureで上書きされる可能性があります。一応以前の設定ファイルはhardware.conf.oldやlircd.conf.dpkg-oldという名前のファイルにバックアップされることになっていますがdpkg-reconfigureを複数回実行するとバックアップファイルも上書きされてしまうので注意が必要です。
注4
irwコマンドは,lircが作成するUNIXソケット/var/run/lirc/lircdを使用しますが,このソケットはすべてのユーザが読み書きできるようになっているため,一般ユーザで実行することができる仕組みになっています。

Bansheeの設定

これでようやくアプリケーションでリモコン信号を取り扱うことができるようになりました。Ubuntu標準の音楽プレーヤのBansheeをリモコンで操作できるようにしてみます。

BansheeにはChromeやFirefoxなどで良く見られるような,⁠エクステンション」を追加して機能を拡張する仕組みが用意されています。UbuntuではBansheeとlircを連携させるbanshee-extension-lircパッケージが用意されていますので,これをインストールします。

$ sudo apt-get install banshee-extension-lirc

そして,一旦Bansheeを起動し,このエクステンションを有効にします。⁠編集(E)」メニューから「設定(P)」を選択して「拡張機能」タブを開くと,Infrared Remote Controlの項目が出ているので,チェックを入れた上で「閉じる(C)」ボタンを押します。

図4 Bansheeでlirc extentionを有効にする

図4 Bansheeでlirc extentionを有効にする

エクステンションを有効化したら一旦Bansheeは終了させます。

一方,デスクトップ環境で作業している時にリモコン操作を監視させるための設定を行います。この設定はユーザ毎に行う必要があり,ホームディレクトリ直下の.lircrcに設定を作る必要があります。

$ cd ~
$ nano .lircrc
(.lircrc ファイルを編集します)

しかし,リモコンで操作したいアプリケーションがどんどん増えると設定ファイルの見通しが悪くなってしますので,ホームディレクトリにlircのアプリ向けの設定ファイルを格納するディレクトリを次のように作成しましょう。

$ mkdir ~/.lirc

そして,Banshee向けの設定ファイルを~/.lirc/bansheeに作成することにして,.lircrc自身は次のように,Banshee向けの設定ファイルを組み込むようにしてしまいます。

include ~/.lirc/banshee

また,Banshee向けの設定についてもエディタを使って編集します。

$ nano ~/.lirc/banshee

設定方法としては,beginとendの間にボタン,リモコン名,起動するプログラム,設定といった内容をそれぞれと次のように書きこみます。

begin
     button = KEY_HOME
     remote = I-O_DATA_GV-MC7_RCKIT
     prog = irexec
     config = banshee
end
begin
     button = KEY_PLAY
     remote = I-O_DATA_GV-MC7_RCKIT
     prog = banshee
     config = play
end
(以下同じように設定を作ってください)

ボタンやリモコン名については,lircで設定した内容をそのまま転記します。どのような内容であったか忘れた際には,前節で登場したirwコマンドで確認するようにしましょう。

上記の設定内容は,GV-MC7/RCKITのMediaCenterボタン(緑色の大きなボタン)を押した際にBansheeを起動し,リモコンの再生ボタンで実際に現在の曲を再生するという内容です。

ボタンを押したときに任意のコマンドを実行するような場合にはprogの部分にirexec,configの部分に実際に起動されるアプリケーションを,アプリケーション側でlircへの対応がされている場合にはprogにアプリケーション,configにそれぞれの機能を記述することになります。

現在のところBansheeのlircエキステンションではconfigにplay(再生)⁠pause(一時停止)⁠stop(停止)⁠previous(前の曲)⁠next(次の曲)⁠volume-up(音量上げる)⁠volume-down(音量下げる)⁠toggle-mute(消音)といった機能を指定することができます。

今回筆者が作成したファイルをサンプル(banshee)として用意しましたので,参考にしてみてください。

著者プロフィール

長南浩(ちょうなんひろし)

Ubuntu Japanese Team Member。第214回の記事がきっかけで,Software Designに記事を書かせていただくようになりました。Japanese Raspberry Pi User Groupでも活動し,「Raspberry Pi[実用]入門――手のひらサイズのARM/Linuxコンピュータを満喫!」の執筆にも参加させていただきました。

コメント

コメントの記入