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

Marko Ristola marko.ristola at kolumbus.fi
Sat Mar 3 08:52:07 CET 2007


Hello,

The randomness of problems suggest that the problem
is bad memory hardware.
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.

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