This file is indexed.

/usr/share/doc/lirc/html/devinput.html is in lirc 0.9.0~pre1-1.2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>
  <HEAD>
    <TITLE>LIRC - Linux Infrared Remote Control</TITLE>
    <LINK REL=stylesheet TYPE="text/css" HREF="../lirc.css">
    <LINK REL="shortcut icon" HREF="../favicon.ico">
    <META NAME="description" CONTENT="LIRC - Linux Infra-red Remote Control">
    <META NAME="keywords" CONTENT="linux, kernel module, remote control, animax, multimedia">
  </HEAD>
  
  <BODY BACKGROUND="../images/marb18.jpg"
    BGCOLOR="#FFFFFF" TEXT="#000000" ALINK="#8080FF">
    <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
      <TR>
	<TD CLASS="menu" WIDTH="100%" HEIGHT="150">
	  <IMG SRC="../images/diode.gif" ALT=""
	    WIDTH="300" HEIGHT="150" BORDER="0" HSPACE="20"
	    VSPACE="0" ALIGN="LEFT"> 
	  <IMG SRC="../images/lirc.gif" ALT=""
	    WIDTH="300" HEIGHT="150" BORDER="0" HSPACE="20"
	    VSPACE="0" ALIGN="RIGHT">
	</TD>
      </TR>
      <TR>
	<TD WIDTH="100%">&#160;<BR>
	  <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
	    <TR>
	      <TD WIDTH="15%">&#160;<BR></TD>
	      <TD WIDTH="70%" ALIGN="LEFT" VALIGN="TOP">&#160;<BR>

<!-- Text ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

		    <A NAME="overview"></A><HR>
		    <CENTER><H1>Linux input layer driver</H1></CENTER>

		    <P>
		      Usually you don't have to create a config file
		      yourself if you use this driver as this <A
		      HREF="http://lirc.sourceforge.net/remotes/devinput/lircd.conf.devinput">generic
		      config file</A> should already contain all
		      existing keys.
		    </P>
		    <P>
		      This driver uses <em>/dev/input/event0</em> as
		      its input device per default. You should provide
		      the correct device as --device parameter on the
		      lircd and irrecord command line.
		    </P>
		    
		    <P>
		      Sometimes the input device mapping changes
		      between system reboots. In that case you are
		      also able to specify the correct input device by
		      its name or physical location by preceding the
		      desired value with <em>name=</em> or
		      <em>phys=</em>.  Shell wild-cards can be used
		      for the given value but must be protected from
		      the shell with proper quoting.
      		    </P>

		    <P>
		      For example you can use:
      		    </P>
<PRE>
--device=name='Budget-CI dvb ir *'
--device=phys='pci*/ir0'
</PRE>

		    <P>
		      With the following script you can list all names
		      associated with all existing Linux input
		      devices.
      		    </P>
<PRE>
for i in /sys/class/input/input* ; do echo -n "$(basename "$i"): "; cat "$i/name"; done
</PRE>
		    <P>
      		      This information also can be found in
      		      <em>/proc/bus/input/devices</em>.
      		    </P>


		    <CENTER><H2>Conflict with HAL</H2></CENTER>
