irrecord (1) - Linux Manuals

irrecord: application for recording IR-codes for usage with LIRC


irrecord - application for recording IR-codes for usage with LIRC


irrecord [-f] [-n] [-H driver] [-d device] [file]
irrecord -a <file>
irrecord -l
irrecord --help | --version


This program will record the signals from your remote control and create a config file for lircd. A proper config file for lircd is maybe the most vital part of this package, so you should invest some time to create a working config file. Although I put a good deal of effort in this program it is often not possible to automatically recognize all features of a remote control.

If the program fails to recognize the protocol of the remote control you should use the --force option to at least create a config file in raw mode.

If file is not specified it defaults to "irrecord.conf"

If file already exists and contains a valid config irrecord will use the protocol description found there and will only try to record the buttons. This is very useful if you want to learn a remote where config files of the same brand are already available. Of course this will only work if the remotes use the same protocol but it's worth a try. You will find template files for the most common protocols in the remotes/generic/ directory of this package. The name of the new file is created by appending .conf to the given filename in this case.


-h --help
display this message
-v --version
display version
-a --analyse
Analyse a raw_codes config file, trying to convert it to a regular configuration.
-f --force
Force raw mode. Use this if recording fails otherwise. This creates a raw codes configuration file which can be used as-is or converted using the -a option.
-n --disable-namespace
disables namespace checks
-l --list-namespace
list valid button names
-H --driver=driver
Use given driver. -H help lists available drivers.
-d --device=device
read from given device
-D --loglevel=level
Determine the amount of logging information. [level] can be a symbolic syslog level: 'error','warning, 'info', 'notice' or 'debug'. lircd also defines three additional levels 'trace', 'trace1' and 'trace2' which gives even more messages ('trace2' bringing the most). However, in the log these messages are marked as 'debug'. The level can also be an integer in the range 3 (almost no messages) to 10.


Drivers are loaded dynamically. This is done from a traditional *ux ':'-separated path where each component in the path is searched (leading part first, trailing last).

The path used for this is determined by (falling priority):

The --plugindir option.
The 'plugindir' entry in the [lircd] section of the lirc_options.conf file.
The environment variable LIRC_PLUGINDIR.
A hardcoded default (usually /usr/lib[64]/lirc/plugins).


The options file. irrecord mostly handles the values under the [irrecord] section, but some values such as debug and plugindir are inherited from the [lircd] section.
The location of this file can be changed using the -O/--options-file command-line option or using the environment variable LIRC_OPTIONS_PATH. The values here are used as defaults for any option not present on command line.

Debug output. Setting the XDG_CACHE_HOME environment variable relocates this file to $XDG_CACHE_HOME/irrecord.log


The documentation for lirc is maintained as html pages. They are located under html/ in the documentation directory.

Further information on this topic is available in section "Adding new remote controls" in html/help.html