Kernel oops when connecting LogiLink VG0025 DVB-T USB-Stick

Hi Sam,

I got the chance to try another USB DVB-T stick to get my Vero into full swing, this time a LogiLink “VG0025” (comes in various brands and product names). LinuxTV identifies it as a “Smart Plus” based on a Siano chipset. I downloaded the required firmware from OpenELEC and copied it to /lib/firmware as usual. This is the dmesg output I get when connecting the stick:

[   83.658019] usb 1-2: new high-speed USB device number 2 using xhci-hcd
[   83.798507] usb 1-2: New USB device found, idVendor=187f, idProduct=0202
[   83.798533] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   83.798548] usb 1-2: Product: MDTV Receiver
[   83.798561] usb 1-2: Manufacturer: MDTV Receiver
[   83.820569] smsusb:smsusb_probe: board id=11, interface number 0
[   83.822379] smsusb:siano_media_device_register: media controller created
[   83.822413] ------------[ cut here ]------------
[   83.822444] WARNING: CPU: 2 PID: 964 at arch/arm64/mm/dma-mapping.c:100 __dma_alloc_coherent+0x10c/0x11c()
[   83.822453] Use an actual device structure for DMA allocation
[   83.822462] Modules linked in: smsusb(O+) smsdvb(O) smsmdtv(O) dvb_core(O) bnep hci_uart 8021q btsdio bluetooth 6lowpan_iphc dhd cfg80211 dwc_otg wifi_dummy mali meson_ir fuse amlvideodri(O) videobuf_res(O) videobuf_core(O) videodev(O) media(O)
[   83.822553] CPU: 2 PID: 964 Comm: systemd-udevd Tainted: G           O 3.14.29-25-osmc #1
[   83.822563] Call trace:
[   83.822583] [<ffffffc001087d0c>] dump_backtrace+0x0/0x144
[   83.822599] [<ffffffc001087e6c>] show_stack+0x1c/0x28
[   83.822616] [<ffffffc001845dbc>] dump_stack+0x74/0x94
[   83.822634] [<ffffffc00109562c>] warn_slowpath_common+0xa4/0xcc
[   83.822650] [<ffffffc0010956c8>] warn_slowpath_fmt+0x74/0x88
[   83.822665] [<ffffffc001090a54>] __dma_alloc_coherent+0x108/0x11c
[   83.822679] [<ffffffc001090acc>] __dma_alloc_noncoherent+0x64/0x234
[   83.822701] [<ffffffbffc576d9c>] smscore_register_device+0x318/0x368 [smsmdtv]
[   83.822723] [<ffffffbffc58f9c4>] smsusb_init_device+0x1dc/0x36c [smsusb]
[   83.822743] [<ffffffbffc58fc98>] smsusb_probe+0x144/0x408 [smsusb]
[   83.822759] [<ffffffc001518cb0>] usb_probe_interface+0xd8/0x1dc
[   83.822775] [<ffffffc001471d3c>] really_probe+0xd4/0x244
[   83.822788] [<ffffffc001471fd0>] __driver_attach+0xb0/0xb8
[   83.822806] [<ffffffc00146fda4>] bus_for_each_dev+0x68/0xac
[   83.822822] [<ffffffc0014717ec>] driver_attach+0x28/0x34
[   83.822838] [<ffffffc0014713f4>] bus_add_driver+0x158/0x210
[   83.822852] [<ffffffc00147279c>] driver_register+0x64/0x124
[   83.822869] [<ffffffc001518374>] usb_register_driver+0x94/0x17c
[   83.822890] [<ffffffbffc593020>] $x+0x20/0x2c [smsusb]
[   83.822904] [<ffffffc0010816bc>] do_one_initcall+0xe4/0x148
[   83.822920] [<ffffffc00110a654>] load_module+0x14dc/0x1ddc
[   83.822933] [<ffffffc00110b0c4>] SyS_finit_module+0x80/0x90
[   83.822943] ---[ end trace 9fb9ad798515ad16 ]---
[   83.822961] smsusb:smsusb_init_device: smscore_register_device(...) failed, rc -12
[   83.823538] smsusb:smsusb_probe: Device initialized with return code -12
[   83.828146] smsusb: probe of 1-2:1.0 failed with error -12
[   83.828315] usbcore: registered new interface driver smsusb

