This file is indexed.

/usr/share/doc/lirc/html/install.html is in lirc 0.9.0-0ubuntu5.

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
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
<!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 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

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

    <A NAME="dependencies"></A><HR>
    <H1 ALIGN="CENTER">Dependencies</H1>
    <HR WIDTH="70%">
    
    <P>
      To use LIRC's <em>setup.sh</em> script you need the dialog
      package. It already should be installed on most systems. The
      setup.sh script makes configuration of LIRC much easier but
      using it is not obligatory.
    </P>

    <P>
      If you want to compile and use all tools, you also need an
      installed <em>svgalib</em> (used by <em>smode2</em>) and the X
      Windows header files (needed by <em>irxevent</em> and
      <em>xmode2</em>). You can get svgalib from <A
	HREF="ftp://sunsite.unc.edu/pub/Linux/libs/graphics/">
	ftp://sunsite.unc.edu/pub/Linux/libs/graphics/</A>. The
      configure script will notify you if some necessary files are
      missing and the according tools won't be compiled.
    </P>

    <P>
      <B>Irman (=UIR) :</B> To use your Irman with LIRC you need the
      latest <A HREF="http://www.lirc.org/software/snapshots/">
      <em>libirman</em></A> library. At the time this has been written
      the current libirman version was 0.4.3. Former versions won't
      work. Please also read <A HREF="#updating">Updating from
      lirc-0.5.4</A>.
    </P>

    <A NAME="kernel"></A>

    <P>
      <B>Kernel modules:</B> All devices that require a kernel module
      will need the properly configured kernel sources being available
      somewhere in /usr/src/. During the build process of this package
      the kernel Makefile and the current kernel configuration will be
      used to work around some other problems that would arise if we
      used our own Makefile. That means that you might have to build
      your own kernel which is a good idea anyway. Make sure you use
      the standard kernel which you can download at <A
        HREF="http://www.kernel.org">www.kernel.org</A>.  Don't use any
      kernel sources that have been modified for your
      distribution. For example you won't be able to compile some
      modules for kernels that come with S.u.S.E. 7.0. Please refer to
      the documentation of your distribution or read the
      <em>README</em> file in the kernel source directory to get more
      information on how to compile and set up an own kernel. More
      documentation is available at the <A
        HREF="http://sunsite.unc.edu/LDP/">Linux Documentation
      Project</A>.
    </P>
    <P>
      If you are still running a stock kernel that came with your
      distribution and don't want to compile a new kernel you can try
      the following. Install the kernel sources package of the
      currently running kernel. Most distributions provide rpm/deb
      packages of their stock kernels. Double-check that you selected
      the correct kernel sources. Now make sure that there is a file
      called .config in the root directory of the kernel source
      tree. This file holds the configuration used to compile this
      kernel. If it is not available and you can't get it from a
      different source (/boot/config-<em>version</em> (Debian),
      /proc/config.gz (SuSE) or
      /usr/src/linux-<em>version</em>/configs/ (Red Hat) are good
      places to look into) you are out of luck and will have to
      configure and compile your own kernel. Otherwise call <em>make
      oldconfig &amp;&amp; make dep</em> inside the root directory of
      the kernel source tree. After that you should be able to compile
      the LIRC modules without problems. Just make sure that the
      configure script for the LIRC package picked the correct kernel
      source directory. But be aware that there might still be some
      problems due to incompatible extensions of the distribution
      kernels as mentioned in the last paragraph. There are even more
      pitfalls. The modules should be compiled with the same compiler
      version. Otherwise you might see strange lockups and kernel
      oopses. Another problem might be that some distribution vendors
      also modify the kernel version variables inside the Makefile of
      the kernel and e.g. add something like <em>custom</em> to the
      EXTRAVERSION variable. This will result in the modules being
      installed in the wrong directory. In such cases it is common
      practice to remove the <em>custom</em> string before proceeding
      with kernel compilation. This has been only a list of known
      problems. If you run into such problems I won't be able to help
      you, so don't even ask.
    </P>
    <P>
      If you want to use a home-brew receiver, an Anir Multimedia
      Magic, a Packard Bell receiver, the IRdeo or if you want to use
      the SIR IrDA driver, I suggest that you compile the Linux kernel
      serial port driver as a module (however, you can choose not to
      do so if you use setserial properly, see below). The according
      kernel option that should be set to <em>M</em> is
      <em>Standard/generic (dumb) serial support</em>
      (resp. <em>Standard/generic (8250/16550 and compatible UARTs)
      serial support</em> for 2.4 kernels) in the <em>Character
      devices</em> section of the kernel configuration
      dialogue. Usually the serial port driver grabs all ports it
      auto-detects as soon as it is loaded and the LIRC modules won't
      be able to use any of them.
    </P>

    <P>
      There are two solutions for this problem. Either you load the
      LIRC module before the kernel serial port driver is loaded
      (that's why you have to compile it as a module) or you call
      <em>setserial /dev/ttySx uart none</em> to release the according
      port. setserial usually is already called during boot-up in some
      init script whose location depends on the distribution you
      use. Be aware that setserial might also be the cause of
      trouble. The reason for this is a kernel bug (known to be true
      for 2.2.20, patches are on the way). If you tell setserial to
      configure a port that is already claimed by a LIRC module, the
      kernel serial driver will steal the port from the LIRC module
      and LIRC will stop working. So check your setserial
      configuration to only configure available ports. Debian users
      should adjust their <em>/etc/serial.conf</em>.
    </P>
    
    <P>
      <B>TV cards:</B> To use any remote control receivers connected
      directly to a bttv based TV card you will need a working bttv
      setup in your kernel. For most TV cards we rely on bttv
      autodetection. That way you don't have to give any parameters to
      the module as they are selected internally depending on the
      information the bttv module gives us. This means that you should
      pay attention that your TV card is detected correctly by bttv.
    </P>
    <P>
      <B>Technisat MediaFocus I:</B> You will have to install the <A
	HREF="http://freenet-homepage.de/mediafocus/">driver</A> for this
      card.
    </P>
    
    <!-- Supported Hardware ++++++++++++++++++++++++++++++++++++++++++++++ -->

    <A NAME="hardware"></A><HR>
    <H1 ALIGN="CENTER">Supported Hardware</H1>
    <HR WIDTH="70%">

    <P>
      Generally speaking everything that can receive or send infrared
      signals can be supported by LIRC. The project began with support
      for home-brew receivers and transmitters for the serial port and
      later support for analogous hardware for the parallel port was
      added. At that time the focus of the project was to provide an
      infrared solution that is both very cheap and easy to
      assemble. The following links point to instructions how to build
      your own receiver/transmitter.
    </P>

    <UL>
      <LI><A HREF="http://www.lirc.org/receivers.html">
	  Building a serial port receiver</A></LI>
      <LI><A HREF="http://www.lirc.org/transmitters.html">
	  Building a serial port transmitter</A></LI>
      <LI><A HREF="http://www.lirc.org/parallel.html">
	  Building a parallel port transceiver</A></LI>
    </UL>
    
    <P>
      Current versions of LIRC now support many more commercially
      available solutions. Examples are the Irman, built-in IrDA ports
      or TV cards. Drivers for even more hardware are likely to appear
      in the future. If you are a programmer who wants to maintain
      such a driver you are welcome to join the project.
    </P>
    <P>
      You should locate your device in this <A HREF="table.html">list
      of supported devices</A> and see if there is additional
      information available regarding the setup of your device.
    </P>
    
    <!-- Compiling +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
    
    <A NAME="compiling"></A><HR>
    <H1 ALIGN="CENTER">Compiling</H1>
    <HR WIDTH="70%">
    
    <P>
      Before compiling the binaries you have to choose which driver to
      use. This can easily be done with the <em>setup.sh</em>
      script. Just type <em>./setup.sh</em> from the shell
      prompt. After selecting your driver you can exit the setup with
      &quot;Save configuration &amp; run configure&quot;.
    </P>

    <P>
      If you don't have <em>dialog</em> installed you will have to do
      it the hard way and give the correct parameters to the configure
      script manually. See <em>./configure --help</em> for a detailed
      description of the possible parameters. You will have to at
      least choose a driver with the <em>--with-driver=X</em>
      option.
    </P>

    <P>There are three special drivers:</P>
    <DL>
      <DT>all</DT>
      <DD>
	will build multiple drivers into lircd and runtime selection
	will be possible using the <em>--driver</em> option.  However,
	not all drivers are included, so in some cases you will have
	to select the appropriate driver and not <em>all</em>. This
	option will also compile all available kernel modules. Some
	kernel modules are only supported with recent kernel
	versions. That means that compilation of these drivers might
	fail with older kernel versions. If this happens for you, you
	should consider using the <em>userspace</em> driver described
	below and only compile the kernel modules that you need
	separately.
      </DD>

      <DT>none</DT>
      <DD>
	will only let lircd talk to other lircd's though the network and
	not to any local hardware.
      </DD>

      <DT>userspace</DT>
      <DD>
        behaves like the <em>all</em> driver option except that no
        kernel modules will be built.
      </DD>
    </DL>
    
    <P>
      When running the configure script, please pay attention at its
      output. At the end of the configuration checks, it will tell you
      which kernel module (if any) will be required for your
      hardware. You can also look up this information in the <A
      HREF="table.html">device table</A>. After having configured the
      package just type <em>make</em> and lean back.
    </P>
    
    <P>
      <B>Note:</B> You won't find a configure script in the source repo
      version of LIRC. You will have to generate it first by executing
      <em>./autogen.sh</em>. You need at least libtool-1.3.3,
      automake-1.4 and autoconf-2.13 to do this properly.
    </P>
    
    <!-- Install LIRC ++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
    
    <A NAME="installing"></A><HR>
    <H1 ALIGN="CENTER">Installation</H1>
    <HR WIDTH="70%">
    
    <P>
      Installing the compiled programs is really easy, just type
      <em>make install</em>. All binaries and modules should be
      installed at the usual places. The necessary devices should be
      generated in the <em>/dev/</em> directory and all configuration
      files should be copied to its proper destination if you happen
      to use some hardware where configuration files are already
      available.
    </P>

    <P>
      When you are using <em>devfs</em> or <em>sysfs</em> with your
      kernel, the /dev/lirc device node will disappear again once you
      reboot your machine. In that case the LIRC kernel module will
      generate the required entry every time it is loaded. But the
      device node won't be visible as /dev/lirc, but might be located
      in a different location like e.g. /dev/lirc/0. Please be aware
      of this fact when starting programs that access the device node
      like mode2 or lircd. You will have to use the --device command
      line option of these programs to point them to the correct
      location. When using sysfs together with the udev daemon you
      should copy the <em>lirc.rules</em> file located in the contrib
      directory of the source package to
      <em>/etc/udev/rules.d/</em>. This will make sure that the device
      node will be created.
    </P>
    
    <P>
      The core program of LIRC is <em>lircd</em>, the LIRC system
      daemon that does all of the decoding of infrared signals. LIRC
      comes with a second daemon program: <em>lircmd</em>. lircmd
      depends on lircd and translates remote control activity to mouse
      movements. Just like all other daemons both lircd and lircmd
      should be started at system boot time and do their work in
      background. If you want to start them automatically at boot time
      you will have to add an init script for them to your
      system. Unfortunately the syntax and location of this init
      script is highly dependent on the distribution you use so you
      will have to figure it out yourself how this works on your
      system. Good news is that there already are some init scripts
      available in the <em>contrib/</em> directory of the LIRC
      package.
    </P>
    
    <P>
      <B>Warning:</B> Never compile daemons with &quot;Disable
      daemonize&quot; turned on and place them in some init script
      unless you have a rescue disc nearby...
    </P>
    
    <P>
      Now you should adjust the file permissions of
      <em>/var/run/lirc/lircd</em> (this is the Unix domain socket that clients
      use to connect to lircd) so others than <em>root</em> can
      connect to lircd.</P>
    <PRE>
        chmod 666 /var/run/lirc/lircd</PRE>
    <P>
      should do. You can also create a special group for this purpose.
    </P>
    
    <P>
      If your hardware requires a kernel module you should make sure
      that the kernel will find the correct module if a program tries
      to access <em>/dev/lirc</em>. This can be done by inserting the
      following line to your <em>/etc/conf.modules</em>
      (<em>/etc/modules.conf</em> for current kernel versions):
    </P>
    <PRE>
	alias char-major-61  lirc_driver</PRE>
    <P>
      Note that here <em>driver</em> is a placeholder for the actual
      driver you are using (serial, parallel, etc.).
    </P>
    
    <P>
      If your driver requires some special parameters to work you can
      specify them at the same place. For example you can set the IRQ
      and I/O base the serial port drivers shall use by adding the
      following line to <em>/etc/conf.modules</em>:</P>
    <PRE>
	options lirc_serial irq=4 io=0x3e8</PRE>
    <P>
      This will override the default values you have selected during setup.
      The configure script will tell you which kernel module you need.
    </P>
    
    <P>
      Finally you might want to add <em>/usr/local/lib</em> to
      <em>/etc/ld.so.conf</em> so the <em>lirc_client</em> library is
      found by the run-time linker. Don't forget to call
      <em>ldconfig</em> afterwards for the change to take effect.
    </P>

    <!-- Testing +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
    
    <A NAME="testing"></A><HR>
    <H1 ALIGN="CENTER">Testing your hardware &amp; configuration</H1>
    <HR WIDTH="70%">
    
    <P>
      If you have build the infrared hardware yourself you are
      probably eager to find out if it really works. If you have not
      build the hardware yourself you can skip the first test. For
      most receivers it even won't work because it makes no
      sense.
    </P>
    
    <P>
      Type <em>su</em> to get root privileges and start <em>mode2</em>
      (<B>Warning:</B> don't confuse mode2 with mode3: mode3 will set
      your video card to a vesa mode using the vesa bios
      calls...). This should load the kernel module into the kernel
      and display the infrared signals. Hold your remote control to
      your infrared receiver and press some buttons. You should see an
      output like this (the values of your remote will probably be
      different):
    </P>
    
    <PRE>
	pulse 93
	space 4965
	pulse 108
	space 4969
	pulse 93
	space 7496
	pulse 93
	space 7489
	pulse 93
	space 47915
	pulse 138
	space 7475
	pulse 93
	space 7494
	pulse 93</PRE>
    <P>
      If you don't see anything, try to find out: (a) if you selected
      the correct driver with the correct settings (I/O base address,
      IRQ), (b) if you use a remote which works and (c) if your
      hardware works. The voltage input of the infrared receiver
      should be 5V +/- 0.5V, the output pin of the receiver should be
      about 0.5V less than the input voltage.
    </P>
    
    <P>
      From time to time there should be long spaces (&gt;30000). If you
      can see very long pulses this usually means that sense auto
      detection of your serial port IR receiver circuit has
      failed. You can override sense auto detection by loading the
      device driver with the following option:</P>
    
    <P>
      <em>modprobe lirc_serial sense=0</em> if your receiver circuit is active
      high or<BR>

      <em>modprobe lirc_serial sense=1</em> if your receiver circuit is active
      low.
    </P>

    <P>
      Well, the driver seems to work, now let's test if lircd also
      does its job. This only works, if lircd uses a <A
      HREF="configure.html#lircd.conf">config file</A> which fits to
      your remote control. Use <A
      HREF="irrecord.html"><em>irrecord</em></A> in the case the LIRC
      distribution doesn't provide a config file suitable for your
      remote and it still is not available at the LIRC homepage. A
      more detailed discussion of creating new config files is
      available in the section about, you guess it: <A
      HREF="help.html#new_remote">Adding new remote controls</A>.
    </P>

    <P>
      Then start the decoder daemon with (make sure it is in your
      path): <em>lircd</em> [config file]
    </P>
    
    <P>
      The following program dumps the decoded key codes from lircd to
      stdout: <em>irw</em>
    </P>
    
    <P>
      This looks like this (depending on your remote):
    </P>
    <PRE>
	0000000000f40bf0 00 1_DOWN ANIMAX
	0000000000f40bf0 01 1_DOWN ANIMAX
	0000000000f40bf0 02 1_DOWN ANIMAX
	0000000000f40bf0 03 1_DOWN ANIMAX
	0000000000f40bf0 04 1_DOWN ANIMAX
	0000000000f40bf0 05 1_DOWN ANIMAX
	0000000000748bf0 00 1_UP ANIMAX
	0000000000748bf0 01 1_UP ANIMAX
	0000000000748bf0 02 1_UP ANIMAX
	0000000000718ef0 00 RED_BUTTON_UP ANIMAX</PRE>
    <P>
      If the driver test did work, but you now see nothing, then check
      <em>/var/log/lircd</em>. If you still see nothing suspicious
      compile lircd in DEBUG mode and look at the log file again. In
      debug mode lircd has an additional command line option that lets
      you choose the detail level of debug information.
    </P>
    
    <A NAME="sending"></A><HR>
    <H1 ALIGN="CENTER">Sending infrared signals</H1>
    <HR WIDTH="70%">
    
    <P>
      The LIRC package contains the <A HREF="irsend.html">irsend</A> tool for
      sending infrared signals to e.g. your TV or CD player. For
      reliable transmission a good config file is even more important
      than for receiving. A discussion of all the infrared protocols
      is way beyond the scope of this manual but when creating a
      config file at least read the <A
	HREF="help.html#new_remote">hints</A> at the end of this
      manual. You can find exact timing specifications for most common
      inside the remotes/generic/ directory of the LIRC package.
    </P>
    <P>
      If you want a graphical interface for controlling your devices
      using LIRC, you should have a look at xrc. You can download the
      xrc package from the LIRC homepage. xrc is a Qt based
      program. Setting up xrc and Qt is a bit tricky so if you don't
      manage to compile it you can still use irsend. It has the full
      functionality you need.
    </P>

    <!-- Uninstall LIRC ++++++++++++++++++++++++++++++++++++++++++++++++++ -->
    
    <A NAME="uninstall"></A><HR>
    <H1 ALIGN="CENTER">Uninstall</H1>
    <HR WIDTH="70%">
    
    <UL>
      <LI>Remove the installed binaries, and device nodes:<BR>
	<BR>
	<em>make uninstall</em><BR>
	<BR>
      </LI>
      <LI>Remove the config files, if you don't need them anymore:<BR>
	<BR>
	<em>rm /etc/lirc/lircd.conf /etc/lirc/lircmd.conf /etc/lirc/lircrc ~/.lircrc</em><BR>
	<BR>
      </LI>
    </UL>
    
    <!-- Module specific information +++++++++++++++++++++++++++++++++++++ -->
    
    <A NAME="specific"></A><HR>
    <H1 ALIGN="CENTER">Module specific information</H1>
    <HR WIDTH="70%">
    
    <H3>lirc_gpio</H3>
    
    <P>
      This module receives scan codes from the GPIO register of bt8[47]8
      chips using polling or interrupts if the card supports this. It is a
      &quot;plugin&quot; for the <em>lirc_dev</em> module. It loads
      <em>bttv</em> and <em>lirc_dev</em> modules if they are not
      loaded yet.<BR>
    </P>

    <P>
      The following gives a list of parameters for the module. If your
      TV card is already listed as supported than you don't need to
      care about parameters except <em>debug</em> and <em>card</em>
      because all other are set to the correct values
      automatically. Setting the values manually only makes sense
      while adding support for a new TV card so that you don't have to
      recompile the module each time you try a different value.
    </P>
    <UL>
      <LI><B>debug</B> (0) - value other than 0 (zero) enables
	printing more log messages</LI>
      <LI><B>card</B> (0) - number of TV card from which receive scan
	codes</LI>
      <LI><B>minor</B> (-1) - minor device number for
	/dev/lirc device</LI>
      <LI><B>gpio_mask</B> (0) - bit mask used for extracting usable
	bits from GPIO value<BR> If this parameter is equal to 0 then
	the module tries to autodetect the TV card and the remaining
	parameters are ignored.</LI>
      <LI><B>gpio_lock_mask</B> (0) - if this value &quot;anded&quot;
	with GPIO value is non zero than it indicates that scan code
	is not ready (value of 0 of this parameter disables
	checking)</LI>
      <LI><B>gpio_xor_mask</B> (0) - bitmask applied (by xor
	operation) to GPIO value before lock_mask is checked</LI>
      <LI><B>soft_gap</B> (0) - minimal gap (in milliseconds) between
	two scan codes (value of 0 disables checking)</LI>
      <LI><B>sample_rate</B> (10) - how often (times per second) GPIO
	will be polled, set to 0 for interrupt driven input</LI>
      <LI><B>bttv_id</B> (unknown) - force given bttv id, signals from
	some cards are translated to match original codes</LI>
    </UL>
    <P>
      Usage example would be e.g:
    </P>
    <em>modprobe lirc_gpio gpio_mask=0x1f00 gpio_lock_mask=0x8000 gpio_xor_mask=0 soft_gap=400 sample_rate=12</em>
    <P>
      Autodetection is performed using the API from the <em>bttv</em>
      module - this means that if <em>bttv</em> doesn't properly
      recognize the card type the remote control won't work.
    </P>
    
    <!-- Updating from lirc-0.5.4 ++++++++++++++++++++++++++++++++++++++++ -->
    
    <A NAME="updating054"></A><HR>
    <H1 ALIGN="CENTER">Updating from lirc-0.5.4</H1>
    <HR WIDTH="70%">
    
    <P>
      This section only describes changes that break compatibility
      with older versions. Please read the <EM>NEWS</EM> file to learn
      about all new features of this release.
    </P>
    <P>
      The config files of <em>lircd</em> and <em>lircmd</em> are now
      located in <em>/usr/local/etc/</em> instead of <em>/etc/</em>
      per default. Most people prefer to make <em>/usr/local/etc/</em>
      a link to <em>/etc/</em>.
    </P>
    <P>
      The modules no longer are uniformly installed as <em>lirc.o</em>
      but are called lirc_<em>driver</em>.o depending on the driver
      you are using. Therefore you might have to edit your
      <em>/etc/conf.modules</em> and change the line
    </P>
    <PRE>
    alias char-major-61 lirc</PRE>
    <P>
      to whatever you need.
    </P>
    <P>
      LIRC now supports the Irman directly. <em>lirmand</em> is no
      longer necessary. Before installing this version you should call
      <NOBR><EM>rm /dev/lirc</EM></NOBR> to remove the FIFO that was
      used in lirc-0.5.4. <em>/dev/lirc</em> now should be a link to
      the device the Irman is connected to (e.g. <em>/dev/ttyS1</em>).
    </P>

    <A NAME="updating062"></A><HR>
    <H1 ALIGN="CENTER">Updating from lirc-0.6.2</H1>
    <HR WIDTH="70%">

    <P>
      The lirc_gpio_p has been renamed to lirc_gpio. It now also
      contains support for TV cards that are able to generate
      interrupts if infra-red commands are received. The lirc_gpio_i
      driver that implemented this has been removed. The lirc_fly98
      also has been removed as it is now supported by the lirc_gpio
      driver.
    </P>
    
    <P>
      The <em>lirc_haup</em> module has been renamed to <em>lirc_i2c</em>.
    </P>
    
    <P>
      The transmit code in <em>lirc_serial</em> has been modified
      slightly. If you have problems transmitting decrease the
      frequency value in the lircd config file by approximately 2000.
    </P>
    
    <P>
      There have been major changes to the SIR driver. If you used
      this driver before you may have to generate new config files for
      your remotes. Transmitting is now more likely to work.
    </P>
    
    <P>
      The config file for the old AVerMedia TVCapture and TVPhone
      cards (pre 98) has changed. Please use the new config file that
      you can find in <em>remotes/avermedia/lircd.conf.avermedia</em>.
    </P>
    
    <A NAME="updating063"></A><HR>
    <H1 ALIGN="CENTER">Updating from lirc-0.6.3</H1>
    <HR WIDTH="70%">
    
    <P>lircd.conf and lircmd.conf are in /etc again.</P>
    
    <P>
      Two independend bugs were fixed in the IRdeo and home-brew
      transmitter code that affected correct pulse/space timings in
      some situations. This might break config files that did work
      with previous versions.
    </P>

    <A NAME="updating064"></A><HR>
    <H1 ALIGN="CENTER">Updating from lirc-0.6.4</H1>
    <HR WIDTH="70%">
    
    <P>
      AVerMedia TV cards with ID 0x00011461 and 0x00041461 should
      finally work with the provided config files. That means they
      will no longer work with the config files you have created
      yourself.
    </P>
    <P>
      The I/O base address for some modules now is set with the
      <em>io</em> parameter. (formerly: lirc_sir = iobase, lirc_serial
      and lirc_parallel = port).
    </P>

    <A NAME="updating065"></A><HR>
    <H1 ALIGN="CENTER">Updating from lirc-0.6.5</H1>
    <HR WIDTH="70%">
    
    <P>
      The config file for the Pixelview PlayTV pro and compatible TV
      cards has changed. Please use the config file in
      <em>remotes/pixelview/lircd.conf.playtv_pro</em>.
    </P>
    <P>
      The config file for the Winfast TV2000 and compatible TV cards
      has changed. Please use the config file in
      <em>remotes/winfast/lircd.conf.tv2000</em>.
    </P>

    <A NAME="updating066"></A><HR>
    <H1 ALIGN="CENTER">Updating from lirc-0.6.6</H1>
    <HR WIDTH="70%">
    
    <P>
      The config files for all FlyVideo TV cards have changed. Please
      use the config file in
      <em>remotes/life-view/lircd.conf.flyvideo</em>.
    </P>
    <P>
      The config file for the Winfast TV2000 TV card has
      changed. Please use the config file in
      <em>remotes/leadtek/lircd.conf.RM-0010</em>.
    </P>
    <P>
      The lirc_sir now should generate better signals for some
      remotes. Due to the change some old config files generated with
      previous versions of the driver might stop working. In this case
      you should just create a new config file using the new
      driver. If you want to get the old behaviour of the driver
      (deprecated) you can insert the module using the
      <em>threshold=2</em> parameter. The default of
      <em>threshold</em> is now set to 3. You might even want to try
      higher values.
    </P>
    <P>
      When you are using LIRC with the <B>Linux input layer</B>
      driver, make sure that your config file contains the following
      line in its header:
    </P>
    <pre>
	bits 32
    </pre>
    <P>
      Otherwise lircd will not recoginise any events.
    </P>
    

    <A NAME="updating07x"></A><HR>
    <H1 ALIGN="CENTER">Updating from lirc-0.7.x</H1>
    <HR WIDTH="70%">
    
    <P>
      There is a new program that you probably want to use: <A
      HREF="lircrcd.html">lircrcd</a> reads the .lircrc config file
      and synchronises the mode that the LIRC clients using this
      config file (irexec, irxevent, etc.) are in. Using lircrcd has
      to be explicitly enabled in the config file by adding the
      following line at the beginning of the file:
<pre>
#! lircrcd
</pre>
    </P>


    <A NAME="updating081"></A><HR>
    <H1 ALIGN="CENTER">Updating from lirc-0.8.1</H1>
    <HR WIDTH="70%">
    
    <P>
      The config file for the Pinnacle Systems PCTV (pro) receiver has
      changed. Please use the config file in
      <em>remotes/pinnacle_systems/lircd.conf.pctv</em>.
    </P>
    <P>
      The config file for the Creative Infra Receiver/CIMR100 has
      changed. Please use the config file in
      <em>remotes/creative/lircd.conf.creative</em>.
    </P>
    <A NAME="updating084"></A><HR>
    <H1 ALIGN="CENTER">Updating from lirc-0.8.4</H1>
    <HR WIDTH="70%">
    
    <P>
      Newly added iMon LCD displays with device ids 15c2:0038 and 15c2:0045
      use a larger buffer to enable all remote and panel buttons. Consequently,
      config files for earlier iMon receivers are not compatible with these
      new devices, and vice versa. Be sure to select the appropriate 64-bit
      config for a newer iMon LCD. (Early cvs support for the 0038 used only
      a 32-bit buffer).
      <em>For the 0038: remotes/imon/lircd.conf.imon-ultrabay</em>.
      <em>For the 0045: remotes/imon/lircd.conf.imon-antec-veris</em>.
    </P>
    <P>
      The behaviour of the <em>quit</em> flag in the <A
	HREF="configure.html#lircrc_format">.lircrc</A> config file
      has changed slightly concerning button sequences. Previously the
      quit flag had no effect on button sequences which had partly
      been entered. Now the quit flag will make execution of further
      configurations stop even though just part of the button sequence
      has been entered.
    </P>
    <P>
      There was an interface change in the <em>lirc_dev</em> kernel
      module. If you get an error message like
<PRE>
lirc_serial: Unknown symbol lirc_unregister_driver
lirc_serial: Unknown symbol lirc_register_driver
</PRE>
    when trying to load any of the lirc kernel modules, then you have
    probably an old version of <em>lirc_dev</em> loaded. Make sure
    that the <em>lirc_dev</em> version that comes with this release is
    loaded.
    </P>

    <A NAME="updating085"></A><HR>
    <H1 ALIGN="CENTER">Updating from lirc-0.8.5</H1>
    <HR WIDTH="70%">
    
    <P>
      The lircd socket was moved from <em>/dev/lircd</em> to
      <em>/var/run/lirc/lircd</em> to conform to the Filesystem Hierarchy
      Standard. The default pid file location was moved from
      <em>/var/run/lircd.pid</em> to <em>/var/run/lirc/lircd.pid</em>.
    </P>
    <P>
      The default location of lircd, lircmd and lircrcd config files
      was moved to <em>/etc/lirc/lircd.conf</em>,
      <em>/etc/lirc/lircmd.conf</em> and <em>/etc/lirc/lircrc</em>. If
      the config files are not found in that location, they are still
      searched at the old location in <em>/etc/</em>.
    </P>
    <P>
      The functionality of the <em>lirc_mceusb2</em> driver has been
      merged into the <em>lirc_mceusb</em> driver. The
      <em>lirc_mceusb2</em> driver is now obsolete and has been
      removed. You should use <em>lirc_mceusb</em> from now on.
    </P>

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

		<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>