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
