News:

Registration disabled.  This forum is in maintenance mode (and has been for a few years now), so I've disabled registration.  If you already have an account, great, keep using it.  If not, unfortunately I won't be accepting any new registrations.  At some point in the near future this forum will be shutting down forever.

Main Menu

LIRC - remote control

Started by biophysics, January 30, 2007, 12:59:31 PM

Previous topic - Next topic

biophysics

Hi
Just would like to share how I managed to get LIRC working (because of the strange chip smsc):

1. Get a fairly new kernel > 2.6.13. In particular it must have the irda module smsc-ircc2

2. Install the LIRC package from your distribution. Remember to stop services like irda

2. In SUSE, the blacklist for modules is the file: /etc/modprobe.d/blacklist. Check your distribution for equivalent file and add the following lines.
blacklist smsc_ircc2
blacklist ircomm_tty
blacklist irda
The above step forbids the automatic loading of these modules during boot. The reason we have to do this is that wrong irq-s are registered by automatic loading.

3. Now you MUST reboot the machine. (If you fail to do kernel panic will happen when you proceed further)

4. Open a terminal as root.

5. load the module smsc_ircc2

modprobe -v smsc_ircc2

(if you get any error, check once again if your kernel has the module smsc_ircc2: see /lib/modules/ directory

6. If you check your dmesg (or /var/log/messages) you should see some information similar to this:

Detected unconfigured Compaq x1000 family SMSC IrDA chip, pre-configuring device.
Setting up Intel 82801 controller and SMSC device
found SMC SuperIO Chip (devid=0x5a rev=00 base=0x002e): LPC47N227
smsc_superio_flat(): fir: 0x2f8, sir: 0x2e8, dma: 03, irq: 7, mode: 0x0e
SMsC IrDA Controller found
IrCC version 2.0, firport 0x2f8, sirport 0x2e8 dma=3, irq=7
No transceiver found. Defaulting to Fast pin select

7. Now unload the same. These two steps are necessary to initialize the chip as the bios does not preconfigure it.

modprobe -rv smsc_ircc2

8. Now load LIRC modules:

modprobe -v lirc_sir io=0x2e8 irq=7

9. To give permissions for normal users edit your /etc/sysconfig/lirc and change

LIRCD_DEV_PERMISSIONS="666"

or make necessary changes to owner group

LIRCD_DEV_OWNER="root:video"

11. type in a terminal as root:

mode2

12. Press a few buttons from your TV/DVD remote control in front of port.
13. If everything is OK, you will see some pulses displayed in the terminal. Put a Ctrl-C and quit it.
....
space 16777176
pulse 8992
space 4481
pulse 584
space 517
.....

14. Now, you have to setup your remote. Check in www.lirc.org if your remote control is already listed.

15. Alternatively, use (as root)

# irrecord -d /dev/lirc0 /etc/lircd.conf

Now you can record/identify every button of your remote. Follow the instructions - it will create a lircd.conf file

16. Now start lirc daemon:

/etc/init.d/lirc start

17. Now in a terminal as normal user type:

$ irw

If there is some problem check the permissions of /dev/lirc0 or /dev/lirc and change them suitably with chmod command.

18. Press some buttons from your remote - you will see the corresponding keys identified in the terminal. For example, I pressed the MUTE button and it displays in the terminal:

[linux@sona] 101 (~): irw
000000001ce3a857 00 MUTE THOMSONROC36
000000001ce3a857 01 MUTE THOMSONROC36

19. Configure your ~/.lircrc file to connect actions to pressing buttons. Check www.lirc.org for advanced details.

My ~/.lircrc looks like:
begin
button = VOL+
prog = irexec
repeat = 1
config = dcop kmix Mixer0 increaseVolume 0
end
begin
button = VOL-
prog = irexec
repeat = 1
config = dcop kmix Mixer0 decreaseVolume 0
end
begin
button = MUTE
prog = irexec
repeat = 0
config = dcop kmix Mixer0 toggleMute 0
end