Hi everyone,

After more scouring of the internet, I've solved this problem.

The source of these errors is a bad interaction between ir_kbd_i2c and
lirc_i2c.  Unfortunately, ir_kbd_i2c is being built into my kernel
somehow, and I don't know how to disable it.  (saa7134 is known to
include ir_kbd_i2c, but CONFIG_VIDEO_SAA7134=n for me).  Therefore,
the only solution is to avoid avoid lirc_i2c.  Fortunately, this is
not too difficult -- we just need to use the linux event interface
instead.

This solutions is based on information from:
http://linuxtv.org/v4lwiki/index.php/Remote_controllers#Using_with_lircd
http://ivtv.writeme.ch/tiki-index.php?page=Remotes

1.  Use lsmod to make sure lirc_i2c is not loaded.
     Gentoo: remove lirc_i2c from /etc/modules.autoload.d/kernel-2.6
to stop loading on reboot.

2. Make sure lircd is not running
     Gentoo: /etc/init.d/lircd stop

3. Install v4l input utils
    Gentoo:
        echo sys-apps/input-utils ~x86 >> /etc/portage/package.keywords
        emerge sys-apps/input-utils

4. Find your tuner card in the event interfaces
     run lsinput
     Mine says:

<snip>
/dev/input/event2
   bustype : BUS_I2C
   vendor  : 0x0
   product : 0x0
   version : 0
   name    : "i2c IR (Hauppauge)"
   phys    : "i2c-0/0-0018/ir0"
   bits ev : EV_SYN EV_KEY EV_REP

   So I'm on event2.

5. The default map for events won't handle all the keys on your
remote.  Useful things like the "OK" button and the "Back" button
won't work, and other buttons will be mapped to odd things.  We can
fix this by updating the mapping for the device.  I modified the
method given in one of the reference links above.  To use my
modifications:

cd /etc
mkdir ivtv
cd ivtv
wget web.mit.edu/bonawitz/www/ivtv/applykeymap
wget web.mit.edu/bonawitz/www/ivtv/ir_kbd_i2c.pvr350.conf
chmod +x applykeymap
./applykeymap ir_kbd_i2c.pvr350.conf 2

