「LIRC」の版間の差分
(序文を更新) |
(項目を整理) |
||
(同じ利用者による、間の8版が非表示) | |||
19行目: | 19行目: | ||
{{Pkg|lirc}} パッケージを[[インストール]]してください。 |
{{Pkg|lirc}} パッケージを[[インストール]]してください。 |
||
− | ==設定== |
+ | == 設定 == |
+ | === 受信機と送信機の設定 === |
||
− | {{Note|このセクションでは簡単な説明だけを行います。完全なドキュメントは [http://lirc.sourceforge.net/lirc.org/html/index.html 開発元のホームページ] を参照してください。}} |
||
+ | {{Note|このセクションは簡単な概要です。完全なドキュメントが利用可能です [https://lirc.sourceforge.net/lirc.org/html/index.html upstream]}} |
||
− | {{ic|/etc/lirc/lircd.conf.d/foo.conf}} はスキャンコードをキーに変換する全ユーザー共通の設定ファイルです。ディレクトリには複数の conf ファイルを保存することができ、それぞれのファイルが各々のリモコン・レシーバに対応します。これらのファイルはユーザーが作成するファイルであり、{{Pkg|lirc}} パッケージに初めから用意されているわけではありません。 |
||
+ | 適切に実行するには、LIRC サービスの ''ドライバー'' および/または ''デバイス'' を指定する必要がある場合があります。''irrecord'' などの LIRC 依存プログラムの実行中にサービスが突然停止した場合は、[[journalctl]] 出力で次のようなメッセージを探してください。 |
||
− | LIRC でリモコンを管理するにはスキャンコードからキーマップに変換する定義が必要です。定義情報を入手する方法は2つ存在します。 |
||
+ | Driver `devinput' not found or not loadable (wrong or missing -U/--plugindir?). |
||
− | ==== 上流の設定ファイル ==== |
||
+ | readlink() failed for "auto": No such file or directory |
||
+ | これらを設定ファイルに設定し、サービスを再起動します。 |
||
− | 使用するリモコン・レシーバを確認して、既に設定ファイルが存在しないか確認してください。{{ic|irdb-get}} を使うことで [http://lirc-remotes.sourceforge.net/remotes-table.html リモコンデータベース] を検索するか URL をブラウザで開いて手動で検索してください。 |
||
+ | {{hc|/etc/lirc/lirc_options.conf|2= |
||
− | 例えば {{ic|irdb-get}} を使って Streamzap 製のリモコンの設定ファイルを検索・入手するには: |
||
+ | [lircd] |
||
+ | driver = ''driver-name'' |
||
+ | device = /dev/''path-to-dev'' |
||
+ | }} |
||
+ | ==== シリアルポート ==== |
||
− | $ irdb-get find stream |
||
+ | |||
− | atiusb/atiusb.lircd.conf |
||
+ | {{Tip|DIY 回路図については、シリアルポート [https://www.lirc.org/receivers.html 受信機] および [https://www.lirc.org/transmitters.html 送信機] のドキュメントを参照してください。シリアルポートデバイスは、''audio_alsa'' や ''audio'' よりもはるかに信頼性が高いことに注意してください。}} |
||
− | digital_stream/DTX9900.lircd.conf |
||
+ | |||
− | snapstream/Firefly-Mini.lircd.conf |
||
+ | 最新のカーネルには、古い ''lirc_serial'' ドライバーに代わる ''serial_ir'' モジュールがあります。マザーボードのシリアルポートに接続された DIY 受信機および送信機もサポートします。{{AUR|setserial}} をインストールして実行します: |
||
− | streamzap/PC_Remote.lircd.conf |
||
+ | |||
− | streamzap/streamzap.lircd.conf |
||
+ | # setserial /dev/ttyS0 uart none |
||
− | x10/atiusb.lircd.conf |
||
+ | # modprobe serial_ir |
||
− | |||
+ | |||
− | $ irdb-get download streamzap/streamzap.lircd.conf |
||
+ | ''serial_ir'' モジュールをロードすると、デバイス {{ic|/dev/lirc0}} が、カーネルによって [https://github.com/torvalds/linux/blob/master/drivers/media/rc/serial_ir.c created] になります。そうでない場合は、[[systemd/ジャーナル|ジャーナル]] で関連するエラーがないか確認してください。シリアルデバイスの LIRC 設定例: |
||
− | Downloaded sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/streamzap/streamzap.lircd.conf as streamzap.lircd.conf |
||
+ | |||
+ | {{hc|/etc/lirc/lirc_options.conf|2= |
||
+ | [lircd] |
||
+ | driver = default |
||
+ | device = auto |
||
+ | |||
+ | [modinit] |
||
+ | code = /usr/bin/setserial /dev/ttyS0 uart none |
||
+ | code1 = /usr/sbin/modprobe serial_ir |
||
+ | }} |
||
+ | |||
+ | ==== サウンドカード ==== |
||
+ | |||
+ | {{Note|サウンドカードを赤外線デバイスとして使用すると、多くの落とし穴があり、他のハードウェア設定よりも利点が得られません。}} |
||
+ | |||
+ | 外部 DIY 回路が接続されたサウンドカードは、[https://www.lirc.org/ir-audio.html 受信] および IR コードを [https://web.archive.org/web/20150511192459/http://www.lirc.org:80/html/audio.html 送受信] できます。 |
||
+ | |||
+ | ''audio_alsa'' [https://www.lirc.org/html/audio-alsa.html driver] は {{pkg|lirc}} に含まれていますが、受信のみをサポートしています。 |
||
+ | |||
+ | {{ic|alsamixer}} でマイク入力のミュートを解除し、十分なゲインを設定します。{{pkg|audacity}} で波形とゲインを確認できます。区別できる方形パルスが存在する必要があります。平坦でも過負荷でもありません。また、良好に復調されたパルスは耳で簡単に認識できます。LIRC と {{ic|irrecord}} は ''右オーディオチャネルの正のパルス'' を読み取ることに注意してください。負のパルスは機能しません。 |
||
+ | |||
+ | {{hc|/etc/lirc/lirc_options.conf|2= |
||
+ | driver = audio_alsa |
||
+ | device = default |
||
+ | }} |
||
+ | |||
+ | {{AUR|lirc-git}} に含まれる ''audio'' [https://web.archive.org/web/20150511192459/http://www.lirc.org:80/html/audio.html driver] が受信と送信の両方をサポートします。デフォルトの遅延が 0.02 程度であると、"Warning: Output underflow" が発生し、送信が破損する可能性があることに注意してください。受信機はそれに応答しません。0.05 などのより高い値を試してください。 |
||
+ | |||
+ | サウンドカードの出力音量を上げて下さい。そうしないと、LED 信号が弱く、範囲が狭くなります。LEDフラッシュは赤外線の波長に敏感であるため、スマートフォンのカメラで検出できます。 |
||
+ | |||
+ | {{hc|/etc/lirc/lirc_options.conf|2= |
||
+ | driver = audio |
||
+ | device = ALSA:default@48000:0.05 |
||
+ | }} |
||
+ | |||
+ | === リモート設定 === |
||
+ | |||
+ | ディレクトリ {{ic|/etc/lirc/lircd.conf.d/}} には、リモートのシステム全体の設定ファイルが含まれています。各 ''*.conf'' ファイルは 1 つのデバイスに対応し、そのプロトコル、スキャンコード、キーコードが記述されています。これにより、LIRC が特定のハードウェアに対して信号を送受信できるようになります。これらのファイルは {{Pkg|lirc}} パッケージには含まれていないため、ユーザーが作成する必要があります。 |
||
+ | |||
+ | ==== リモート設定の検索 ==== |
||
+ | |||
+ | 多くの設定ファイルは [http://lirc-remotes.sourceforge.net/remotes-table.html LIRC リモートデータベース] にあります。URL に従うか、{{man|1|irdb-get}} を使用してデータベースを検索します。 |
||
+ | |||
+ | {{ic|irdb-get}} を使用して "Streamzap" リモートの設定ファイルを検索する例: |
||
+ | |||
+ | {{hc|$ 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 |
||
+ | }} |
||
+ | |||
+ | {{hc|$ 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 |
||
+ | }} |
||
− | 必要な |
+ | 特定したら、必要な ''.conf'' を {{ic|/etc/lirc/lircd.conf.d/}} にコピーして、デーモンがそのサポートを初期化できるようにします。 |
# cp streamzap.lircd.conf /etc/lirc/lircd.conf.d/ |
# cp streamzap.lircd.conf /etc/lirc/lircd.conf.d/ |
||
− | ==== |
+ | ==== リモート設定の作成 ==== |
+ | |||
− | サポートされていないハードウェアを使用する場合、誰かが作った設定ファイルを (google) 検索するか自分で作成する必要があります。設定ファイルは {{ic|/usr/bin/irrecord}} を使うことでガイドに従ってとても簡単に作成することができます。使用するリモコンが認識されている場合、以下のように起動してください: |
||
+ | リモートコントロール設定は、ユーザーがプロセスをガイドする {{man|1|irrecord}} を使用して作成できます。検出されたリモートを使用する場合は、次のように呼び出します。 |
||
# irrecord --device=/dev/lirc0 MyRemote |
# irrecord --device=/dev/lirc0 MyRemote |
||
− | プログラム |
+ | プログラムはユーザーにリモコンのキーを押して学習するよう指示し、最終的にすべてのボタンとそれに対応するスキャンコードをマッピングします。完了したら、結果のファイルを {{ic|/etc/lirc/lircd.conf.d/foo.conf}} に保存します。設定ファイルを他の人と共有することを検討してください。 |
+ | === アプリケーション固有のアクション === |
||
− | {{Note|プログラムに記述されているメールアドレスに作成された設定ファイルを送ることで、あなたが作った設定ファイルを他の人も使えるようになります。}} |
||
+ | {{Tip|多くのアプリケーション固有の lircrc ファイルがインターネット上で入手できます。}} |
||
− | === 任意のファイル === |
||
− | + | キーコードをアプリケーション固有のアクションにバインドするには、それぞれの設定ファイルを {{ic|~/.config/lircrc/}} に配置します。必要に応じて手動で作成する必要があります。{{man|5|lircrc}} を参照してください。これは、[[MPlayer]]、[[VLC]]、[[MythTV]]、{{Pkg|totem}} などの LIRC 対応アプリケーションでのみ機能します ([[Kodi]] も LIRC をサポートしていますが、非対応-標準的な方法、[[Kodi#リモートコントロールの使用]]を参照してください。 |
|
− | * {{ic|~/.lircrc}} - プログラムごとの lirc マップ ({{ic|~/.lirc/foo}} や {{ic|~/.lirc/bar}} など) を指定する ''include'' ステートメントを記述するファイル。 |
||
− | * {{ic|~/.lirc/foo}} - ユーザー個別にキーを操作に翻訳する設定。各リモコンとアプリケーション foo の固有設定。 |
||
+ | これらのアプリケーション固有の設定を別のファイルで定義し、次のように ''lircrc'' に含めます。 |
||
− | == リモコンのテスト == |
||
− | {{ic|lircd.service}} を[[起動]]してブート/シャットダウン時に実行されるように[[有効化]]してください (強く推奨)。 |
||
+ | include "~/.config/lircrc/mplayer" |
||
− | {{ic|/usr/bin/irw}} を使ってリモコンをテストしてください、リモコンのボタンを押した時に LIRC が受信したものを全て標準出力に流します。 |
||
+ | include "~/.config/lircrc/mythtv" |
||
+ | include "~/.config/lircrc/vlc" |
||
+ | === 通常のユーザーとして実行する === |
||
− | 例: |
||
− | $ irw |
||
− | 000000037ff07bfe 00 One mceusb |
||
− | 000000037ff07bfd 00 Two mceusb |
||
− | 000000037ff07bfd 01 Two mceusb |
||
− | 000000037ff07bf2 00 Home mceusb |
||
− | 000000037ff07bf2 01 Home mceusb |
||
+ | デフォルトでは、''lircd'' は root として実行されます。安定性とセキュリティを向上させるために、アップストリームでは通常のユーザーとして実行することをお勧めします。[https://www.lirc.org/html/configuration-guide.html この]リンクにある付録 14 を参照してください。 |
||
− | このコマンドが動作しない場合 (irw が何も出力をしない): {{ic|/etc/lirc/lircd.conf.d/}} 内の config ファイルに間違いがないかよく確認してください。 |
||
+ | ==== lirc-user-service の AUR パッケージを使用する ==== |
||
− | ==プログラムごとの設定 == |
||
− | LIRC では同じキーでもプログラムごとに別々のコマンドになるように設定することができます。つまり、特定のキーを押した時に mplayer と vlc で挙動を変えられます。 |
||
+ | すべてを自動的に行う {{AUR|lirc-user-service}} が提供されています。 |
||
− | まずは LIRC のコマンドを使用するプログラムを決めてください。一般的なプログラムの例: {{Pkg|mplayer}}, {{AUR|mythtv}}, {{Pkg|totem}}, {{Pkg|vlc}}, {{Pkg|kodi}}。 |
||
+ | == テスト == |
||
− | {{Note|Kodi は非標準的な方法で LIRC を実装しています。他のプログラムが使用する LIRC の標準ファイルではなく、特別な xml ファイルである {{ic|~/.xbmc/userdata/Lircmap.xml}} を編集する必要があります。Kodi を使用するユーザーは [[Kodi#リモートコントロールの使用]]の記事を読んでください。}} |
||
+ | {{ic|lircd.service}} を [[起動/有効化]] して下さい。 |
||
− | プログラム固有のマッピングを指定するファイルを作成してください: |
||
− | $ mkdir ~/.lirc |
||
− | $ touch ~/.lircrc |
||
+ | === コマンドの受信 === |
||
− | {{ic|~/.lirc}} に各プログラムの名前が付いた設定ファイルを作成してください。例: |
||
+ | {{man|1|irw}} を実行し、リモコンを受信機に向けていくつかのボタンを押します。受信したコードは標準出力に出力されます。 |
||
− | $ ls ~/.lirc |
||
− | mplayer |
||
− | mythtv |
||
− | vlc |
||
+ | {{hc|$ irw| |
||
− | {{Tip|Google で検索すれば様々なリモコン・プログラム固有のファイルが山ほど出てきます。この記事では各プログラムのキーマップについては扱いません。}} |
||
+ | 000000037ff07bfe 00 One mceusb |
||
+ | 000000037ff07bfd 00 Two mceusb |
||
+ | 000000037ff07bfd 01 Two mceusb |
||
+ | 000000037ff07bf2 00 Home mceusb |
||
+ | 000000037ff07bf2 01 Home mceusb |
||
+ | }} |
||
+ | |||
+ | {{ic|irw}} が出力を返さない場合: |
||
+ | |||
+ | * ''mode2'' または ''xmode2'' を実行して、LIRC が実際に IR センサーから何かを読み取ったかどうかを確認します。読み取っていない場合は、ハードウェアを確認してください |
||
+ | * ''mode2'' がパルスデータを受信した場合は、{{ic|/etc/lirc/lircd.conf.d/}} の設定ファイルにエラーがないか確認してください。 |
||
+ | |||
+ | === コマンドの送信 === |
||
+ | 登録されているリモート (設定ファイル) をリストします。 |
||
− | {{ic|~/.lircrc}} を編集して LIRC でコントロールするプログラムの数だけ {{ic|~/.lirc/foo}} を指定する ''include'' ステートメントを記述してください。例: |
||
− | {{hc| |
+ | {{hc|$ irsend LIST "" ""| |
+ | LG_6710CMAP01A |
||
− | include "~/.lirc/mplayer" |
||
− | include "~/.lirc/mythtv" |
||
− | include "~/.lirc/vlc" |
||
}} |
}} |
||
+ | |||
+ | 特定のデバイスで利用可能なコードをリストします: |
||
+ | |||
+ | {{hc|$ irsend LIST LG_6710CMAP01A ""| |
||
+ | 0000000000007887 KEY_POWER |
||
+ | 000000000000f807 KEY_MUTE |
||
+ | 000000000000e817 KEY_VOLUMEUP |
||
+ | ... |
||
+ | }} |
||
+ | |||
+ | 検出されたデバイス {{ic|LG_6710CMAP01A}} を選択し、コマンド {{ic|KEY_POWER}} を送信します。 |
||
+ | |||
+ | $ irsend SEND_ONCE LG_6710CMAP01A KEY_POWER |
||
==トラブルシューティング== |
==トラブルシューティング== |
||
+ | |||
=== リモコンがキーボードとして機能する === |
=== リモコンがキーボードとして機能する === |
||
+ | |||
==== Xorg を使用している場合 ==== |
==== Xorg を使用している場合 ==== |
||
+ | |||
− | Streamzap USB PC Remote など、リモコンによっては Xorg によって Human Interface Device (HID) と認識されるものがあり、物理キーボードからの入力のようにキーの一部または全てがキーストロークとして認識されます。この挙動は LIRC でデバイスを管理しようとしたときに問題になります。無効にするには、以下のファイルを作成して X を再起動してください: |
||
+ | Streamzap USB PC Remote など、リモコンによっては [[Xorg]] によって Human Interface Device (HID) と認識されるものがあり、物理キーボードからの入力のようにキーの一部または全てがキーストロークとして認識されます。この挙動は LIRC でデバイスを管理しようとしたときに問題になります。 |
||
+ | |||
+ | 無効にするには、以下のファイルを作成して X を再起動してください: |
||
{{hc|/etc/X11/xorg.conf.d/90-streamzap.conf| |
{{hc|/etc/X11/xorg.conf.d/90-streamzap.conf| |
||
119行目: | 198行目: | ||
次のコマンドで得られる出力の {{ic|Name}} に合わせて {{ic|MatchProduct}} は適切に変更するようにしてください: |
次のコマンドで得られる出力の {{ic|Name}} に合わせて {{ic|MatchProduct}} は適切に変更するようにしてください: |
||
+ | |||
$ 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}} にします。 |
||
− | ==== |
+ | ==== Xorg を使用していない場合 ==== |
+ | |||
{{ic|/etc/modprobed.d/streamzap.conf}} を作成して問題を起こすモジュールをブラックリストに追加してください。例えば Streamzap のリモコンの場合: |
{{ic|/etc/modprobed.d/streamzap.conf}} を作成して問題を起こすモジュールをブラックリストに追加してください。例えば Streamzap のリモコンの場合: |
||
install ir_sharp_decoder /bin/false |
install ir_sharp_decoder /bin/false |
2024年2月26日 (月) 00:38時点における最新版
official website から:
- LIRC (Linux 赤外線リモコン) は、一般的に使用される多くの (すべてではない) リモコンの赤外線信号をデコードして送信するパッケージです。
この記事ではシリアル・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 サービスの ドライバー および/または デバイス を指定する必要がある場合があります。irrecord などの LIRC 依存プログラムの実行中にサービスが突然停止した場合は、journalctl 出力で次のようなメッセージを探してください。
Driver `devinput' not found or not loadable (wrong or missing -U/--plugindir?). readlink() failed for "auto": No such file or directory
これらを設定ファイルに設定し、サービスを再起動します。
/etc/lirc/lirc_options.conf
[lircd] driver = driver-name device = /dev/path-to-dev
シリアルポート
最新のカーネルには、古い lirc_serial ドライバーに代わる serial_ir モジュールがあります。マザーボードのシリアルポートに接続された DIY 受信機および送信機もサポートします。setserialAUR をインストールして実行します:
# setserial /dev/ttyS0 uart none # modprobe serial_ir
serial_ir モジュールをロードすると、デバイス /dev/lirc0
が、カーネルによって created になります。そうでない場合は、ジャーナル で関連するエラーがないか確認してください。シリアルデバイスの LIRC 設定例:
/etc/lirc/lirc_options.conf
[lircd] driver = default device = auto [modinit] code = /usr/bin/setserial /dev/ttyS0 uart none code1 = /usr/sbin/modprobe serial_ir
サウンドカード
外部 DIY 回路が接続されたサウンドカードは、受信 および IR コードを 送受信 できます。
audio_alsa driver は lirc に含まれていますが、受信のみをサポートしています。
alsamixer
でマイク入力のミュートを解除し、十分なゲインを設定します。audacity で波形とゲインを確認できます。区別できる方形パルスが存在する必要があります。平坦でも過負荷でもありません。また、良好に復調されたパルスは耳で簡単に認識できます。LIRC と irrecord
は 右オーディオチャネルの正のパルス を読み取ることに注意してください。負のパルスは機能しません。
/etc/lirc/lirc_options.conf
driver = audio_alsa device = default
lirc-gitAUR に含まれる audio driver が受信と送信の両方をサポートします。デフォルトの遅延が 0.02 程度であると、"Warning: Output underflow" が発生し、送信が破損する可能性があることに注意してください。受信機はそれに応答しません。0.05 などのより高い値を試してください。
サウンドカードの出力音量を上げて下さい。そうしないと、LED 信号が弱く、範囲が狭くなります。LEDフラッシュは赤外線の波長に敏感であるため、スマートフォンのカメラで検出できます。
/etc/lirc/lirc_options.conf
driver = audio device = ALSA:default@48000:0.05
リモート設定
ディレクトリ /etc/lirc/lircd.conf.d/
には、リモートのシステム全体の設定ファイルが含まれています。各 *.conf ファイルは 1 つのデバイスに対応し、そのプロトコル、スキャンコード、キーコードが記述されています。これにより、LIRC が特定のハードウェアに対して信号を送受信できるようになります。これらのファイルは lirc パッケージには含まれていないため、ユーザーが作成する必要があります。
リモート設定の検索
多くの設定ファイルは LIRC リモートデータベース にあります。URL に従うか、irdb-get(1) を使用してデータベースを検索します。
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
特定したら、必要な .conf を /etc/lirc/lircd.conf.d/
にコピーして、デーモンがそのサポートを初期化できるようにします。
# cp streamzap.lircd.conf /etc/lirc/lircd.conf.d/
リモート設定の作成
リモートコントロール設定は、ユーザーがプロセスをガイドする irrecord(1) を使用して作成できます。検出されたリモートを使用する場合は、次のように呼び出します。
# irrecord --device=/dev/lirc0 MyRemote
プログラムはユーザーにリモコンのキーを押して学習するよう指示し、最終的にすべてのボタンとそれに対応するスキャンコードをマッピングします。完了したら、結果のファイルを /etc/lirc/lircd.conf.d/foo.conf
に保存します。設定ファイルを他の人と共有することを検討してください。
アプリケーション固有のアクション
キーコードをアプリケーション固有のアクションにバインドするには、それぞれの設定ファイルを ~/.config/lircrc/
に配置します。必要に応じて手動で作成する必要があります。lircrc(5) を参照してください。これは、MPlayer、VLC、MythTV、totem などの LIRC 対応アプリケーションでのみ機能します (Kodi も LIRC をサポートしていますが、非対応-標準的な方法、Kodi#リモートコントロールの使用を参照してください。
これらのアプリケーション固有の設定を別のファイルで定義し、次のように lircrc に含めます。
include "~/.config/lircrc/mplayer" include "~/.config/lircrc/mythtv" include "~/.config/lircrc/vlc"
通常のユーザーとして実行する
デフォルトでは、lircd は root として実行されます。安定性とセキュリティを向上させるために、アップストリームでは通常のユーザーとして実行することをお勧めします。このリンクにある付録 14 を参照してください。
lirc-user-service の AUR パッケージを使用する
すべてを自動的に行う lirc-user-serviceAUR が提供されています。
テスト
lircd.service
を 起動/有効化 して下さい。
コマンドの受信
irw(1) を実行し、リモコンを受信機に向けていくつかのボタンを押します。受信したコードは標準出力に出力されます。
$ irw
000000037ff07bfe 00 One mceusb 000000037ff07bfd 00 Two mceusb 000000037ff07bfd 01 Two mceusb 000000037ff07bf2 00 Home mceusb 000000037ff07bf2 01 Home mceusb
irw
が出力を返さない場合:
- mode2 または xmode2 を実行して、LIRC が実際に IR センサーから何かを読み取ったかどうかを確認します。読み取っていない場合は、ハードウェアを確認してください
- mode2 がパルスデータを受信した場合は、
/etc/lirc/lircd.conf.d/
の設定ファイルにエラーがないか確認してください。
コマンドの送信
登録されているリモート (設定ファイル) をリストします。
$ irsend LIST "" ""
LG_6710CMAP01A
特定のデバイスで利用可能なコードをリストします:
$ irsend LIST LG_6710CMAP01A ""
0000000000007887 KEY_POWER 000000000000f807 KEY_MUTE 000000000000e817 KEY_VOLUMEUP ...
検出されたデバイス LG_6710CMAP01A
を選択し、コマンド KEY_POWER
を送信します。
$ irsend SEND_ONCE LG_6710CMAP01A KEY_POWER
トラブルシューティング
リモコンがキーボードとして機能する
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
にします。
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
を編集して driver と device を適当な値に変更してください。
何も出力されない場合、適切なドライバーとデバイスの組み合わせを探します。最初に 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.conf
の driver と device を変更してください。
サンプル
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