「LIRC」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「Category:音声/動画」を「Category:マルチメディア」に置換)
(同期)
4行目: 4行目:
 
この記事ではシリアル・USB 赤外線デバイスを使って [http://lirc.org/ LIRC] "Linux Infrared Remote Control" を設定・使用する方法を説明しています。
 
この記事ではシリアル・USB 赤外線デバイスを使って [http://lirc.org/ LIRC] "Linux Infrared Remote Control" を設定・使用する方法を説明しています。
   
  +
LIRC はサポートしているリモコンのキーが押されたときにプログラムにあわせて特定のコマンドに変換することができるデーモンです。ここで、「プログラムにあわせて」とは同じキーでも実行しているプログラムによって異なる動作をさせることができることを意味します。LIRC から取得されたリモコンの情報は以下のようにプログラムに流れます:
==概要==
 
LIRC はサポートしているリモコンのキーが押されたのをプログラムにあわせてコマンドに変換することができるデーモンです。ここで、「プログラムにあわせて」とは実行しているプログラムによってキーの押下で異なる動作をさせることができることを意味します。
 
 
=== LIRC の役割 ===
 
LIRC を使ってリモコンからの情報がプログラムに流れる過程は以下の通りです:
 
 
* ユーザーがリモコンのボタンを押すことで IR または RF 信号が送信されます。
 
* ユーザーがリモコンのボタンを押すことで IR または RF 信号が送信されます。
* 信号が Linux が入ったパソコンに接続されたレシーバーによって受信されます。
+
* Linux パソコンに接続されたレシーバーによって信号が受信されます。
* カーネル (の適切なモジュール) {{ic|/dev/lirc0}} でレシーバーからパルス幅の情報をキャラクタラズします。
+
* カーネル (のモジュール) によってリモコンから送信されたパルス信号が {{ic|/dev/lirc0}}, {{ic|/dev/input/eventX}}, {{ic|/dev/ttyUSBX}}, {{ic|/dev/ttyS0}} などデバスに変換されます。
* {{ic|/usr/bin/lircd}} は {{ic|/etc/lirc/lircd.conf.d/foo.conf}} からの情報パルスをボタンの押下情報に変換します。
+
* {{ic|/usr/bin/lircd}} は {{ic|/etc/lirc/lircd.conf.d/foo.conf}} の情報を使ってパルス信号をボタンの押下情報に変換します。
* LIRC を使用するプログラムは {{ic|/usr/bin/lircd}} のボタン押下情報を {{ic|~/.lircrc}} によってユーザーが定義した操作に解釈します。
+
* LIRC を使用するプログラムは {{ic|~/.lircrc}} に書かれている情報に従って {{ic|/usr/bin/lircd}} のボタン押下情報をユーザーが定義した操作に解釈します。
   
=== 必要なファイル ===
+
==インストール==
  +
{{Pkg|lirc}} パッケージを[[インストール]]してください。
* {{ic|/etc/lirc/lircd.conf.d/foo.conf}} - スキャンコード --> キーに変換するシステムレベルの設定。このディレクトリには複数の conf ファイルを入れることができ、それぞれがシステムの各リモートコントローラ・レシーバー固有です。
 
{{Note|これらはユーザーが作成する設定ファイルであり、パッケージによって直接作られるファイルではありません。}}
 
   
  +
==設定==
=== 任意のファイル ===
 
LIRC を使用するアプリケーションによっては、以下のファイルは任意です。例えば {{Pkg|mplayer}} や {{Pkg|mythtv}} は以下のファイルを使ってキーマップやアクションを定義します。全てのアプリケーションが必要とするわけではありません。例として、{{Pkg|kodi}} は自分の xml ファイルを使ってマッピングを行います。
 
* {{ic|~/.lircrc}} - プログラムごとの lirc マップ ({{ic|~/.lirc/foo}}, {{ic|~/.lirc/bar}} など) を指定する '''include''' ステートメントを記述するファイル。
 
* {{ic|~/.lirc/foo}} - キー --> 操作に翻訳するユーザーレベルの設定。各リモコンとアプリケーション foo の固有設定。
 
   
  +
{{Note|このセクションでは簡単な説明だけを行います。完全なドキュメントは [http://lirc.sourceforge.net/lirc.org/html/index.html 開発元のホームページ] を参照してください。}}
==インストール==
 
[[公式リポジトリ]]にある {{Pkg|lirc}} パッケージを[[インストール]]します。
 
   
  +
{{ic|/etc/lirc/lircd.conf.d/foo.conf}} はスキャンコードをキーに変換する全ユーザー共通の設定ファイルです。ディレクトリには複数の conf ファイルを保存することができ、それぞれのファイルが各々のリモコン・レシーバに対応します。これらのファイルはユーザーが作成するファイルであり、{{Pkg|lirc}} パッケージに初めから用意されているわけではありません。
{{Note|古いリモコンのサポートは公式で上流から落とされています。サポートされていないハードウェアを使用する場合は [[AUR]] のパッケージを検索してモジュールをビルドしてください。}}
 
   
  +
LIRC でリモコンを管理するにはスキャンコードからキーマップに変換する定義が必要です。定義情報を入手する方法は2つ存在します。
==設定==
 
  +
リモコンによっては LIRC がなくても"キーボード"として認識されそのように動作することがあります。このように認識されているとコマンドを二重に実行してしまう可能性があります。シェルやテキストエディタを開いて、リモコンのボタンを押してキーボードとして認識されていないかテストして下さい。文字や数字が打ち込まれたり、物理キーボードの上・下・右・左矢印キーのように動く場合、無効にする必要があります。次に進む前に [[#リモコンがキーボードとして機能する]] を見て下さい。
 
  +
==== 上流の設定ファイル ====
  +
  +
使用するリモコン・レシーバを確認して、既に設定ファイルが存在しないか確認してください。{{ic|irdb-get}} を使うことで [http://lirc-remotes.sourceforge.net/remotes-table.html リモコンデータベース] を検索するか URL をブラウザで開いて手動で検索してください。
  +
  +
例えば {{ic|irdb-get}} を使って Streamzap 製のリモコンの設定ファイルを検索・入手するには:
   
  +
$ irdb-get find stream
=== LIRC の設定ファイル ===
 
  +
atiusb/atiusb.lircd.conf
LIRC がリモコンを扱えるようにするにはスキャンコードとキーマップの定義が必要です。適当な conf ファイルを {{ic|/etc/lirc/lircd.conf.d}} にコピーすることでマッピングできます。
 
  +
digital_stream/DTX9900.lircd.conf
  +
snapstream/Firefly-Mini.lircd.conf
  +
streamzap/PC_Remote.lircd.conf
  +
streamzap/streamzap.lircd.conf
  +
x10/atiusb.lircd.conf
  +
  +
$ irdb-get download streamzap/streamzap.lircd.conf
  +
Downloaded sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/streamzap/streamzap.lircd.conf as streamzap.lircd.conf
   
  +
必要なファイルを {{ic|/etc/lirc/lircd.conf.d/}} にコピーすることでデーモンによってリモコンのサポートが初期化されます:
{{Note|Common configs are provided by {{Pkg|lirc}}, like those bundled with TV cards that can be installed automatically. The primary source of config files is the LIRC homepage. Check the [http://lirc.org/html/table.html official list of supported hardware] to know, which kernel modules and lircd drivers are required.}}
 
   
  +
# cp streamzap.lircd.conf /etc/lirc/lircd.conf.d/
==== 選択肢 1. 上流の設定ファイル ====
 
使用するリモコン/レシーバを確認して {{ic|/usr/share/lirc/configs}} に設定済みの設定ファイルが存在しないか見てください。存在したら、デーモンが初期化をできるように、必要な conf を {{ic|/etc/lirc/lircd.conf.d}} にコピーします。
 
   
==== 選択肢 2. ユーザーが作成した設定ファイル ====
+
==== ユーザーが作成した設定ファイル ====
サポートされていないハードウェアを使用する場合、誰かが作った設定ファイルを (google) 検索するか自分で作成する必要があります。{{ic|/usr/bin/irrecord}} を使うことでとても簡単に作成することができ、必要な手順についてガイドが出て来ます。認識されているリモコンを使用する場合、以下のように起動してください:
+
サポートされていないハードウェアを使用する場合、誰かが作った設定ファイルを (google) 検索するか自分で作成する必要があります。設定ファイルは {{ic|/usr/bin/irrecord}} を使うことでガイドに従ってとても簡単に作成することができます。使用するリモコンが認識されている場合、以下のように起動してください:
   
 
# irrecord --device=/dev/lirc0 MyRemote
 
# irrecord --device=/dev/lirc0 MyRemote
   
プログラムを実行するとリモコンにあるボタンを押して学習させるように示されます。最終的には全てのボタンとスキャンコードがマッピングされます。全ての操作に10分もかからないはずです。完了したら{{ic|/etc/lirc/lircd.conf.d/foo.conf}} に作成したファイルが保存されます。
+
プログラムを実行するとリモコンボタンを押して学習させるように示されます。最終的には全てのボタンとスキャンコードがマッピングされます。全ての操作に10分もかからないはずです。マッピングが完了したら {{ic|/etc/lirc/lircd.conf.d/foo.conf}} にファイルが保存されます。
   
{{Note|他の人もあなたの設定が使えるように、プログラムに記述されているメールアドレスに作成された設定ファイルを送ってみていいでしょう。}}
+
{{Note|プログラムに記述されているメールアドレスに作成された設定ファイルを送ることで、あなたが作た設定ファイルを他の人使えるよになります。}}
  +
  +
=== 任意のファイル ===
  +
LIRC を使用するアプリケーションの中には一部、以下のファイルを使うものがあります。例えば {{Pkg|mplayer}} や {{Pkg|mythtv}} は以下のファイルを使ってキーマップやアクションを定義します。全てのアプリケーションが必要とするわけではありません。例として {{Pkg|kodi}} は固有の xml ファイルを使ってマッピングを行います。詳しくは各アプリケーションのドキュメントを参照してください。
  +
* {{ic|~/.lircrc}} - プログラムごとの lirc マップ ({{ic|~/.lirc/foo}} や {{ic|~/.lirc/bar}} など) を指定する ''include'' ステートメントを記述するファイル。
  +
* {{ic|~/.lirc/foo}} - ユーザー個別にキーを操作に翻訳する設定。各リモコンとアプリケーション foo の固有設定。
   
 
== リモコンのテスト ==
 
== リモコンのテスト ==
{{ic|lircd.service}} を[[起動]]してブート/シャットダウン時に実行されるように[[有効化]]してください ('''強く推奨''')。
+
{{ic|lircd.service}} を[[起動]]してブート/シャットダウン時に実行されるように[[有効化]]してください (強く推奨)。
   
 
{{ic|/usr/bin/irw}} を使ってリモコンをテストしてください、リモコンのボタンを押した時に LIRC が受信したものを全て標準出力に流します。
 
{{ic|/usr/bin/irw}} を使ってリモコンをテストしてください、リモコンのボタンを押した時に LIRC が受信したものを全て標準出力に流します。
62行目: 70行目:
 
000000037ff07bf2 01 Home mceusb
 
000000037ff07bf2 01 Home mceusb
   
このコマンドが動作しない場合 (irw が何も出力をしない): {{ic|/etc/lirc/lircd.conf.d/}} 内の config ファイルに間違いがないか再度確認してください。
+
このコマンドが動作しない場合 (irw が何も出力をしない): {{ic|/etc/lirc/lircd.conf.d/}} 内の config ファイルに間違いがないかよく確認してください。
   
 
==プログラムごとの設定 ==
 
==プログラムごとの設定 ==
LIRC では同じキーを使ってプログラムごとに別々のコマンドになるように設定することができます。つまり、特定のキーを押した時に mplayer と vlc で挙動を変えられます。
+
LIRC では同じキーでもプログラムごとに別々のコマンドになるように設定することができます。つまり、特定のキーを押した時に mplayer と vlc で挙動を変えられます。
   
プログラムを決めてから LIRC のコマンドを使さい。一般的なプログラムの例: {{Pkg|mplayer}}, {{Pkg|mythtv}}, {{Pkg|totem}}, {{Pkg|vlc}}, {{Pkg|kodi}}。
+
まずは LIRC のコマンドを使用するプログラムを決めください。一般的なプログラムの例: {{Pkg|mplayer}}, {{Pkg|mythtv}}, {{Pkg|totem}}, {{Pkg|vlc}}, {{Pkg|kodi}}。
   
{{Note|Kodi は非標準的な方法で LIRC を実装しています。他のプログラムが使用する LIRC の標準ファイルではなく、特別な xml ファイルである {{ic|~/.xbmc/userdata/Lircmap.xml}} を編集する必要があります。Kodi を使用するユーザーは [[Kodi#リモートコントロールの使用]] の記事を読んでください。}}
+
{{Note|Kodi は非標準的な方法で LIRC を実装しています。他のプログラムが使用する LIRC の標準ファイルではなく、特別な xml ファイルである {{ic|~/.xbmc/userdata/Lircmap.xml}} を編集する必要があります。Kodi を使用するユーザーは [[Kodi#リモートコントロールの使用]]の記事を読んでください。}}
   
  +
プログラム固有のマッピングを指定するファイルを作成してください:
Users should create the expected files showing LIRC where the various program-specific maps reside:
 
 
$ mkdir ~/.lirc
 
$ mkdir ~/.lirc
 
$ touch ~/.lircrc
 
$ touch ~/.lircrc
   
* {{ic|~/.lirc}} に各プログラムの名前が付いた設定ファイルを作成してください。
+
{{ic|~/.lirc}} に各プログラムの名前が付いた設定ファイルを作成してください。例:
   
例:
 
 
$ ls ~/.lirc
 
$ ls ~/.lirc
 
mplayer
 
mplayer
83行目: 90行目:
 
vlc
 
vlc
   
  +
{{Tip|Google で検索すれば様々なリモコン・プログラム固有のファイルが山ほど出てきます。この記事では各プログラムのキーマップについては扱いません。}}
{{Note|Providing an exhaustive listing of keymaps for each program is beyond the scope of this wiki article. Many pre-made files unique to each remote/program are available via googling.}}
 
   
* {{ic|~/.lircrc}} を編集して LIRC でコントロールするプログラムの数だけ {{ic|~/.lirc/foo}} を指定する ''include'' ステートメントを記述してください。
+
{{ic|~/.lircrc}} を編集して LIRC でコントロールするプログラムの数だけ {{ic|~/.lirc/foo}} を指定する ''include'' ステートメントを記述してください。例:
   
例:
 
 
{{hc|~/.lircrc|
 
{{hc|~/.lircrc|
 
include "~/.lirc/mplayer"
 
include "~/.lirc/mplayer"
96行目: 102行目:
 
==トラブルシューティング==
 
==トラブルシューティング==
 
=== リモコンがキーボードとして機能する ===
 
=== リモコンがキーボードとして機能する ===
  +
==== Xorg を使用している場合 ====
 
Streamzap USB PC Remote など、リモコンによっては Xorg によって Human Interface Device (HID) と認識されるものがあり、物理キーボードからの入力のようにキーの一部または全てがキーストロークとして認識されます。この挙動は LIRC でデバイスを管理しようとしたときに問題になります。無効にするには、以下のファイルを作成して X を再起動してください:
 
Streamzap USB PC Remote など、リモコンによっては Xorg によって Human Interface Device (HID) と認識されるものがあり、物理キーボードからの入力のようにキーの一部または全てがキーストロークとして認識されます。この挙動は LIRC でデバイスを管理しようとしたときに問題になります。無効にするには、以下のファイルを作成して X を再起動してください:
   
109行目: 116行目:
 
$ cat /proc/bus/input/devices | grep -e IR
 
$ cat /proc/bus/input/devices | grep -e IR
 
例えば {{ic|<nowiki>N: Name="cx88 IR (WinFast DTV2000 H rev."</nowiki>}} の場合 {{ic|WinFast}} にします。
 
例えば {{ic|<nowiki>N: Name="cx88 IR (WinFast DTV2000 H rev."</nowiki>}} の場合 {{ic|WinFast}} にします。
  +
  +
==== ARM デバイスで Xorg を使用していない場合 ====
  +
{{ic|/etc/modprobed.d/streamzap.conf}} を作成して問題を起こすモジュールをブラックリストに追加してください。例えば Streamzap のリモコンの場合:
  +
install ir_sharp_decoder /bin/false
  +
install ir_xmp_decoder /bin/false
  +
install ir_rc5_decoder /bin/false
  +
install ir_nec_decoder /bin/false
  +
install ir_sony_decoder /bin/false
  +
install ir_mce_kbd_decoder /bin/false
  +
install ir_jvc_decoder /bin/false
  +
install ir_rc6_decoder /bin/false
  +
install ir_sanyo_decoder /bin/false
  +
  +
=== デフォルト設定を変更する ===
  +
  +
{{ic|irw}} で何も出力されない場合、{{ic|/etc/lirc/lirc_options.conf}} のデフォルト設定が原因である可能性があります (あるいはアップデートによって上書きされた可能性もあります)。
  +
  +
まず、{{ic|/dev/lirc0}} が存在するかどうか確認してください:
  +
  +
$ mode2 --driver default --device /dev/lirc0
  +
  +
リモコンのボタンを押してみて何か出力されないか確認してください。出力がある場合、{{ic|/etc/lirc/lirc_options.conf}} を編集して ''driver'' と ''device'' を適当な値に変更してください。
  +
  +
何も出力されない場合、適切なドライバーとデバイスの組み合わせを探します。最初に lirc がデフォルトでどの組み合わせを認識しているのか確認します。{{Pkg|v4l-utils}} パッケージに含まれている {{ic|ir-keytable}} を実行して出力を確認してください。以下のように出力されます:
  +
  +
Found /sys/class/rc/rc0/ (/dev/input/event5) with:
  +
Driver ite-cir, table rc-rc6-mce
  +
Supported protocols: unknown other lirc rc-5 jvc sony nec sanyo mce-kbd rc-6 sharp xmp
  +
Enabled protocols: lirc
  +
Extra capabilities: <access denied>
  +
  +
上記の場合、lirc は {{ic|/dev/input/event5}} を赤外線デバイスとして自動的に認識して、{{ic|devinput}} ドライバーが使われています。以下のコマンドを実行することで組み合わせが正しいか確認します:
  +
  +
$ mode2 --driver devinput --device /dev/input/event5
  +
  +
リモコンのボタンを押してみてください。何も出力されない場合、別のドライバーとデバイスの組み合わせを試してみてください。機能する組み合わせを発見したら、{{ic|/etc/lirc/lirc_options.conf}} の ''driver'' と ''device'' を変更してください。
  +
  +
==== サンプル ====
  +
  +
MCE RC6 互換レシーバの設定例:
  +
{{hc|/etc/lirc/lirc_options.conf|2=[lircd]
  +
nodaemon = False
  +
driver = default
  +
device = /dev/lirc0
  +
output = /var/run/lirc/lircd
  +
pidfile = /var/run/lirc/lircd.pid
  +
plugindir = /usr/lib/lirc/plugins
  +
permission = 666
  +
allow-simulate = No
  +
repeat-max = 600
  +
  +
[lircmd]
  +
uinput = False
  +
nodaemon = False
  +
}}
   
 
== 参照 ==
 
== 参照 ==

2017年11月13日 (月) 21:08時点における版

この記事ではシリアル・USB 赤外線デバイスを使って LIRC "Linux Infrared Remote Control" を設定・使用する方法を説明しています。

LIRC はサポートしているリモコンのキーが押されたときにプログラムにあわせて特定のコマンドに変換することができるデーモンです。ここで、「プログラムにあわせて」とは同じキーでも実行しているプログラムによって異なる動作をさせることができることを意味します。LIRC から取得されたリモコンの情報は以下のようにプログラムに流れます:

  • ユーザーがリモコンのボタンを押すことで IR または RF 信号が送信されます。
  • Linux パソコンに接続されたレシーバーによって信号が受信されます。
  • カーネル (のモジュール) によってリモコンから送信されたパルス信号が /dev/lirc0, /dev/input/eventX, /dev/ttyUSBX, /dev/ttyS0 などのデバイスに変換されます。
  • /usr/bin/lircd/etc/lirc/lircd.conf.d/foo.conf の情報を使ってパルス信号をボタンの押下情報に変換します。
  • LIRC を使用するプログラムは ~/.lircrc に書かれている情報に従って /usr/bin/lircd のボタン押下情報をユーザーが定義した操作に解釈します。

インストール

lirc パッケージをインストールしてください。

設定

ノート: このセクションでは簡単な説明だけを行います。完全なドキュメントは 開発元のホームページ を参照してください。

/etc/lirc/lircd.conf.d/foo.conf はスキャンコードをキーに変換する全ユーザー共通の設定ファイルです。ディレクトリには複数の conf ファイルを保存することができ、それぞれのファイルが各々のリモコン・レシーバに対応します。これらのファイルはユーザーが作成するファイルであり、lirc パッケージに初めから用意されているわけではありません。

LIRC でリモコンを管理するにはスキャンコードからキーマップに変換する定義が必要です。定義情報を入手する方法は2つ存在します。

上流の設定ファイル

使用するリモコン・レシーバを確認して、既に設定ファイルが存在しないか確認してください。irdb-get を使うことで リモコンデータベース を検索するか URL をブラウザで開いて手動で検索してください。

例えば irdb-get を使って Streamzap 製のリモコンの設定ファイルを検索・入手するには:

$ irdb-get find stream
atiusb/atiusb.lircd.conf
digital_stream/DTX9900.lircd.conf
snapstream/Firefly-Mini.lircd.conf
streamzap/PC_Remote.lircd.conf
streamzap/streamzap.lircd.conf
x10/atiusb.lircd.conf

$ irdb-get download streamzap/streamzap.lircd.conf 
Downloaded sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/streamzap/streamzap.lircd.conf as streamzap.lircd.conf

必要なファイルを /etc/lirc/lircd.conf.d/ にコピーすることでデーモンによってリモコンのサポートが初期化されます:

# cp streamzap.lircd.conf /etc/lirc/lircd.conf.d/

ユーザーが作成した設定ファイル

サポートされていないハードウェアを使用する場合、誰かが作った設定ファイルを (google) 検索するか自分で作成する必要があります。設定ファイルは /usr/bin/irrecord を使うことでガイドに従ってとても簡単に作成することができます。使用するリモコンが認識されている場合、以下のように起動してください:

# irrecord --device=/dev/lirc0 MyRemote

プログラムを実行するとリモコンのボタンを押して学習させるように指示されます。最終的には全てのボタンとスキャンコードがマッピングされます。全ての操作に10分もかからないはずです。マッピングが完了したら /etc/lirc/lircd.conf.d/foo.conf にファイルが保存されます。

ノート: プログラムに記述されているメールアドレスに作成された設定ファイルを送ることで、あなたが作った設定ファイルを他の人も使えるようになります。

任意のファイル

LIRC を使用するアプリケーションの中には一部、以下のファイルを使うものがあります。例えば mplayermythtv は以下のファイルを使ってキーマップやアクションを定義します。全てのアプリケーションが必要とするわけではありません。例として kodi は固有の xml ファイルを使ってマッピングを行います。詳しくは各アプリケーションのドキュメントを参照してください。

  • ~/.lircrc - プログラムごとの lirc マップ (~/.lirc/foo~/.lirc/bar など) を指定する include ステートメントを記述するファイル。
  • ~/.lirc/foo - ユーザー個別にキーを操作に翻訳する設定。各リモコンとアプリケーション foo の固有設定。

リモコンのテスト

lircd.service起動してブート/シャットダウン時に実行されるように有効化してください (強く推奨)。

/usr/bin/irw を使ってリモコンをテストしてください、リモコンのボタンを押した時に LIRC が受信したものを全て標準出力に流します。

例:

$ irw
000000037ff07bfe 00 One mceusb
000000037ff07bfd 00 Two mceusb
000000037ff07bfd 01 Two mceusb
000000037ff07bf2 00 Home mceusb
000000037ff07bf2 01 Home mceusb

このコマンドが動作しない場合 (irw が何も出力をしない): /etc/lirc/lircd.conf.d/ 内の config ファイルに間違いがないかよく確認してください。

プログラムごとの設定

LIRC では同じキーでもプログラムごとに別々のコマンドになるように設定することができます。つまり、特定のキーを押した時に mplayer と vlc で挙動を変えられます。

まずは LIRC のコマンドを使用するプログラムを決めてください。一般的なプログラムの例: mplayer, mythtv, totem, vlc, kodi

ノート: Kodi は非標準的な方法で LIRC を実装しています。他のプログラムが使用する LIRC の標準ファイルではなく、特別な xml ファイルである ~/.xbmc/userdata/Lircmap.xml を編集する必要があります。Kodi を使用するユーザーは Kodi#リモートコントロールの使用の記事を読んでください。

プログラム固有のマッピングを指定するファイルを作成してください:

$ mkdir ~/.lirc
$ touch ~/.lircrc

~/.lirc に各プログラムの名前が付いた設定ファイルを作成してください。例:

$ ls ~/.lirc
mplayer
mythtv
vlc
ヒント: Google で検索すれば様々なリモコン・プログラム固有のファイルが山ほど出てきます。この記事では各プログラムのキーマップについては扱いません。

~/.lircrc を編集して LIRC でコントロールするプログラムの数だけ ~/.lirc/foo を指定する include ステートメントを記述してください。例:

~/.lircrc
include "~/.lirc/mplayer"
include "~/.lirc/mythtv"
include "~/.lirc/vlc"

トラブルシューティング

リモコンがキーボードとして機能する

Xorg を使用している場合

Streamzap USB PC Remote など、リモコンによっては Xorg によって Human Interface Device (HID) と認識されるものがあり、物理キーボードからの入力のようにキーの一部または全てがキーストロークとして認識されます。この挙動は LIRC でデバイスを管理しようとしたときに問題になります。無効にするには、以下のファイルを作成して X を再起動してください:

/etc/X11/xorg.conf.d/90-streamzap.conf
Section "InputClass"
  Identifier "Ignore Streamzap IR"
  MatchProduct "Streamzap"
  MatchIsKeyboard "true"
  Option "Ignore" "true"
EndSection

次のコマンドで得られる出力の Name に合わせて MatchProduct は適切に変更するようにしてください:

$ cat /proc/bus/input/devices | grep -e IR

例えば N: Name="cx88 IR (WinFast DTV2000 H rev." の場合 WinFast にします。

ARM デバイスで Xorg を使用していない場合

/etc/modprobed.d/streamzap.conf を作成して問題を起こすモジュールをブラックリストに追加してください。例えば Streamzap のリモコンの場合:

install ir_sharp_decoder /bin/false
install ir_xmp_decoder /bin/false
install ir_rc5_decoder /bin/false
install ir_nec_decoder /bin/false
install ir_sony_decoder /bin/false
install ir_mce_kbd_decoder /bin/false
install ir_jvc_decoder /bin/false
install ir_rc6_decoder /bin/false
install ir_sanyo_decoder /bin/false

デフォルト設定を変更する

irw で何も出力されない場合、/etc/lirc/lirc_options.conf のデフォルト設定が原因である可能性があります (あるいはアップデートによって上書きされた可能性もあります)。

まず、/dev/lirc0 が存在するかどうか確認してください:

$ mode2 --driver default --device /dev/lirc0

リモコンのボタンを押してみて何か出力されないか確認してください。出力がある場合、/etc/lirc/lirc_options.conf を編集して driverdevice を適当な値に変更してください。

何も出力されない場合、適切なドライバーとデバイスの組み合わせを探します。最初に lirc がデフォルトでどの組み合わせを認識しているのか確認します。v4l-utils パッケージに含まれている ir-keytable を実行して出力を確認してください。以下のように出力されます:

Found /sys/class/rc/rc0/ (/dev/input/event5) with:
      Driver ite-cir, table rc-rc6-mce
      Supported protocols: unknown other lirc rc-5 jvc sony nec sanyo mce-kbd rc-6 sharp xmp
      Enabled protocols: lirc
      Extra capabilities: <access denied>

上記の場合、lirc は /dev/input/event5 を赤外線デバイスとして自動的に認識して、devinput ドライバーが使われています。以下のコマンドを実行することで組み合わせが正しいか確認します:

$ mode2 --driver devinput --device /dev/input/event5

リモコンのボタンを押してみてください。何も出力されない場合、別のドライバーとデバイスの組み合わせを試してみてください。機能する組み合わせを発見したら、/etc/lirc/lirc_options.confdriverdevice を変更してください。

サンプル

MCE RC6 互換レシーバの設定例:

/etc/lirc/lirc_options.conf
[lircd]
nodaemon        = False
driver          = default
device          = /dev/lirc0
output          = /var/run/lirc/lircd
pidfile         = /var/run/lirc/lircd.pid
plugindir       = /usr/lib/lirc/plugins
permission      = 666
allow-simulate  = No
repeat-max      = 600

[lircmd]
uinput          = False
nodaemon        = False

参照