(in the last line, replace the final 2 with your device's event number)

6. Lirc needs to be built for devinput rather than hauppauge support.
     Gentoo:
        edit /etc/make.conf, LIRC_DEVICES="devinput"
        emerge --newuse lirc

7. You'll need a new lirc.conf.

The easy solution is to get a copy of the one I made (which is
designed to match the hauppauge_pvr device in the standard lirc
configuration at
http://lirc.sourceforge.net/remotes/hauppauge/lircd.conf.hauppauge).
To do so:
  cd /etc
  mv lircd.conf lircd.conf.hauppauge_ivtv
  wget web.mit.edu/bonawitz/www/ivtv/lircd.conf.hauppauge_devinput
  ln -s lircd.conf.hauppauge_devinput lircd.conf

Alternately, you can make your own:
  cd /etc
  mv lircd.conf lircd.conf.hauppauge_ivtv
  irrecord -H dev/input -d /dev/input/event2 lircd.conf.hauppauge_devinput
  ln -s lircd.conf.hauppauge_devinput lircd.conf

  Remember to use your device's event number in the irrecord command.
If you make your own configuration, you'll either need to make sure
your button names match what is currently in your /etc/lircd.conf, or
you'll need to customize the lircrc file used by mythtv.

8. Point lircd to the appropriate event device (Remember to use your
device's event number)
        edit /etc/conf.d/lirc: LIRCD_OPTS="-H dev/input -d /dev/input/event2"

9. Restart lircd
     Gentoo: /etc/init.d/lircd start

At this point, you should have a fully functioning remote control
again.  The one last thing to do is to make sure that the key mappings
get applied every time you boot the system.  On Gentoo I accomplished
this by adding a script to my /etc/init.d:
     cd /etc/init.d
     wget web.mit.edu/bonawitz/www/ivtv/ivtv
     chmod +x ivtv
     rc-update add ivtv default

Hopefully this helps someone else!
Keith

On 3/27/07, Rob Dege <[EMAIL PROTECTED]> wrote:
> Keith,
>
> Downgrading back to my 2.6.18.7 kernel resolved the lirc problem.  I
> was using the 2.6.19.7 kernel when the problems started occurring.  I
> also experienced system freezing issues as well with 2.6.19.7 +
> ivtv-0.10.1.  So I'm currently running the 2.6.18 kernel with 0.10.1
> to see if that problem is resolved as well.
>
> I haven't bothered testing a 2.6.20 vanilla kernel yet to see if the
> lirc problems persist there as well.
>
> -Rob
>
> On 3/27/07, Keith Bonawitz <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > I'm seeing errors that appear to be the same as reported by Rob
> > (livemotion at gmail) a few days ago
> > (http://www.gossamer-threads.com/lists/ivtv/users/35161#35161)
> >
> > Details:
> > I'm running Gentoo.  I just upgraded my kernel from 2.6.15 to 2.6.19,
> > upgraded ivtv drivers from something quite old to 0.10.1, upgraded
> > lirc to 0.8.1, and upgraded a number of other things including Xorg
> > and mythtv.  Everything works smoothly, except for only getting proper
> > responses to ~25% of the presses on my remote control; many "unknown
> > key" errors reported by dmesg (excerpt from dmesg below).  This
> > behavior happens in MythTV, but also persists if I shutdown both the
> > frontend and backend and just use irw to watch what lirc is receiving.
> >
> > Was there any progress on this issue?
> >
> > Thanks,
> > Keith
> >
> > ivtv:  ==================== START INIT IVTV ====================
> > ivtv:  version 0.10.1 (tagged release) loading
> > ivtv:  Linux version: 2.6.19-gentoo-r5 SMP preempt mod_unload K7 REGPARM
> > ivtv:  In case of problems please include the debug info between
> > ivtv:  the START INIT IVTV and END INIT IVTV lines, along with
> > ivtv:  any module options, when mailing the ivtv-users mailinglist.
> > ivtv0: Autodetected Hauppauge card (cx23415 based)
> > ACPI: PCI Interrupt 0000:00:0f.0[A] -> Link [LNKD] -> GSI 10 (level,
> > low) -> IRQ 10
> > ivtv0: Unreasonably low latency timer, setting to 64 (was 32)
> > ivtv0: loaded v4l-cx2341x-enc.fw firmware (376836 bytes)
> > ivtv0: loaded v4l-cx2341x-dec.fw firmware (262144 bytes)
> > ivtv0: Encoder revision: 0x02060039
> > ivtv0: Decoder revision: 0x02020023
> > input: i2c IR (Hauppauge) as /class/input/input2
> > ir-kbd-i2c: i2c IR (Hauppauge) detected at i2c-0/0-0018/ir0 [ivtv i2c 
> > driver #0]
> > saa7115 0-0021: saa7115 found (1f7115d0e100000) @ 0x42 (ivtv i2c driver #0)
> > saa7127 0-0044: saa7127 found @ 0x88 (ivtv i2c driver #0)
> > msp3400 0-0040: MSP4448G-A2 found @ 0x80 (ivtv i2c driver #0)
> > msp3400 0-0040: MSP4448G-A2 supports radio, mode is autodetect and 
> > autoselect
> > tuner 0-0061: chip found @ 0xc2 (ivtv i2c driver #0)
> > tveeprom 0-0050: Hauppauge model 48132, rev J333, serial# 6825606
> > tveeprom 0-0050: tuner model is Temic 4039FR5 (idx 33, type 21)
> > tveeprom 0-0050: TV standards NTSC(M) (eeprom 0x08)
> > tveeprom 0-0050: audio processor is MSP4448 (idx 27)
> > tveeprom 0-0050: decoder processor is SAA7115 (idx 19)
> > tveeprom 0-0050: has radio, has IR remote
> > ivtv0: Autodetected Hauppauge WinTV PVR-350
> > ivtv0: Registered device video0 for encoder MPEG (4 MB)
> > ivtv0: Registered device video32 for encoder YUV (2 MB)
> > ivtv0: Registered device vbi0 for encoder VBI (1 MB)
> > ivtv0: Registered device video24 for encoder PCM audio (1 MB)
> > ivtv0: Registered device radio0 for encoder radio
> > ivtv0: Registered device video16 for decoder MPEG (1 MB)
> > ivtv0: Registered device vbi8 for decoder VBI (1 MB)
> > ivtv0: Registered device vbi16 for decoder VOUT
> > ivtv0: Registered device video48 for decoder YUV (1 MB)
> > ivtv0: loaded v4l-cx2341x-init.mpg firmware (155648 bytes)
> > tuner 0-0061: type set to 21 (Temic NTSC (4039 FR5))
> > ivtv0: Initialized Hauppauge WinTV PVR-350, card #0
> > ivtv:  ====================  END INIT IVTV  ====================
> > ACPI: PCI Interrupt 0000:01:05.0[A] -> Link [LNKA] -> GSI 11 (level,
> > low) -> IRQ 11
> > nvidiafb: Device ID: 10de0182
> > nvidiafb: CRTC0 analog not found
> > nvidiafb: CRTC1 analog not found
> > nvidiafb: Unable to detect display type...
> > ...Using default of CRT
> > nvidiafb: Unable to detect which CRTCNumber...
> > ...Defaulting to CRTCNumber 0
> > nvidiafb: Using CRT on CRTC 0
> > nvidiafb: MTRR set to ON
> > Console: switching to colour frame buffer device 80x30
> > nvidiafb: PCI nVidia NV18 framebuffer (64MB @ 0xD4000000)
> > EXT3 FS on hda3, internal journal
> > ivtv0-fb: Framebuffer at 0xdd510000, mapped to 0xe1710000, size 1665k
> > ivtv0-fb: === Validated display mode  ===
> > ivtv0-fb: Display size 720x480 (720x480 Virtual) @ 32bpp
> > ivtv0-fb: Display position 1,1
> > ivtv0-fb: Display filter : on
> > ivtv0-fb: Color space : RGB
> > ivtv0-fb: === Display mode change ===
> > ivtv0-fb: Display size 720x480 (720x480 Virtual) @ 32bpp
> > ivtv0-fb: Display position 1,1
> > ivtv0-fb: Display filter : on
> > ivtv0-fb: Color space : RGB
> > ivtv0-fb: Running in compatibility mode. Display resize & mode change 
> > disabled
> > ivtv0-fb: Framebuffer registered on ivtv card id 0
> > lirc_dev: IR Remote Control driver registered, at major 61
> > lirc_i2c: chip found @ 0x18 (Hauppauge IR)
> > lirc_dev: lirc_register_plugin: sample_rate: 10
> > Adding 506036k swap on /dev/hda2.  Priority:-1 extents:1 across:506036k
> > ivtv0-fb: === Validated display mode  ===
> > ivtv0-fb: Display size 720x480 (720x480 Virtual) @ 32bpp
> > ivtv0-fb: Display position 1,1
> > ivtv0-fb: Display filter : on
> > ivtv0-fb: Color space : RGB
> > eth0: DSPCFG accepted after 0 usec.
> > eth0: link up.
> > eth0: Setting full-duplex based on negotiated link capability.
> > ivtv0-fb: === Validated display mode  ===
> > ivtv0-fb: Display size 720x480 (720x480 Virtual) @ 32bpp
> > ivtv0-fb: Display position 1,1
> > ivtv0-fb: Display filter : on
> > ivtv0-fb: Color space : RGB
> > ivtv0-fb: === Display mode change ===
> > ivtv0-fb: Display size 720x480 (720x480 Virtual) @ 32bpp
> > ivtv0-fb: Display position 1,1
> > ivtv0-fb: Display filter : on
> > ivtv0-fb: Color space : RGB
> > eth0: no IPv6 routers present
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x17e5 down=1
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x17e5 down=0
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=1
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=0
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x17e5 down=1
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x17e5 down=0
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=1
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=0
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x1fdf down=1
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x1fdf down=0
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x17df down=1
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x17df down=0
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x1fdf down=1
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x1fdf down=0
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x17df down=1
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x17df down=0
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x1fdf down=1
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x1fdf down=0
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x17df down=1
> > i2c IR (Hauppauge): unknown key: key=0x1f raw=0x17df down=0
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=1
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=0
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x17e5 down=1
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x17e5 down=0
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=1
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=0
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=1
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=0
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x17e5 down=1
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x17e5 down=0
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=1
> > i2c IR (Hauppauge): unknown key: key=0x25 raw=0x1fe5 down=0
> >
> > _______________________________________________
> > ivtv-users mailing list
> > [email protected]
> > http://ivtvdriver.org/mailman/listinfo/ivtv-users
> >
>
>
> --
> -Rob
>
> Ben Franklin Quote: "They that can give up essential liberty to obtain
> a little temporary safety deserve neither liberty nor safety."
>
> _______________________________________________
> ivtv-users mailing list
> [email protected]
> http://ivtvdriver.org/mailman/listinfo/ivtv-users
>

_______________________________________________
ivtv-users mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-users

Reply via email to