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@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb