LIRC に関するページです。

LIRC とは

Linux Infrared Remote Control の略。

Media Center Remotes

Microsoft 社の Media Center 用のリモコン。ジャンクで手に入れたのは、受信器が 0471:0815 Philips (or NXP) eHome Infrared Receiver として認識され、リモコンはこれ

lirc-0.8.6 までは新旧バージョン用のモジュールが mceusb と mceusb2 に分かれていたが、0.8.7 以降は mceusb に統一された。また、kernel-2.6.25 以降 IR フレームワークドライバは "Multimedia Support" セクションに含まれるようになった。

LIRC MLより

> With 2.6.32.* you'll need to use the 0.8.7 version of lirc.

No necessarily. You can use lirc 0.8.7 with the lirc_mceusb driver
it contains, or you can use the v4l/dvb media_build infra to get an
mceusb driver, which will work with lirc 0.9.0.

VirtualBox のゲスト OS 上での起動

ホスト OS が Ubuntu 10.04、VirualBox のバージョンが 4.1.2-73507~Ubuntu~lucid の環境では、ホストOSと同じ設定にした Ubuntu 10.04 でも irw でリモコンキーを押しても、画面には何も表示されなかった。ホスト OS が何かつかんでいるのかもしれない。(2011-10-16 補足:lirc_xbox モジュールは、ゲスト OS の Debian Wheezy 上で動作した。やはり、ホスト OS 上でドライバが自動的にロードされるモジュールはゲスト OS で動かないのかもしれない。)

Ubuntu 10.04 (Lucid) の場合

既に LIRC 関連のモジュールがインストールされているので、lirc-modules-source をインストールする必要はない。

dmesg 出力から lirc_mceusb として認識されている。

[898444.622324] usb 8-2: new full speed USB device using uhci_hcd and address 7
[898444.795149] usb 8-2: configuration #1 chosen from 1 choice
[898444.831780] lirc_dev: IR Remote Control driver registered, major 61 
[898444.832935] lirc_mceusb: Windows Media Center Edition USB IR Transceiver driver for LIRC 1.90
[898444.832937] lirc_mceusb: Daniel Melander <lirc@rajidae.se>, Martin Blatter <martin_a_blatter@yahoo.com>, Dan Conti <dconti@acm.wwu.edu>
[898444.959365] usb 8-2: reset full speed USB device using uhci_hcd and address 7
[898445.117050] lirc_dev: lirc_register_driver: sample_rate: 0
[898445.121994] lirc_mceusb[7]: Philips eHome Infrared Transceiver on usb8:7
[898445.122029] usbcore: registered new interface driver lirc_mceusb
[898480.784537] usbcore: deregistering interface driver lirc_mceusb
[898480.786378] lirc_mceusb[7]: usb remote disconnected
[898480.915310] lirc_dev: IR Remote Control driver registered, major 61 
[898480.919007] lirc_mceusb: Windows Media Center Edition USB IR Transceiver driver for LIRC 1.90
[898480.919010] lirc_mceusb: Daniel Melander <lirc@rajidae.se>, Martin Blatter <martin_a_blatter@yahoo.com>, Dan Conti <dconti@acm.wwu.edu>
[898481.036790] usb 8-2: reset full speed USB device using uhci_hcd and address 7
[898481.194039] lirc_dev: lirc_register_driver: sample_rate: 0
[898481.199033] lirc_mceusb[7]: Philips eHome Infrared Transceiver on usb8:7
[898481.199073] usbcore: registered new interface driver lirc_mceusb

lirc と lirc-x をインストールする。

$ sudo apt-get install lirc lirc-x

どのデバイスを利用するか聞かれるので、Windows Media Center Transceivers/Remotes (all) を選択すればよい。

LIRC-Ubuntu-Lucid01.png

送信用のデバイスを聞かれるが、よく分からないので None を選択しておく。

LIRC-Ubuntu-Lucid02.png

