Kernel 3.0 breaks DVB-T (ISDB-Tb) in DiBcom 8000

Bug #838130 reported by YAFU on 2011-08-31
90
This bug affects 14 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Unassigned

Bug Description

Since Kernel 3.0 I can not watch TV with my MyGica S870 USB Tuner. I use VLC. Usually I can not see any channel. Rarely I can see a channel but then stops working. This problem does not happen with 2.6.38 Kernel. All this I said I tested with Kubuntu 64bits: 10.04 Lucid, 11.04 Natty and 11.10 Oneiric.

*Additional information:
$ lsmod | grep -i dvb
dvb_usb_dib0700 114669 0
dib7000p 39109 1 dvb_usb_dib0700
dib0090 33392 2 dvb_usb_dib0700
dib7000m 23415 1 dvb_usb_dib0700
dib0070 18434 1 dvb_usb_dib0700
dvb_usb 24444 1 dvb_usb_dib0700
dib8000 43019 2 dvb_usb_dib0700
dvb_core 110616 3 dib7000p,dvb_usb,dib8000
dib3000mc 23392 1 dvb_usb_dib0700
dibx000_common 14574 5 dvb_usb_dib0700,dib7000p,dib7000m,dib8000,dib3000mc
rc_core 26963 11 rc_dib0700_rc5,dvb_usb_dib0700,dvb_usb,ir_lirc_codec,ir_sony_decoder,ir_jvc_decoder,ir_rc6_decoder,ir_rc5_decoder,bttv,ir_nec_decoder

$uname -r
3.0.0-7-generic

The driver is in the package "linux-image-3.0.0-7-generic" and installed in "/lib/modules/3.0.0-7-generic/kernel/drivers/media/dvb/dvb-usb/dvb-usb-dib0700.ko"

Possible firmware used:
dvb-usb-dib0700-1.10.fw
dvb-usb-dib0700-1.20.fw

*Similar problems related:

http://forums.opensuse.org/english/get-technical-help-here/tumbleweed/464128-kernel-3-0-breaks-dvb-t.html

https://bugzilla.kernel.org/show_bug.cgi?id=41232

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 838130

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
YAFU (yafu) wrote :

Well, I do not understand very well the previous automated message.
I do not think apport may add useful information to this bug, and so you can see on the bugzilla.kernel.org link, is a confirmed bug.

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Jesse Sung (wenchien) wrote :

This should be the same issue stated at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639161