<P>
lircd requires exclusive access to the IR-receiver to work
reliably. On some systems other processes may try to compete for
access to the same device. In these cases lircd will send the following
message to the system logs:
</P>
<PRE>
  lircd: can't get exclusive access to events coming from
         `&lt;device-path&gt;' interface
</PRE>
<P>
Another symptom is that the "irw" utility will fail to register
keystrokes from the remote-control-device.
</P>
<P>
A specific case of a potential conflict is on systems that implement
the hardware abstraction layer (HAL) from freedesktop.org. This
software is used on many Linux distributions and will take control of
a variety of devices including all input devices. All IR-receivers
which work through LIRC's <em>devinput</em> driver, i.e. has
'REMOTE_DRIVER="devinput"' in the configuration of LIRC, can
potentially have events intercepted by the HAL-daemon (hald) unless
hald is instructed to ignore the device.
</P>
<P>
The following example illustrates how this conflict is resolved on a
ubuntu-8.10 installation with a IR receiver on a Hauppauge HVR4000
TV-card:
</P>
<P>
1. The problem is confirmed by log entries (/var/log/daemon.log) and
irw's behaviour as described above. "irw" in a xterm-window will appear
to produce garbage characters which in fact are key-codes presented to
the x-server through HAL. Some of the keys produce working x-events
for left/right/up/down/enter and numbers, while others don't seem to
work at all.
</P>
<P>
2. HAL comes with a utility, lshal, that lists the devices it knows
about. The entry for this particular IR receiver reads:
</P>
<PRE>
udi = '/org/freedesktop/Hal/devices/pci_14f1_8802_logicaldev_input'
  info.addons.singleton = {'hald-addon-input'} (string list)
  info.callouts.add = {'debian-setup-keyboard'} (string list)
  info.capabilities = {'input', 'input.keys', 'button'} (string list)
  info.category = 'input'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_14f1_8802'  (string)
  info.product = 'cx88 IR (Hauppauge WinTV-HVR400'  (string)
  info.subsystem = 'input'  (string)
  info.udi = '/org/freedesktop/Hal/devices/pci_14f1_8802_logicaldev_input'  (string)
  input.device = '/dev/input/event7'  (string)
  input.originating_device = '/org/freedesktop/Hal/devices/pci_14f1_8802'  (string)
  input.product = 'cx88 IR (Hauppauge WinTV-HVR400'  (string)
  input.x11_driver = 'evdev'  (string)
  input.xkb.layout = 'no'  (string)
  input.xkb.model = 'pc105'  (string)
  input.xkb.options = 'lv3:ralt_switch'  (string)
  input.xkb.rules = 'evdev'  (string)
  linux.device_file = '/dev/input/event7'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)
  linux.sysfs_path = '/sys/class/input/input7/event7'  (string)
</PRE>
<P>
In short this explains that the device that LIRC was complaining about
in the log (/dev/input/event7) is controlled by hald, and already
prepared as an input-device for the system's X-server.
</P>
<P>
3. The info.product string will work as a unique identifier and can be
used to create a file containing the following XML-formatted rule to
make hald ignore the IR-receiver:
</P>
<PRE>
= = = cut here = = =
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;deviceinfo version="0.2"&gt;
&lt;device&gt;
 &lt;match key="info.product" contains_ncase="cx88 ir"&gt;
    &lt;merge key="info.ignore" type="bool"&gt;true&lt;/merge&gt;
 &lt;/match&gt;
&lt;/device&gt;
&lt;/deviceinfo&gt;
= = = cut here = = =
</PRE>
<P>
The rule does a non-case-sensitive search for devices that has "cx88
ir" in its info.product attribute and places an instruction to ignore
it.  Put this in a file called 10-ignore-cx88-ir.fdi. The location of
rules for HAL and further explanation of technical details is found in
it's documentation. The example system (ubuntu-8.10) needs this file
in the /usr/share/hal/fdi/preprobe/20thirdparty/ directory.
</P>
<P>
4. HAL and LIRC can now be restarted (or reboot the system). Then LIRC
will get exclusive access to the IR receiver, "irw" will display
IR-events as expected, and the following output from "lshal" confirms
that it now ignores the IR device:
</P>
<PRE>
udi = '/org/freedesktop/Hal/devices/temp/112'
  info.ignore = true  (bool)
  info.parent = '/org/freedesktop/Hal/devices/pci_14f1_8802'  (string)
  info.product = 'Ignored Device'  (string)
  info.subsystem = 'input'  (string)
  info.udi = '/org/freedesktop/Hal/devices/ignored-device'  (string)
  input.device = '/dev/input/event7'  (string)
  input.originating_device = '/org/freedesktop/Hal/devices/pci_14f1_8802'  (string)
  input.product = 'cx88 IR (Hauppauge WinTV-HVR400'  (string)
  linux.device_file = '/dev/input/event7'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)
  linux.sysfs_path = '/sys/class/input/input7/event7'  (string)
</PRE>

<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

		<BR><BR>
		<CENTER>[<A HREF="http://www.lirc.org/">LIRC homepage</A>]<BR>
		  <I>The LIRC Manual, last update: 24-May-2009</I></CENTER>
		<BR><BR>
	      </TD>
	      <TD WIDTH="15%">&#160;<BR></TD>
	    </TR>
	  </TABLE>
	</TD>
      </TR>
      <TR>
	<TD CLASS="menu" WIDTH="100%">&#160;<BR>
	</TD>
      </TR>
    </TABLE>
  </BODY>
</HTML>