The main purpose of xmode2 is to check operation of your home-brew LIRC receiver hardware and to see the IR waveform of the remote controller without an expensive oscilloscope. Very useful for debugging. Of course this program won't work with hardware that decodes the signals itself like e.g. TV cards or the Irman i. e., it only works with LIRC_MODE_MODE2 type drivers.
xmode2 prints a simple graphics display of the pulse/space lengths. It accepts a few commands including time base changes; see the xmode2 -h output.
lirc-lsplugins(1) allows checking if a driver is a LIRC_MODE2 type one.
- -h --help
display usage summary
- -v --version
- -d --device=device
read from given device
- -H --driver=driver
use given driver
- -m --mode
enable alternative display mode
- -r --raw
access device directly
Running As Root
In many cases xmode2 needs to run as root to access devices not available to regular users. On the other hand, running as root creates problems such as log files owned by root, security concerns etc.
In order to cope with this, xmode2 by default drops root privileges after opening the input device. This support is based on that root permissions are acquired using sudo(1) e. g., using
$ sudo xmode2 --driver default --device /dev/lirc0
If not using sudo, the same behaviour could be accomplished using the SUDO_USER environment variable e. g.,
# SUDO_USER=$LOGNAME xmode2 --raw /dev/lirc0
The --keep-root option will make xmode2 keep it's root privileges for the complete run.
Drivers are loaded dynamically. The search 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/lirc/plugins).
Debug output. Setting the XDG_CACHE_HOME environment variable relocates this file to $XDG_CACHE_HOME/mode2.log
The documentation for lirc is maintained as html pages. They are located under html/ in the documentation directory.