FS#21837 - [lirc] crash when xbox ir-reciever is plugged in
Attached to Project:
Arch Linux
Opened by Michael (SiD) - Friday, 26 November 2010, 13:36 GMT
Last edited by Tobias Powalowski (tpowa) - Friday, 09 March 2012, 08:15 GMT
Opened by Michael (SiD) - Friday, 26 November 2010, 13:36 GMT
Last edited by Tobias Powalowski (tpowa) - Friday, 09 March 2012, 08:15 GMT
|
Details
Description:
If I plug in the XBOX USB IR-Reciever I'm dropped to a tty with some error messages. I can switch back into X if I first switch to any tty from 1 to 6 and then to tty7. The messages are in the dmesg output then usb 3-1: new full speed USB device using uhci_hcd and address 2 BUG: unable to handle kernel NULL pointer dereference at (null) IP: [<f93c73a9>] free_irctl+0x29/0x1f0 [lirc_atiusb] *pde = 00000000 Oops: 0000 [#1] PREEMPT last sysfs file: /sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1/bcdDevice Modules linked in: fuse ext2 ext4 jbd2 crc16 lirc_atiusb lirc_dev usblp cpufreq_powersave cpufreq_ondemand tifm_sd mmc_block snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_intel8x0 snd_intel8x0m snd_ac97_codec ipw2200 ac97_bus fan snd_pcm video output snd_timer sbshc tifm_7xx1 processor libipw snd soundcore yenta_socket tifm_core snd_page_alloc thermal button pcmcia_rsrc cfg80211 usbhid hid b44 iTCO_wdt iTCO_vendor_support ssb psmouse i2c_i801 serio_raw evdev mmc_core pcmcia pcmcia_core rtc_cmos rtc_core rtc_lib ext3 jbd mbcache xts gf128mul usb_storage dm_crypt dm_mod uhci_hcd ehci_hcd usbcore radeon ttm drm_kms_helper drm i2c_algo_bit i2c_core sr_mod intel_agp cdrom sd_mod agpgart ata_piix libata scsi_mod Pid: 664, comm: khubd Not tainted 2.6.36.1-UV #1 Extensa 3000 /Extensa 3000 EIP: 0060:[<f93c73a9>] EFLAGS: 00010203 CPU: 0 EIP is at free_irctl+0x29/0x1f0 [lirc_atiusb] EAX: 00000000 EBX: 00000000 ECX: 00000004 EDX: 00000004 ESI: f370fa90 EDI: f370fa80 EBP: 00000004 ESP: f604dcb8 DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 Process khubd (pid: 664, ti=f604c000 task=f65847c0 task.ti=f604c000) Stack: f604dd18 00000202 c135e740 00000246 fffffff4 f65f6248 f65f60c0 00000002 <0> f93c84b5 000000d0 e446d5a0 0004dd18 f65847c0 e446d1e0 00000004 f370fa80 <0> 00000002 f3643400 f639c400 f639c400 00000001 f639c400 c11c8d00 f3643400 Call Trace: [<f93c84b5>] ? usb_remote_probe+0x7c5/0x960 [lirc_atiusb] [<c11c8d00>] ? __pm_runtime_resume+0x440/0x4b0 [<f81b8bac>] ? usb_probe_interface+0xdc/0x1c0 [usbcore] [<c11c3145>] ? driver_probe_device+0x85/0x190 [<f81b85b4>] ? usb_device_match+0x64/0x80 [usbcore] [<c11c32d0>] ? __device_attach+0x0/0x50 [<c11c32d0>] ? __device_attach+0x0/0x50 [<c11c2132>] ? bus_for_each_drv+0x52/0x80 [<c11c3029>] ? device_attach+0x79/0x90 [<c11c32d0>] ? __device_attach+0x0/0x50 [<c11c293d>] ? bus_probe_device+0x1d/0x40 [<c11c0c9c>] ? device_add+0x47c/0x530 [<c1147935>] ? kvasprintf+0x45/0x60 [<f81b721d>] ? usb_set_configuration+0x50d/0x610 [usbcore] [<f81bf4c5>] ? generic_probe+0x35/0x90 [usbcore] [<c110adff>] ? sysfs_create_link+0xf/0x20 [<f81b8cae>] ? usb_probe_device+0x1e/0x50 [usbcore] [<c11c3145>] ? driver_probe_device+0x85/0x190 [<c11c32d0>] ? __device_attach+0x0/0x50 [<c11c32d0>] ? __device_attach+0x0/0x50 [<c11c2132>] ? bus_for_each_drv+0x52/0x80 [<c11c3029>] ? device_attach+0x79/0x90 [<c11c32d0>] ? __device_attach+0x0/0x50 [<c11c293d>] ? bus_probe_device+0x1d/0x40 [<c11c0c9c>] ? device_add+0x47c/0x530 [<f81ae42c>] ? usb_enumerate_device+0x5c/0xf0 [usbcore] [<f81b04ec>] ? usb_new_device+0x6c/0xe0 [usbcore] [<c11c8dc8>] ? pm_runtime_forbid+0x58/0x60 [<f81b164f>] ? hub_thread+0xa5f/0xf00 [usbcore] [<c10452b0>] ? autoremove_wake_function+0x0/0x40 [<f81b0bf0>] ? hub_thread+0x0/0xf00 [usbcore] [<c1044fb4>] ? kthread+0x74/0x80 [<c1044f40>] ? kthread+0x0/0x80 [<c1003c7e>] ? kernel_thread_helper+0x6/0x18 Code: 76 00 55 89 d5 57 89 c7 56 53 83 ec 10 8b 1d 3c 9e 3c f9 85 db 0f 85 a3 01 00 00 85 ff 0f 84 67 01 00 00 8b 47 10 8d 77 10 39 f0 <8b> 18 75 07 eb 15 90 89 d8 89 d3 ba ff 00 00 00 e8 42 fc ff ff EIP: [<f93c73a9>] free_irctl+0x29/0x1f0 [lirc_atiusb] SS:ESP 0068:f604dcb8 CR2: 0000000000000000 ---[ end trace 7f84165246cdee36 ]--- with previous version of lirc it worked always. A while ago I tried the lirc-git version with the same error. I send a mail to Jarod Wilson and got this answer. "Hm. That's most likely a bug in lirc_atiusb. Its not gotten much attention of late, due to being largely redundant, and not being merged in the upstream kernel staging tree. I've got an ATI Remote Wonder II around here somewhere, I'll try to give it a look sometime soon." Additional info: lirc-0.9.0.pre1-3 lirc-utils-0.9.0.pre1-1 Steps to reproduce: 1. modprobe lirc_atiusb 2. plug in the XBOX IR-Reciever Using the ati_remote module instead of lirc_atiusb does not work, because the XBOX Reciever is not regognized by ati_remote / ati_remote2 |
This task depends upon
It uses lirc_atiusb kernel module.
2.6.35 + lirc 0.8.6 still works for now.
I compiled a vanilla 2.6.35.9 kernel and with this kernel the lirc_atiusb module from lirc-0.9.0-pre1 works with the xbox usb remote control.
I'm using a firefly remote.
You can read a lot about this module at the lirc mailing list.
But i found a solution for my remote control: i switched to the userland driver called "atilibusb".
Works well and offers the same features as lirc_atiusb.
Just put the driver in your /etc/conf.d/lircd.conf:
#
# Parameters for lirc daemon
#
LIRC_DEVICE=""
LIRC_DRIVER=atilibusb""
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE=""
Maybe you have to blacklist lirc_atiusb and ati_remote.
Perry, where are the sources for atiliusb?
I have compiled the new lirc_xbox driver (and lirc_dev) using the git source and it works a treat with XBMC. :-)
This is what I did...
1. First off, I have the arch linux lirc-utils package installed but not the arch linux lirc package.
2. enter 'git clone git://lirc.git.sourceforge.net/gitroot/lirc/lirc';
3. Grab the lirc_xbox patch from the article on the lirc forum.
4. copy the patch to the lirc folder created by git and run 'patch -p1 < lirc_0.9.1_lirc_xbox_driver.patch'
5. cd lirc/drivers/lirc_xbox
6. edit the lirc_xbox.c file and remove the line '#include <linux/smp_lock.h>' otherwise you will get an error when compiling if you are running the latest 2.6.39-ARCH kernel. (apparently to do with BKL being removed)
7. Now follow the instructions in the lirc forum link above './autogen.sh' etc etc
Note that you will need to make sure you add 'blacklist xpad' to /etc/modprobe.d/blacklist.conf and then update your /etc/lirc/hardware.conf "REMOTE_MODULES=" line to read REMOTE_MODULES="lirc_xbox lirc_dev" for lircd to work. Although I guess REMOTE_MODULES="lirc_xbox" would work too.
Is there anyway we can get this new lirc_xbox driver added to the official arch linux "lirc" package?
Hope these notes help someone out as I am not the most experienced at this sort of thing, just thought I would share my findings.
Thanks, here it works too. :)
With vanilla linux-2.6.39-3 and lirc-utils-0.9.0-4 package from [extra]
( just copied the module to /lib/modules/<kernel-ver> )