Patches are available ( http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639161#17 ), but they are not yet pulled into mainline kernel.

Timo Aaltonen (tjaalton) wrote :

I just bought a Hauppauge Nova-TD, which doesn't seem to work and uses the same module, so I'll test the patches.

Changed in linux (Ubuntu):
assignee: nobody → Timo Aaltonen (tjaalton)
Timo Aaltonen (tjaalton) wrote :

Hmm, mine seems to work fine after all.

Changed in linux (Ubuntu):
assignee: Timo Aaltonen (tjaalton) → nobody
Vladimir (thunder27) wrote :

I have installed Ubuntu 11.10 64bit and I have problem with this bug. Last kernel 3.0.0.12 and I have Winfast DTV Dongle (dib0700). In dmesg I have this:

dib0700: tx buffer length is larger than 4. Not supported

YAFU (yafu) wrote :

Could someone patch the kernel and build the packages for us to see if it works?
Otherwise, Ubuntu Oneiric will be released with a kernel where this popular chip does not work.
Thanks.

Joseph Salisbury (jsalisbury) wrote :

Would it be possible for you to test the latest upstream kernel? It will allow additional upstream developers to examine the issue. Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the release candidate kernel versus the daily build. Once you've tested the upstream kernel, please remove the 'needs-upstream-testing' tag. This can be done by clicking on the yellow pencil icon next to the tag located at the bottom of the bug description and deleting the 'needs-upstream-testing' text. Please let us know your results.

Thanks in advance.

tags: added: needs-upstream-testing oneiric

Thank you for taking the time to file a bug report on this issue.

However, given the number of bugs that the Kernel Team receives during any development cycle it is impossible for us to review them all. Therefore, we occasionally resort to using automated bots to request further testing. This is such a request.

We have noted that there is a newer version of the development kernel than the one you last tested when this issue was found. Please test again with the newer kernel and indicate in the bug if this issue still exists or not.

If the bug still exists, change the bug status from Incomplete to Confirmed. If the bug no longer exists, change the bug status from Incomplete to Fix Released.

Thank you for your help, we really do appreciate it.

Changed in linux (Ubuntu):
status: Confirmed → Incomplete
tags: added: kernel-request-3.0.0-12.20
YAFU (yafu) wrote :

Tested with the latest Oneiric kernel (3.0.0-12.20) and the mainline kernel (3.1.0-0301rc9.201110050905). The problem is still present in both versions.
"dmesg" shows:
dib0700: tx buffer length is larger than 4. Not supported.

The link below mentions that the patch fixes the problem:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639161

In the link I had written earlier and is now impossible to enter (https://bugzilla.kernel.org/show_bug.cgi?id=41232) , some users commented that the solution to the official kernel was newly scheduled for Kernel 3.2.
Thanks.

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
tags: removed: needs-upstream-testing
tags: removed: kernel-request-3.0.0-12.20
Brad Figg (brad-figg) wrote :

Thank you for taking the time to file a bug report on this issue.

However, given the number of bugs that the Kernel Team receives during any development cycle it is impossible for us to review them all. Therefore, we occasionally resort to using automated bots to request further testing. This is such a request.

We have noted that there is a newer version of the development kernel than the one you last tested when this issue was found. Please test again with the newer kernel and indicate in the bug if this issue still exists or not.

If the bug still exists, change the bug status from Incomplete to Confirmed. If the bug no longer exists, change the bug status from Incomplete to Fix Released.

Thank you for your help, we really do appreciate it.

Changed in linux (Ubuntu):
status: Confirmed → Incomplete
tags: added: kernel-request-3.0.0-12.20
Jesse Sung (wenchien) wrote :

Tested with 3.0.0-12.20, this issue still exists. And after applying the patches on top of 3.0.0-12.20, this issue is gone.

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Joseph Salisbury (jsalisbury) wrote :

@Jesse

Can you attach the patches to this bug report?

Changed in linux (Ubuntu):
status: Confirmed → Triaged
Erwin Zilg (ezilg) wrote :

Hello, might my problem with the installation of a Cinergy T Stick Black also be a kernel related issue ?
I am using 11.10 (32 bit) and get errors which don't seem to occur with 64 bit versions.
Based on the installation description under : http://xgazza.altervista.org/Linux/DVB/rtl2832u.html
I get the messages :
.
make -C /usr/src/linux-headers-`uname -r` SUBDIRS=/home/ubuntu/rtl2832u-new-3.0 modules
make[1]: Betrete Verzeichnis '/usr/src/linux-headers-3.0.0-12-generic'
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "__udivdi3" [/home/ubuntu/rtl2832u-new-3.0/dvb-usb-rtl2832u.ko] undefined!
WARNING: "__umoddi3" [/home/ubuntu/rtl2832u-new-3.0/dvb-usb-rtl2832u.ko] undefined!
WARNING: "__divdi3" [/home/ubuntu/rtl2832u-new-3.0/dvb-usb-rtl2832u.ko] undefined!
make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-3.0.0-12-generic'
ubuntu@ubuntu-Aspire-5000:~/rtl2832u-new-3.0$ sudo make install
cp dvb-usb-rtl2832u.ko /lib/modules/`uname -r`/kernel/drivers/media/dvb/dvb-usb/
depmod -a
.

which later results via : dmesg | tail -n 30
.
.
[ 47.069721] EXT4-fs (sda3): re-mounted. Opts: errors=remount-ro,commit=0
[22954.109240] usb 1-4: USB disconnect, device number 3
[23156.272071] usb 1-4: new high speed USB device number 5 using ehci_hcd
[23157.163377] dvb_usb_rtl2832u: Unknown symbol __divdi3 (err 0)
[23157.163443] dvb_usb_rtl2832u: Unknown symbol __umoddi3 (err 0)
[23157.163474] dvb_usb_rtl2832u: Unknown symbol __udivdi3 (err 0)
[23157.171572] dvb_usb_rtl2832u: Unknown symbol __divdi3 (err 0)
[23157.171638] dvb_usb_rtl2832u: Unknown symbol __umoddi3 (err 0)
[23157.171669] dvb_usb_rtl2832u: Unknown symbol __udivdi3 (err 0)

Other forums suggest, that this may well be a kernel issue.
Please advise on how to proceed now.

tags: added: patch
Changed in linux (Ubuntu):
importance: Undecided → Medium
Erwin Zilg (ezilg) wrote :

Well, update to kernel 3.0.4 didn't help either. I still get the same messages.
Any ideas anybody ?

YAFU (yafu) wrote :

Ok, I expected a quick solution to this problem.
Meanwhile, people with this problem can install new versions of the drivers with these instructions:
http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers

That is, install "git" and the basic build dependencies, then:

git clone git://linuxtv.org/media_build.git
cd media_build
./build
sudo make install

Erwin Zilg (ezilg) wrote :

Nope, didn't work for me :

after : sudo make install ( T Sick not connected yet )
dmesg
.
[ 269.732128] usb 1-3.4: new high speed USB device number 6 using ehci_hcd
[ 269.923917] dvb_usb_rtl2832u: disagrees about version of symbol dvb_usb_device_init
[ 269.923931] dvb_usb_rtl2832u: Unknown symbol dvb_usb_device_init (err -22)
[ 269.923946] dvb_usb_rtl2832u: disagrees about version of symbol dvb_usb_device_exit
[ 269.923954] dvb_usb_rtl2832u: Unknown symbol dvb_usb_device_exit (err -22)
[ 269.949394] dvb_usb_rtl2832u: disagrees about version of symbol dvb_usb_device_init
[ 269.949409] dvb_usb_rtl2832u: Unknown symbol dvb_usb_device_init (err -22)
[ 269.949424] dvb_usb_rtl2832u: disagrees about version of symbol dvb_usb_device_exit
[ 269.949432] dvb_usb_rtl2832u: Unknown symbol dvb_usb_device_exit (err -22)
[ 905.727724] usb 1-3.4: USB disconnect, device number 6

.
.

YAFU (yafu) wrote :

@ezilg, It seems that your device has a different chip that is mentioned in this bug. Are you sure your problem is related to this report?
Install the drivers from git solves the problem for "dvb_usb_dib0700" with the error message:
dib0700: tx buffer length is larger than 4. Not supported.

For your chip I have only found this:
http://wiki.ubuntu.cz/rtl2832u

Erwin Zilg (ezilg) wrote :

Well, first of all, I translated it into German and if requested,I can supply a English version as well.
The sad part about this is : I got error messages again

make[3]: *** [/home/ubuntu/tuner/media_build/v4l/rtl2832u.o] Fehler 1
make[2]: *** [_module_/home/ubuntu/tuner/media_build/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-3.0.4-030004-generic'
make[1]: *** [default] Fehler 2
make[1]: Verlasse Verzeichnis '/home/ubuntu/tuner/media_build/v4l'
make: *** [all] Fehler 2

ubuntu@ubuntu-Aspire-5000:~$ sudo depmod -a

ubuntu@ubuntu-Aspire-5000:~$ locate dvb-usb-rtl2832u.ko
/home/ubuntu/rtl2832u-new-3.0/.dvb-usb-rtl2832u.ko.cmd
/home/ubuntu/rtl2832u-new-3.0/dvb-usb-rtl2832u.ko
/lib/modules/3.0.0-12-generic/kernel/drivers/media/dvb/dvb-usb/dvb-usb-rtl2832u.ko
/lib/modules/3.0.4-030004-generic/kernel/drivers/media/dvb/dvb-usb/dvb-usb-rtl2832u.ko

YAFU (yafu) wrote :

The problem in "dvb_usb_dib0700" has been fixed in 3.2 Kernel.

$ uname -r
3.2.0-030200rc1-generic

http://kernel.ubuntu.com/~kernel-ppa/mainline/

Stefan B. (pm-stefan) wrote :

@ezilg:
I've had the same problems ("Unknown symbol __divdi3" etc.) with my DVB-Dongle "Trekstor Terres". This dongle uses the RTL2832U along with the Tuner FC0012. I use Ubuntu 10.10 with Kernel "3.0.0-12-generic". I am using the RTL2832-driver from "https://bitbucket.org/themagicpudding/rtl2832_2836_2840", Revision "f9ab69bf2eee". At last I found the cause of the Problem:
Some of the Source-Files for the RTL2832U-Driver (e.g. "rtl2832u_fe.c" ) are using 64Bit-divisions with the normal operators "/" and "%" (remainder). These operators are converted by gcc to libgcc-functions (e.g. "__divdi3" for signed 64Bit-operators). But Kernel-Modules can not use / don't have access to the libgcc-functions (see "http://www.spinics.net/lists/newbies/msg43464.html")! After some time I found a way to solve the problem without changing all "/" and "%" operators in the source-files: It is possible to write wrapper functions which are called instead of the (undefined) original ones, see "http://objectmix.com/compilers/782173-how-link-file-wrapper-function.html". The necessary changes in detail:

- Copy the attached files "div64_wrap.h" and "div64_wrap.c" into the folder "...linux/drivers/media/dvb/dvb-usb" (were the other RTL2832U driver source-files are).
- Add "div64_wrap.o" to "Makefile" in the same directory ("dvb-usb-rtl2832u-objs = ... div64_wrap.o")
- Add "EXTRA_LDFLAGS += --wrap __udivdi3 --wrap __divdi3 --wrap __moddi3 --wrap __umoddi3" to "Makefile" in the "v4l"-directory:
...
# CFLAGS configuration

ifeq ($(CONFIG_DVB_FIRESAT),m)
  EXTRA_CFLAGS += -I$(srctree)/drivers/ieee1394/
endif

EXTRA_CFLAGS += -g
EXTRA_LDFLAGS += --wrap __udivdi3 --wrap __divdi3 --wrap __moddi3 --wrap __umoddi3
...

After this my USB-dongle worked (I still have performance problems but that's another isue).

"div64_wrap.h":
/******************************************************

File: div64_wrap.h

Description:
Wrapper-functions for some 64Bit-division functions of
libgcc (e.g. "__divdi3"). That means that the functions
declared here are used instead of the originally ones.
LD-options "--wrap=__divdi3 --wrap __udivdi3 --wrap __moddi3
--wrap __umoddi3" have to be used!

Reason:
Building modules for e.g. the Ubuntu-Kernel "3.0.0-12-generic"
using integer 64Bit divisions with the "/" or "%" operator
fails at linker-stage with e.g. 'WARNING: "__divdi3" [dvb-usb-
rtl2832u.ko] undefined!' Problem: gcc is using the "divdi"-functions
defined in libgcc. But Kernel-Modules can not use the libgcc-
functions!

Author: Stefan Bosch
Date: 2011-11-11

********************************************************/

#include <linux/math64.h>

unsigned long long __wrap___udivdi3(unsigned long long a, unsigned long long b);
long long __wrap___divdi3(long long a, long long b);
unsigned long long __wrap___umoddi3(unsigned long long a, unsigned long long b);
long long __wrap___moddi3(long long a, long long b);

// ******* EOF

"div64_wrap.c": see attachment

Stefan B. (pm-stefan) wrote :

Addition to my former Post #22:

The header file "div64_wrap.h" is not necessary, therefore delete the include in the "div64_wrap.c".

Erwin Zilg (ezilg) wrote :
Download full text (3.9 KiB)

Das Resultat mit 'make' ist leider immer noch das selbe, trotz der Änderungen.
Das ganze fängt mit folgenden Fehlern an :
.
.
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:41:6: error: 'struct dvb_usb_adapter' has no member named 'fe'
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c: At top level:
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:99:4: error: unknown field 'streaming_ctrl' specified in initializer
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:99:4: warning: initialization makes integer from pointer without a cast [enabled by default]
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:99:4: warning: (near initialization for 'rtl2832u_1st_properties.adapter[0].size_of_priv') [enabled by default]
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:100:4: error: unknown field 'frontend_attach' specified in initializer
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:100:4: warning: initialization from incompatible pointer type [enabled by default]
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:100:4: warning: (near initialization for 'rtl2832u_1st_properties.adapter[0].frontend_ctrl') [enabled by default]
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:102:4: error: unknown field 'stream' specified in initializer
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:103:4: warning: braces around scalar initializer [enabled by default]
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:103:4: warning: (near initialization for 'rtl2832u_1st_properties.adapter[0].fe_ioctl_override') [enabled by default]
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:104:5: error: field name not in record or union initializer
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:104:5: error: (near initialization for 'rtl2832u_1st_properties.adapter[0].fe_ioctl_override')
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:104:5: warning: initialization makes pointer from integer without a cast [enabled by default]
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:104:5: warning: (near initialization for 'rtl2832u_1st_properties.adapter[0].fe_ioctl_override') [enabled by default]
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:105:5: error: field name not in record or union initializer
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:105:5: error: (near initialization for 'rtl2832u_1st_properties.adapter[0].fe_ioctl_override')
.
. usw.
.
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:222:6: error: field name not in record or union initializer
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:222:6: error: (near initialization for 'rtl2832u_3th_properties.adapter[0].fe_ioctl_override')
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:223:6: warning: braces around scalar initializer [enabled by default]
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:223:6: warning: (near initialization for 'rtl2832u_3th_properties.adapter[0].fe_ioctl_override') [enabled by default]
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:224:7: error: field name not in record or union initializer
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:224:7: error: (near initialization for 'rtl2832u_3th_properties.adapter[0].fe_ioctl_override')
/home/ubuntu/tuner/media_build/v4l/rtl2832u.c:224:7: warning: initialization makes pointer from integer without a ...

Read more...

Erwin Zilg (ezilg) wrote :

Siehe meine beiden attachments.

Erwin Zilg (ezilg) wrote :

Sorry das vorherige Makefile ist das falsche

Stefan B. (pm-stefan) wrote :

@ezilg
Diese Compilerfehler hatte ich mit den "falschen" RTL2832U-Sourcefiles auch. Ich bin dann zu dem Schluss gekommen dass bei dem Kernel 3.0.x anscheinend die USB-Funktionalität (d.h. die entsprechenden Systemfunktionen) geändert wurden und diese Files nur für den Kernel 2.6.x geeignet sind. Ich habe dann die schon oben erwähnten Sourcefiles von https://bitbucket.org/themagicpudding/rtl2832_2836_2840 verwendet und daraufhin nur noch die divdi-Fehler erhalten.

Jesse Sung (wenchien) wrote :

Hi,

This is a patched amd64 kernel:
http://ubuntuone.com/4hPjSOijqF6ESILyFpoTQ2
http://ubuntuone.com/4MCgQYql88fslLGhwsK9bp
http://ubuntuone.com/58ul8Oe0AyFFqjPbBh1c6d

Please test it if you have time and let me know if it works or not.

Thanks

Julian Wiedmann (jwiedmann) wrote :

Yafu,
The latest kernel update (3.0.0-14.23) brings two patches:
[media] DiBcom: protect the I2C bufer access
[media] dib0700: protect the dib0700 buffer access

Could you see if that helps?

skep (skep) wrote :

@julianw

works for me now! (dib0700)

Thomas Pundt (thomas-f0mkzp) wrote :

Works for me now too.

negora (negora) wrote :

In my case the new kernel has helped me to tune 2 transponders, but I'm still unable to tune all the existing ones (they worked before, of course). I get timeouts when executing the tool "scan". For example this is the output for one transponder:

>>> tune to: >>> tune to: 482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE
>>> tuning status == 0x0e
>>> tuning status == 0x1e
WARNING: filter timeout pid 0x0011
WARNING: filter timeout pid 0x0000
WARNING: filter timeout pid 0x0010

YAFU (yafu) wrote :

Is fixed for me with the latest "3.0.0-14" Kernel.
I can scan and watch TV. I do not get the error with "dmesg" anymore.
Regards.

Marcelo Poli (enzomatrix) wrote :

Works for me.
Ubuntu 11.10 in both 32-bit and 64-bit systems.
Tested with Pixelview SBTVD dongle.

Maarten Bezemer (veger) wrote :

This bug report is being closed due to your last comment regarding this being fixed with an update. For future reference you can manage the status of your own bugs by clicking on the current status in the yellow line and then choosing a new status in the revealed drop down box. You can learn more about bug statuses at https://wiki.ubuntu.com/Bugs/Status. Thank you again for taking the time to report this bug and helping to make Ubuntu better. Please submit any future bugs you may find.

Changed in linux (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.