The effect on the kernel’s DMA handling seems to be so severe that the Vero 4k doesn’t even boot up when the device is already connected.

FYI, doing the same on my Debian Jessie Stretch (kernel 4.9.0-3-amd64) notebook returns the following:

[  715.053561] usb 1-5: new high-speed USB device number 7 using xhci_hcd
[  715.194509] usb 1-5: New USB device found, idVendor=187f, idProduct=0202
[  715.194513] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  715.194515] usb 1-5: Product: MDTV Receiver
[  715.194517] usb 1-5: Manufacturer: MDTV Receiver
[  715.211271] smsusb:smsusb_probe: board id=11, interface number 0
[  715.211669] usb 1-5: firmware: direct-loading firmware dvb_nova_12mhz_b0.inp
[  715.684531] smsmdtv:smscore_init_ir: IR port has not been detected
[  715.684532] smsusb:smsusb_probe: Device initialized with return code 0
[  715.688743] DVB: registering new adapter (Siano Nice Digital Receiver)
[  715.688907] usb 1-5: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...
[  715.688950] smsdvb:smsdvb_hotplug: DVB interface registered.
[  715.689179] usbcore: registered new interface driver smsusb

# ls /dev/dvb/adapter0 
total 0
drwxr-xr-x  2 root root     100 Jul 18 19:29 .
drwxr-xr-x  3 root root      60 Jul 18 19:29 ..
crw-rw----+ 1 root video 212, 0 Jul 18 19:29 demux0
crw-rw----+ 1 root video 212, 1 Jul 18 19:29 dvr0
crw-rw----+ 1 root video 212, 2 Jul 18 19:29 frontend0

As you can see, it’s working as expected (ignore the outdated status given on the LinuxTV page). That said, this might again be related to the relatively old kernel the Vero has to use.

Hope this helps

Hi @brevilo

Not quite. As you probably know, we’ve backported 4.x drivers for DVB to our current kernel. When things are up and running, this will give us modern tuner support.

Issue looks related to 64 → 32 pointer issue which we are working on (also affects ioctls()).

DVB has one final ioctl issue on Vero 4K anyway (to be shortly resolved). Then we’ll reevaluate other DVB issues. I know a lot of people are anticipating our official DVB adapter.

Just a quick follow-up after the July update. The stacktrace hasn’t changed with the latest kernel:

[85178.219961] usb 1-2: new high-speed USB device number 3 using xhci-hcd
[85178.360458] usb 1-2: New USB device found, idVendor=187f, idProduct=0202
[85178.360471] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[85178.360476] usb 1-2: Product: MDTV Receiver
[85178.360481] usb 1-2: Manufacturer: MDTV Receiver
[85178.391628] smsusb:smsusb_probe: board id=11, interface number 0
[85178.392229] smsusb:siano_media_device_register: media controller created
[85178.392245] ------------[ cut here ]------------
[85178.392260] WARNING: CPU: 2 PID: 3379 at arch/arm64/mm/dma-mapping.c:100 __dma_alloc_coherent+0x10c/0x11c()
[85178.392264] Use an actual device structure for DMA allocation
[85178.392268] Modules linked in: smsusb(O+) smsmdtv(O) sha1_generic em28xx_rc(O) si2157(O) si2168(O) em28xx_dvb(O) dvb_core(O) btsdio bluetooth 6lowpan_iphc 8021q dhd cfg80211 em28xx(O) tveeprom(O) v4l2_common(O) dwc_otg wifi_dummy mali meson_ir fuse amlvideodri(O) videobuf_res(O) videobuf_core(O) videodev(O) media(O)
[85178.392315] CPU: 2 PID: 3379 Comm: systemd-udevd Tainted: G           O 3.14.29-28-osmc #1
[85178.392319] Call trace:
[85178.392327] [<ffffffc001087cf4>] dump_backtrace+0x0/0x144
[85178.392333] [<ffffffc001087e54>] show_stack+0x1c/0x28
[85178.392340] [<ffffffc00186dd68>] dump_stack+0x74/0x94
[85178.392347] [<ffffffc0010956bc>] warn_slowpath_common+0xa4/0xcc
[85178.392353] [<ffffffc001095758>] warn_slowpath_fmt+0x74/0x88
[85178.392358] [<ffffffc001090a60>] __dma_alloc_coherent+0x108/0x11c
[85178.392364] [<ffffffc001090ad8>] __dma_alloc_noncoherent+0x64/0x250
[85178.392373] [<ffffffbffc5a9dc4>] smscore_register_device+0x318/0x368 [smsmdtv]
[85178.392382] [<ffffffbffc5b89c4>] smsusb_init_device+0x1dc/0x36c [smsusb]
[85178.392389] [<ffffffbffc5b8c98>] smsusb_probe+0x144/0x408 [smsusb]
[85178.392396] [<ffffffc00151bc58>] usb_probe_interface+0xd8/0x1dc
[85178.392403] [<ffffffc001473e64>] really_probe+0xd4/0x244
[85178.392408] [<ffffffc0014740f8>] __driver_attach+0xb0/0xb8
[85178.392415] [<ffffffc001471ecc>] bus_for_each_dev+0x68/0xac
[85178.392420] [<ffffffc001473914>] driver_attach+0x28/0x34
[85178.392425] [<ffffffc00147351c>] bus_add_driver+0x158/0x210
[85178.392431] [<ffffffc0014748c4>] driver_register+0x64/0x124
[85178.392436] [<ffffffc00151b31c>] usb_register_driver+0x94/0x17c
[85178.392444] [<ffffffbffc5bc020>] $x+0x20/0x2c [smsusb]
[85178.392449] [<ffffffc0010816bc>] do_one_initcall+0xe4/0x148
[85178.392456] [<ffffffc00110a8d8>] load_module+0x14dc/0x1ddc
[85178.392461] [<ffffffc00110b348>] SyS_finit_module+0x80/0x90
[85178.392465] ---[ end trace f3d456d1f407dae7 ]---
[85178.392473] smsusb:smsusb_init_device: smscore_register_device(...) failed, rc -12
[85178.392716] smsusb:smsusb_probe: Device initialized with return code -12
[85178.429039] smsusb: probe of 1-2:1.0 failed with error -12
[85178.429105] usbcore: registered new interface driver smsusb

Although I don’t have a Pi left, I can at least say that this very device works fine on my Debian Jessie Stretch (amd64) laptop (see OP above), using the same firmware.

Please note that the kernel ooops only occurs on the first connect. Removing and replugging the device doesn’t reproduce it but the original errors stay the same:

[86761.679025] usb 1-2: new high-speed USB device number 5 using xhci-hcd
[86761.819631] usb 1-2: New USB device found, idVendor=187f, idProduct=0202
[86761.819658] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[86761.819673] usb 1-2: Product: MDTV Receiver
[86761.819687] usb 1-2: Manufacturer: MDTV Receiver
[86761.821805] smsusb:smsusb_probe: board id=11, interface number 0
[86761.822617] smsusb:siano_media_device_register: media controller created
[86761.822651] smsusb:smsusb_init_device: smscore_register_device(...) failed, rc -12
[86761.823057] smsusb:smsusb_probe: Device initialized with return code -12
[86761.827582] smsusb: probe of 1-2:1.0 failed with error -12

Also, please note that the firmware (loading) itself isn’t the culprit here. Moving it out of /lib/firmware doesn’t change the symptoms. I presume that the firmware gets loaded after smscore_register_device succeeded, which fails in all cases (with and without an oops involved).

Hope this helps

Are you definitely using the correct firmware? This can vary per kernel version

Your Debian laptop is probably running 3.16. Our drivers come from 4.4

Not sure where to get any alternative firmware since they’re typically ripped from the years-old Windows driver CDs, LOL. Also, see the latest update to my previous post - even removing the firmware doesn’t change anything, indicating things go south before it gets loaded.

FYI, my Debian Jessie Stretch box sports a 4.9.0-3-amd64 kernel, so its likely to be the other way round (which makes way more sense).

You must have backports or have upgraded to Stretch as my Jessie boxes are running 3.16.

I will see when I get the stick. No promises we will get this one working: but the end goal is to support most adapters

True, I am running Stretch. My Bad. Obviously I forgot about Stretch becoming stable :sunglasses:

I will see when I get the stick

Just to avoid confusion: this thread is not about the PCTV/Haupauge 292e you just ordered. The model covered here has certainly a much lower prio for me and is generally far more exotic than the common 292e.