すると、自動的に /etc/lirc/hardware.conf が作成され、lircd が起動される。

  • /etc/lirc/hardware.conf
    # /etc/lirc/hardware.conf
    #
    #Chosen Remote Control
    REMOTE="Windows Media Center Transceivers/Remotes (all)"
    REMOTE_MODULES="lirc_dev lirc_mceusb"
    REMOTE_DRIVER=""
    REMOTE_DEVICE="/dev/lirc0"
    REMOTE_SOCKET=""
    REMOTE_LIRCD_CONF="mceusb/lircd.conf.mceusb"
    REMOTE_LIRCD_ARGS=""
    
    #Chosen IR Transmitter
    TRANSMITTER="None"
    TRANSMITTER_MODULES=""
    TRANSMITTER_DRIVER=""
    TRANSMITTER_DEVICE=""
    TRANSMITTER_SOCKET=""
    TRANSMITTER_LIRCD_CONF=""
    TRANSMITTER_LIRCD_ARGS=""
    
    #Enable lircd
    START_LIRCD="true"
    
    #Don't start lircmd even if there seems to be a good config file
    #START_LIRCMD="false"
    
    #Try to load appropriate kernel modules
    LOAD_MODULES="true"
    
    # Default configuration files for your hardware if any
    LIRCMD_CONF=""
    
    #Forcing noninteractive reconfiguration
    #If lirc is to be reconfigured by an external application
    #that doesn't have a debconf frontend available, the noninteractive
    #frontend can be invoked and set to parse REMOTE and TRANSMITTER
    #It will then populate all other variables without any user input
    #If you would like to configure lirc via standard methods, be sure
    #to leave this set to "false"
    FORCE_NONINTERACTIVE_RECONFIGURATION="false"
    START_LIRCMD=""
    

irw コマンドで動作を確認する。

$ irw
000000037ff07bfe 00 One mceusb
000000037ff07bfe 01 One mceusb
000000037ff07bfd 00 Two mceusb
000000037ff07bfd 01 Two mceusb
000000037ff07bfc 00 Three mceusb
000000037ff07bfc 01 Three mceusb
000000037ff07bf9 00 Six mceusb
000000037ff07bf9 01 Six mceusb
000000037ff07bfa 00 Five mceusb
000000037ff07bfa 01 Five mceusb
^C

Debian Wheezy の場合

dmesg 出力から mceusb として認識されていることが分かる。

[  275.000123] usb 5-1: new full speed USB device number 2 using uhci_hcd
[  275.170126] usb 5-1: New USB device found, idVendor=0471, idProduct=0815
[  275.170135] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  275.170143] usb 5-1: Product: eHome Infrared Transceiver
[  275.170148] usb 5-1: Manufacturer: Philips
[  275.170154] usb 5-1: SerialNumber: PH00VisU
[  275.472420] IR NEC protocol handler initialized
[  275.475706] IR RC5(x) protocol handler initialized
[  275.479101] IR RC6 protocol handler initialized
[  275.481312] IR JVC protocol handler initialized
[  275.482650] IR Sony protocol handler initialized
[  275.484056] Registered IR keymap rc-rc6-mce
[  275.484231] input: Media Center Ed. eHome Infrared Remote Transceiver (0471:0815) as /devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.0/rc/rc0/input10
[  275.484332] rc0: Media Center Ed. eHome Infrared Remote Transceiver (0471:0815) as /devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.0/rc/rc0
[  275.484401] mceusb 5-1:1.0: Registered Philips eHome Infrared Transceiver on usb5:2
[  275.484435] usbcore: registered new interface driver mceusb
[  275.499243] lirc_dev: IR Remote Control driver registered, major 251 
[  275.499842] rc rc0: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 0
[  275.499845] IR LIRC bridge handler initialized

