[linux-dvb] Random kernel oopses using TwinhanDTV Alpha and dvb-usb-vp7045

Marko Ristola marko.ristola at kolumbus.fi
Tue Mar 6 15:27:52 CET 2007


I'm sorry that I haven't answered you ealier.
I'm rather busy these days.

Okay, the problem is with rmmod / insmod.

Actually I have rmmod problems too with my PCI DVB-C-card.
I can do anything with my card, but not use rmmod command.
So my current fix is, that I never use rmmod. I just reboot instead.
I can live with it, because I can't unplug the device when the power is on.
I remember lockups and OOPSes also.

Currently active email list thread "[PATCH] dvb-core: Fix several    
locking    related    problems."
might be about the lockup problem that you have faced. They are making 
fixes also.
Maybe you could help them for example by testing their fixes.
This paticular problem seems to have attention now.

These USB-related threads might also be interesting for you:

"[linux-dvb] Re: Nova-T 500 (dvb_usb_dib0700) usb disconnects"
"[linux-dvb] Nova-T 500 user experience"

Regards,
Marko Ristola

Tomas wrote:
> On Sat, 3 Mar 2007 at 9:52am, Marko Ristola wrote:
>
>   
>> Hello,
>>     
>
> Hi,
>
>   
>> The randomness of problems suggest that the problem is bad
>> memory hardware.
>>     
>
> Good idea. I hadn't thought about that, but there's a reason why
> (and I still don't believe that the cause): the only time I
> experience any problems is when loading and unloading the DVB
> modules. Not when I load/unload other modules (usb-related or
> otherwise; some examples are usb-storage, cdrom, ide-cd,
> forcedeth, nvidia etc.), compile new kernels, edit stuff recorded
> with my DVB cards, surf, mail... I simply haven't noticed any
> other problems that could be due to bad RAM.
>
>   
>> I'd suggest to use some memory testing tool to check that your
>> memory works.
>>
>> You might find a memory testing tool on Linux distribution's
>> recovery CD or install CD.
>> I think that Knoppix CD has that also.
>>
>> The tool is named memtest.
>>     
>
> I have run the latest Debian unstable versions of memtest86+ (for
> 1.5 hours), memtest86 (for 2 hours), and memmxtest (for 1 hours)
> and none of them have found any errors. True, they can miss
> things (as they mention in the docs), but, like I wrote earlier,
> my system is solid except when loading/unloading DVB modules.
>
> So my money is still on some subtle error in the modules.
> Unfortunately. Does anyone have any ideas on how what my next
> step should be? (Except giving up or switching to another
> receiver, of course. :)
>
> /Tomas
>
>   
>> Regards,
>> Marko Ristola
>>
>> Tomas kirjoitti:
>>     
>>> Hello,
>>>
>>> First of all, I apologize in advance for a long post, but I
>>> figure it's better to provide some error messages instead of just
>>> writing a stupid "help, TwinhanDTV doesn't work, why?" post. I
>>> find it hard to believe I'm the only one experiencing these
>>> problems, but digging around with google and on linuxtv.org
>>> haven't been of any help.
>>>
>>> Here goes:
>>>
>>> I'm experiencing random kernel errors with my TwinhanDTV Alpha
>>> USB 2.0 DVB-T receiver using the dvb-usb-vp7045 kernel module:
>>>
>>> 1. Sometimes the kernel completely freezes up. Powercycle needed.
>>>
>>> 2. Sometimes the kernel completely freezes up with the CapsLock
>>>    and ScrLk LEDs on my keyboard blinking. Powercycle needed.
>>>
>>> 3. Sometimes the keyboard/mouse stops working in X but pressing
>>>    the power button makes acpid initiate a shutdown (so at least
>>>    the kernel isn't completely hosed). The shutdown hangs at
>>>    "Unmounting local filesystems" at which point the keyboard is
>>>    working again (I guess it was only dead in X) so I can do a
>>>    Alt-SysRq-S followed by Alt-SysRq-B.
>>>
>>> 4. And very rarely not even the keyboard/mouse stops working in
>>>    X, but I get all the syslog error messages printed to every
>>>    xterm.
>>>
>>> Any one of these errors (though very rarely number 4) happens
>>> about 30%-50% of the time when I'm using the DVB receiver.
>>>
>>> My experience as a programmer tells me that when such random
>>> errors occur they're usually due to something simple such as an
>>> uninitialized variable being used (but there are no such warnings
>>> when compiling the modules) or a pointer that has an incorrect
>>> value.
>>>
>>> The freezes all seem to occur either when the dvb-usb-vp7045
>>> module gets loaded by modprobe or when it's unloaded. At least
>>> that's what I'm guessing after reading through the error messages
>>> in /var/log/kern.log .
>>>
>>> The crashes occur with both kernel 2.6.18.2 and 2.6.20.1 . (AMD
>>> Athlon XP 2500+ with 512MB RAM on an ASUS A7N8X Deluxe
>>> motherboard.)
>>>
>>> Today's crash (of type 2) occurred when I was trying to start a
>>> recording scheduled by crontab at 12:58. I discovered the crash
>>> at 16:18. It left these traces in /var/log/kern.log :
>>>
>>> Mar  2 07:03:20 miguel kernel: usb 1-1: USB disconnect, address 4
>>> Mar  2 12:58:01 miguel logger: Initializing recording
>>> Mar  2 12:58:01 miguel logger: rmmod dvb-usb-vp7045
>>> Mar  2 12:58:15 miguel kernel: usbcore: deregistering interface driver dvb_usb_vp7045
>>> Mar  2 12:58:15 miguel kernel: dvb-usb: Twinhan USB2.0 DVB-T receiver (TwinhanDTV Alpha/MagicBox II) successfully deinitialized and disconnected.
>>> Mar  2 12:58:15 miguel logger: rmmod dvb-usb
>>> Mar  2 12:58:15 miguel logger: rmmod dvb-usb-vp7045
>>> Mar  2 12:58:15 miguel logger: rmmod dvb-usb
>>> Mar  2 12:58:15 miguel logger: modprobe dvb-usb
>>> Mar  2 12:58:15 miguel logger: modprobe dvb-usb-vp7045
>>> Mar  2 16:18:58 miguel kernel: klogd 1.4.1#20, log source = /proc/kmsg started.
>>>
>>> (The 14 second delay is due to sync being run to ensure that
>>> syslog messages are written to disk. It takes that long since I
>>> have four drives in my machine.)
>>> These are the commands that ran to produce the above output:
>>>
>>> #!/bin/sh -x
>>> /usr/bin/logger -p local7.info Initializing recording
>>> /bin/sync &
>>> /usr/bin/logger -p local7.info rmmod dvb-usb-vp7045
>>> /bin/sync
>>> /sbin/rmmod dvb-usb-vp7045
>>> /usr/bin/logger -p local7.info rmmod dvb-usb
>>> /bin/sync
>>> /sbin/rmmod dvb-usb
>>> /usr/bin/logger -p local7.info rmmod dvb-usb-vp7045
>>> /bin/sync
>>> /sbin/rmmod dvb-usb-vp7045
>>> /usr/bin/logger -p local7.info rmmod dvb-usb
>>> /bin/sync
>>> /sbin/rmmod dvb-usb
>>> /usr/bin/logger -p local7.info modprobe dvb-usb
>>> /bin/sync
>>> /sbin/modprobe dvb-usb >/dev/null 2>&1
>>> /usr/bin/logger -p local7.info modprobe dvb-usb-vp7045
>>> /bin/sync
>>> /sbin/modprobe dvb-usb-vp7045 >/dev/null 2>&1
>>>
>>> Yesterday's and Wednesday's crashes (both of type 3) occurred
>>> when a crontab-scheduled recording was finished at 13:17. I
>>> discovered yesterday's crash at 17:45. It left these traces in
>>> /var/log/kern.log :
>>>
>>> Mar  1 07:19:14 miguel kernel: usb 1-1: USB disconnect, address 2
>>> Mar  1 12:58:07 miguel kernel: usbcore: deregistering interface driver dvb_usb_vp7045
>>> Mar  1 12:58:07 miguel kernel: dvb-usb: Twinhan USB2.0 DVB-T receiver (TwinhanDTV Alpha/MagicBox II) successfully deinitialized and disconnected.
>>> Mar  1 12:58:07 miguel kernel: dvb-usb: found a 'Twinhan USB2.0 DVB-T receiver (TwinhanDTV Alpha/MagicBox II)' in warm state.
>>> Mar  1 12:58:07 miguel kernel: dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
>>> Mar  1 12:58:07 miguel kernel: DVB: registering new adapter (Twinhan USB2.0 DVB-T receiver (TwinhanDTV Alpha/MagicBox II)).
>>> Mar  1 12:58:07 miguel kernel: dvb-usb: MAC address: 08:ca:1a:f6:64:ff
>>> Mar  1 12:58:07 miguel kernel: DVB: registering frontend 0 (Twinhan VP7045/46 USB DVB-T)...
>>> Mar  1 12:58:07 miguel kernel: input: IR-receiver inside an USB DVB receiver as /class/input/input4
>>> Mar  1 12:58:07 miguel kernel: dvb-usb: schedule remote query interval to 400 msecs.
>>> Mar  1 12:58:07 miguel kernel: dvb-usb: Twinhan USB2.0 DVB-T receiver (TwinhanDTV Alpha/MagicBox II) successfully initialized and connected.
>>> Mar  1 12:58:07 miguel kernel: usbcore: registered new interface driver dvb_usb_vp7045
>>> Mar  1 13:17:14 miguel kernel: usbcore: deregistering interface driver dvb_usb_vp7045
>>> Mar  1 13:17:14 miguel kernel: dvb-usb: Twinhan USB2.0 DVB-T receiver (TwinhanDTV Alpha/MagicBox II) successfully deinitialized and disconnected.
>>> Mar  1 13:17:14 miguel kernel: BUG: unable to handle kernel paging request at virtual address e0876c90
>>> Mar  1 13:17:14 miguel kernel:  printing eip:
>>> Mar  1 13:17:14 miguel kernel: e0876c90
>>> Mar  1 13:17:14 miguel kernel: *pde = 01475067
>>> Mar  1 13:17:14 miguel kernel: *pte = 00000000
>>> Mar  1 13:17:14 miguel kernel: Oops: 0000 [#1]
>>> Mar  1 13:17:14 miguel kernel: PREEMPT
>>> Mar  1 13:17:14 miguel kernel: Modules linked in: nvidia(P) eeprom w83l785ts asb100 hwmon_vid hwmon dvb_core crc32 firmware_class dvb_pll aic7xxx ide_cd scsi_transport_spi cdrom forcedeth i2c_nforce2 i2c_core
>>> Mar  1 13:17:14 miguel kernel: CPU:    0
>>> Mar  1 13:17:14 miguel kernel: EIP:    0060:[<e0876c90>]    Tainted: P      VLI
>>> Mar  1 13:17:14 miguel kernel: EFLAGS: 00010247   (2.6.20.1 #2)
>>> Mar  1 13:17:14 miguel kernel: EIP is at 0xe0876c90
>>> Mar  1 13:17:14 miguel kernel: eax: decadfa8   ebx: decadfa8   ecx: dff86000   edx: 00000000
>>> Mar  1 13:17:14 miguel kernel: esi: 00000296   edi: dffe4b20   ebp: e0876c90   esp: dff87f58
>>> Mar  1 13:17:14 miguel kernel: ds: 007b   es: 007b   ss: 0068
>>> Mar  1 13:17:14 miguel kernel: Process events/0 (pid: 4, ti=dff86000 task=dffc6a90 task.ti=dff86000)
>>> Mar  1 13:17:14 miguel kernel: Stack: c012eaa7 0000743b dffc6b9c 000076f0 00000000 dffe4b28 dffe4b38 dffe4b20
>>> Mar  1 13:17:14 miguel kernel:        dffe4b28 dffe4b30 dff87f9c c012f197 00000001 00000000 00000001 00010000
>>> Mar  1 13:17:14 miguel kernel:        00000000 00000000 dffc6a90 c011a960 00100100 00200200 ffffffff ffffffff
>>> Mar  1 13:17:14 miguel kernel: Call Trace:
>>> Mar  1 13:17:14 miguel kernel:  [<c012eaa7>] run_workqueue+0xa7/0x190
>>> Mar  1 13:17:14 miguel kernel:  [<c012f197>] worker_thread+0x147/0x170
>>> Mar  1 13:17:14 miguel kernel:  [<c011a960>] default_wake_function+0x0/0x10
>>> Mar  1 13:17:14 miguel kernel:  [<c012f050>] worker_thread+0x0/0x170
>>> Mar  1 13:17:14 miguel kernel:  [<c0132098>] kthread+0xa8/0xe0
>>> Mar  1 13:17:14 miguel kernel:  [<c0131ff0>] kthread+0x0/0xe0
>>> Mar  1 13:17:14 miguel kernel:  [<c0103bcb>] kernel_thread_helper+0x7/0x1c
>>> Mar  1 13:17:14 miguel kernel:  =======================
>>> Mar  1 13:17:14 miguel kernel: Code:  Bad EIP value.
>>> Mar  1 13:17:14 miguel kernel: EIP: [<e0876c90>] 0xe0876c90 SS:ESP 0068:dff87f58
>>> Mar  1 17:46:02 miguel kernel:  <6>usb 1-1: new high speed USB device using ehci_hcd and address 5
>>> Mar  1 17:46:02 miguel kernel: usb 1-1: configuration #1 chosen from 1 choice
>>> Mar  1 17:46:02 miguel kernel: hub 1-1:1.0: USB hub found
>>> Mar  1 17:46:02 miguel kernel: hub 1-1:1.0: 4 ports detected
>>> Mar  1 17:48:45 miguel kernel: SysRq : Emergency Sync
>>> Mar  1 17:48:45 miguel kernel: Emergency Sync complete
>>> Mar  1 17:48:52 miguel kernel: SysRq : Emergency Sync
>>> Mar  1 17:48:52 miguel kernel: Emergency Sync complete
>>> Mar  1 17:49:25 miguel kernel: Kernel logging (proc) stopped.
>>> Mar  1 17:49:25 miguel kernel: Kernel log daemon terminating.
>>> Mar  1 17:50:32 miguel kernel: klogd 1.4.1#20, log source = /proc/kmsg started.
>>>
>>> The Wednesday crash was practically identical, except for the
>>> register values and stack values.
>>>
>>> Unfortunately I had no logger writing debug messages in my script
>>> until today, but the commands that ran yesterday were (a bit
>>> simplified):
>>>
>>> #!/bin/sh -x
>>> /sbin/rmmod dvb-usb dvb-usb-vp7045
>>> /sbin/rmmod dvb-usb dvb-usb-vp7045
>>> /sbin/modprobe dvb-usb >/dev/null 2>&1
>>> /sbin/modprobe dvb-usb-vp7045 >/dev/null 2>&1
>>> /usr/local/bin/dvbstream ........ &
>>> sleep 1140
>>> kill dvbstream
>>> /sbin/rmmod dvb-usb dvb-usb-vp7045
>>> /sbin/rmmod dvb-usb dvb-usb-vp7045
>>>
>>> So, does anyone have any ideas? I'm willing to do some coding
>>> (I'm a programmer, but not a Linux kernel programmer) and testing
>>> to find out what's wrong, if someone can point me in the right
>>> direction.
>>>
>>> Should I insert lots of printk()'s into the module source code
>>> (and also sync() calls (which ones? sync(2)? fsync(2)?) to find
>>> the problem?
>>>
>>> Can it be the firmware? (I'm using the standard
>>> dvb-usb-vp7045-01.fw file.)
>>>
>>> I'm a complete novice at kernel debugging and error hunting, but
>>> could the call trace perhaps indicate that the module hasn't
>>> been unlinked from some scheduling list?
>>>
>>> Looking through the archives I've not found many posts mentioning
>>> problems with the TwinhanDTV, but this one mention similar
>>> problems:
>>> http://www.linuxtv.org/pipermail/linux-dvb/2006-January/007385.html
>>> Unfortunately there was no reply to his post.
>>>
>>>
>>> I am well aware that my recording scripts aren't perfect, but
>>> they are not the problem here and shouldn't be blamed. The rmmods
>>> immediately before the modprobes may be unnecessary but I like to
>>> do some cleaning up. (Cleaning up modules is necessary on my
>>> other machine which has my Twinhan PCI card and a Hauppauge
>>> PVR-150 card, as those two cards seem to share some modules, so
>>> I've adopted that strategy on my TwinhanDTV Alpha-equipped
>>> machine as well.) I like using crontab and dvbstream instead of a
>>> MythTV or some other available solution. I'll write better
>>> scripts when the kernel quits crashing.
>>>
>>>
>>> When everything works the quality of recordings made with the
>>> TwinhanDTV Alpha using the crappy bundled indoor antenna is way
>>> better than recordings of the same TV program made with my
>>> Twinhan PCI DVB-T card using a big grid antenna. We're talking
>>> 0-20 errors compared to 100-1000 errors (as reported by
>>> ProjectX). So I'd really like to get the TwinhanDTV Alpha working
>>> reliably.
>>>
>>> Again, sorry for the long post. I can supply more info (full
>>> kernel config etc.) on request, but I figure if this mail gets
>>> any larger noone will even bother opening it in the first place.
>>> :)
>>>
>>> /Tomas
>>>
>>> _______________________________________________
>>> linux-dvb mailing list
>>> linux-dvb at linuxtv.org
>>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>>>
>>>
>>>       
>
>   




More information about the linux-dvb mailing list