Ubuntu Weekly Recipe

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

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

みなさんはじめまして。長南(ちょうなん)と申します。今回から私もこの連載に寄稿させていただくこととなりました。まだまだ不慣れでお見苦しいところもあるかと思いますが,よろしくおつきあいいただければ幸いです。

さて,2012年1月13日号のUbuntu Weekly TopicsUbuntu TVコンセプトデザインが発表されたという話題が取り上げられましたが,テレビといえば欠かせないものはリモコンです。そこで今回は,Ubuntuでリモコンを使う方法,そして「Ubuntu魔法使い」になる方法について紹介します。

ハードウェアの選定は慎重に

Ubuntuをリモコンで操作しようとしたときに,一番最初に問題となるのはリモコンからの信号を受け取るためのハードウェアを用意することです。一般的なリモコンは赤外線で通信を行うのですが,最近はBluetoothが広く普及し,ショップの店頭で赤外線を取り扱うアダプタを見かけることが減ってきました。また運よく見かけたとしても,携帯電話などとの通信を行うIrDA規格を使用することを前提とした製品でリモコン受信用に使うのには苦労が必要だったり,そもそもUbuntuをはじめとしたLinuxで扱うことができるハードウェアなのかもよくわからなかったりします。

そのような苦境の時代が続いていたのですが,近年PC用地デジチューナーのオプション製品として,Windows Media Center対応のリモコンと受信機のセットが発売されるようになりました。使用するOSは違いますが実現したいことのイメージと製品の仕様が近いうえに,最悪挫折してしまったとしても製品本来の使い方のWindows Media Center用のリモコンとして使えそうです。そこで筆者はIO-DATA製のGV-MC7/RCKITを購入しました。地デジチューナーを買っていないのにオプション製品のリモコンを買うというのも不思議な感覚がありますが,その辺はあまり気にしないことにします。

図1 今回使用したリモコンセットのGV-MC7/RCKIT

図1 今回使用したリモコンセットのGV-MC7/RCKIT

なお,今回のレシピで使用したUbuntu環境は,11.10 Oneiric Ocelotです。

Ubuntuでのソフトウェアの準備

Ubuntuに限らずLinuxでリモコンを取り扱う際にはlirc注1を使います。Ubuntuではパッケージが用意されていますので,次のものをインストールします。

$ sudo apt-get install lirc lirc-x

インストールの途中でlircが扱うハードウェアについて質問されます。最初に使用するリモコンハードウェアについて選択するよう促されますので,"Windows Media Center Transceivers/Remotes (all)"選択します。

図2 lircで利用するリモコンハードウェアの選択

図2 lircで利用するリモコンハードウェアの選択

さらに送信用のハードウェアについても選択するよう促されますが,Ubuntuマシンから信号を送信することは今回考えませんので"None"を選択します。

図3 lircで仕様する赤外線送信ハードウェアの選択

図3 lircで仕様する赤外線送信ハードウェアの選択

なお,この設定は一度インストールした後でも,次のコマンドで再度設定しなおすことができます。

$ sudo dpkg-reconfigure lirc

設定した内容は/etc/lirc/hardware.conf,/etc/lirc/lircd.confにそれぞれ保存されます。

注1
Linux Infrared Remote Controlの頭文字が由来です。プロジェクトのWebサイトはwww.lirc.orgです。

受信デバイスの確認

ここでGV-MC7/RCKITの受信ユニットをUbuntuマシンに接続してみましょう。うまく認識されると,/var/log/kern.logに次のような内容が出力されます。

Jan  1 13:30:00 ubuntu kernel: [2816893.124204] input: Media Center Ed. eHome Infrared Remote Transceiver (0609:0353) as /devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/rc/rc1/input3
Jan  1 13:30:00 ubuntu kernel: [2816893.124324] rc1: Media Center Ed. eHome Infrared Remote Transceiver (0609:0353) as /devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/rc/rc1
Jan  1 13:30:00 ubuntu kernel: [2816893.128481] rc rc1: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 0
Jan  1 13:30:00 ubuntu kernel: [2816893.128511] mceusb 5-2:1.0: Registered SMK CORPORATION WMC RECEIVER Emulator Device 2009 on usb5:22

また,lirc用のデバイスファイルが/dev/lirc0といった名前で作成されることも確認できるはずです。

$ ls -l /dev/lirc*
crw------- 1 root root 250, 0 2012-01-01 13:30 /dev/lirc0

この時ハードウェアやカーネルのバージョンによっては,うまく認識されずにソースファイルからカーネルモジュールをコンパイルしないといけない場合もありますが,Ubuntu 11.10とGV-MC7/RCKITの組み合わせでは特別なことをやる必要がなく,接続すると自動的に認識することが筆者の環境で確認できました。

一旦lircサービスを停止させた上でmode2コマンドを使うことによって,mceusbデバイスが稼働しているのかどうかを確認することができます。

$ sudo service lirc stop
 * Stopping remote control daemon(s): LIRC                               [ OK ]
$ sudo mode2 -d /dev/lirc0
(ここでリモコンのボタンを押して受信ユニットに信号を送信してみます)
space 99750
pulse 950
space 400
pulse 350
...(以下省略)
^C (mode2コマンドを終了する際にはCtrl+Cを入力します)
$

リモコンのボタンを押すごとに受信した信号のようなものが表示されることが確認できればmceusbデバイスは正常に動作しています。

著者プロフィール

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

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

コメント

コメントの記入