/etc/lircd.conf の #UNCONFIGURED が含まれるとデーモンが起動しないので、mceusb 用のリモコンデータファイルをサンプルからコピーする。

# cp /usr/share/lirc/remote/mceusb/lircd.conf.mceusb /etc/lirc/lircd.conf
  • /etc/lirc/hardware.conf
    # /etc/lirc/hardware.conf
    #
    # Arguments which will be used when launching lircd
    LIRCD_ARGS=""
    
    #Don't start lircmd even if there seems to be a good config file
    #START_LIRCMD=false
    
    #Don't start irexec, even if a good config file seems to exist.
    #START_IREXEC=false
    
    #Try to load appropriate kernel modules
    LOAD_MODULES=true
    
    # Run "lircd --driver=help" for a list of supported drivers.
    DRIVER=""
    # usually /dev/lirc0 is the correct setting for systems using udev
    DEVICE="/dev/lirc0"
    MODULES="lirc_dev mceusb"
    
    # Default configuration files for your hardware if any
    LIRCD_CONF="/etc/lirc/lircd.conf"
    LIRCMD_CONF=""

irw コマンドで動作を確認。

# irw
^[[A000000037ff07bdf 00 KEY_LEFT mceusb
^[[D000000037ff07bdf 01 KEY_LEFT mceusb
000000037ff07bee 00 KEY_VOLUMEDOWN mceusb
000000037ff07bee 01 KEY_VOLUMEDOWN mceusb
000000037ff07bef 00 KEY_VOLUMEUP mceusb
000000037ff07bef 01 KEY_VOLUMEUP mceusb
000000037ff07bee 00 KEY_VOLUMEDOWN mceusb
000000037ff07bee 01 KEY_VOLUMEDOWN mceusb
^C
# cat /sys/class/rc/rc0/protocols 
[rc-5] [nec] [rc-6] [jvc] [sony] [lirc]
# echo lirc > /sys/class/rc/rc0/protocols
# cat /sys/class/rc/rc0/protocols
rc-5 nec rc-6 jvc sony [lirc]
# irw
000000037ff07bef 00 KEY_VOLUMEUP mceusb
000000037ff07bef 01 KEY_VOLUMEUP mceusb
000000037ff07bee 00 KEY_VOLUMEDOWN mceusb
000000037ff07bee 01 KEY_VOLUMEDOWN mceusb
000000037ff07bef 00 KEY_VOLUMEUP mceusb
000000037ff07bef 01 KEY_VOLUMEUP mceusb
000000037ff07bef 00 KEY_VOLUMEUP mceusb
000000037ff07bef 01 KEY_VOLUMEUP mceusb
000000037ff07bef 00 KEY_VOLUMEUP mceusb
000000037ff07bef 01 KEY_VOLUMEUP mceusb
000000037ff07bef 00 KEY_VOLUMEUP mceusb
000000037ff07bef 01 KEY_VOLUMEUP mceusb
^C

Debian Squeeze の場合

dmesg 出力。

[    2.052023] usb 5-1: new full speed USB device using uhci_hcd and address 2
[    2.223353] usb 5-1: New USB device found, idVendor=0471, idProduct=0815
[    2.223356] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.223359] usb 5-1: Product: eHome Infrared Transceiver
[    2.223361] usb 5-1: Manufacturer: Philips
[    2.223363] usb 5-1: SerialNumber: PH00VisU
[    2.223455] usb 5-1: configuration #1 chosen from 1 choice

Squeeze では mceusb モジュールがカーネルモジュールとして提供されていないので、lirc-modules-source をインストールして、モジュールをビルドする必要がある。

1. Install sources: (select just “mceusb2”)
apt-get install lirc-modules-source

2. Reconfigure:
dpkg-reconfigure lirc-modules-source

3. Prepare and install module:
m-a prepare
m-a a-i lirc

4. Load module:
modprobe lirc_mceusb2

Here is the lircd.conf: /usr/share/lirc/remotes/mceusb/lircd.conf.mceusb

And here hardware.conf:

LIRCD_ARGS=""
LOAD_MODULES=true
DRIVER="default"
DEVICE="/dev/lirc0"
MODULES="lirc_dev lirc_mceusb2"
LIRCD_CONF="/etc/lirc/lircd.conf"
LIRCMD_CONF=""

カーネルモジュールビルド後の dmesg 出力。

[  375.128181] usb 5-1: USB disconnect, address 2
[  731.584118] usb 5-1: new full speed USB device using uhci_hcd and address 3
[  731.749218] usb 5-1: New USB device found, idVendor=0471, idProduct=0815
[  731.749226] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  731.749232] usb 5-1: Product: eHome Infrared Transceiver
[  731.749237] usb 5-1: Manufacturer: Philips
[  731.749241] usb 5-1: SerialNumber: PH00VisU
[  731.749431] usb 5-1: configuration #1 chosen from 1 choice
[  731.764365] lirc_dev: IR Remote Control driver registered, major 61 
[  731.769052] 
[  731.769057] lirc_mceusb2: Philips eHome USB IR Transceiver and Microsoft MCE 2005 Remote Control driver for LIRC $Revision: 1.44 $
[  731.769064] lirc_mceusb2: Daniel Melander <lirc@rajidae.se>, Martin Blatter <martin_a_blatter@yahoo.com>
[  731.880131] usb 5-1: reset full speed USB device using uhci_hcd and address 3
[  732.031213] lirc_dev: lirc_register_plugin: sample_rate: 0
[  732.036192] lirc_mceusb2[3]: Philips eHome Infrared Transceiver on usb5:3
[  732.036261] usbcore: registered new interface driver lirc_mceusb2

参考

HID (Human Interface Device)

普通のPC用リモコンは専用の受信器とペアでないと使えない。また、USB接続の受信器は HID (Human Interface Device) として認識される。

SONY PCVA-IR5U の例

[1306802.209472] usb 8-2: new full speed USB device using uhci_hcd and address 9
[1306803.150413] usb 8-2: configuration #1 chosen from 1 choice
[1383513.755895] usb 8-2: USB disconnect, address 9
[1384644.731405] usb 8-2: new low speed USB device using uhci_hcd and address 10
[1384644.989676] usb 8-2: configuration #1 chosen from 1 choice
[1384645.051503] input: Sony Sony IR Receiver as /devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2:1.0/input/input124
[1384645.051635] generic-usb 0003:054C:00D4.007E: input,hiddev96,hidraw3: USB HID v1.10 Keyboard [Sony Sony IR Receiver] on usb-0000:00:1d.2-2/input0

/dev/hidraw3 として認識されている。

$ cat /proc/bus/input/devices 
I: Bus=0003 Vendor=054c Product=00d4 Version=0110
N: Name="Sony Sony IR Receiver"
P: Phys=usb-0000:00:1d.2-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2:1.0/input/input124
U: Uniq=
H: Handlers=kbd event7 
B: EV=120013
B: KEY=1000000000007 ff9f207ac140d7ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=ffff

devinput を利用して lirc で認識させようとしたが、まるでダメだった。

Generic HID Remote Driver for XBMC

coldsource 氏が [LINUX] Generic HID Remote Driver for XBMC (Drivers for XBMC on Linux and XBMC Live) - XBMC Community Forumで公開している hid_mapper というツールを用いると、HID として認識される受信器でもリモコンのボタンに任意のキーコードを割り当てられる。

XBOX DVD IR Receiver

XBOX/DVD IR Receiver

I-O DATA GV-MC7/RCKIT

赤外線リモコンのプロトコルの解析

参考


添付ファイル: fileLIRC-Ubuntu-Lucid02.png 629件 [詳細] fileLIRC-Ubuntu-Lucid01.png 707件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-12-07 (日) 15:12:13 (1568d)