Jump to content

Odroid C2 USB-Problem with 4.18.8 mainline kernel


Max Berghammer

Recommended Posts

Hi!

 

I'm running a Odroid C2 as a SAT->IP-Server for some time having two DVBSky S960 attached to the USB-Ports of the Odroid. The Odroid itsself has a nightly of Armbian installed: 5.38.180128 (4.14.15) and runs a self-compiled tvheadend on it. No big problems so far.

 

As you released a stable stretch-image some time ago, i thought: give it a try! So I flashed the image to my 8GB EMMC, installed all updates, built tvheadend on it and installed it. Everything runs like a charm. Until...I try to use the DVBSky S960 on the USB-Port. Of course I installed the correct driver for it and the device seems to be detected correctly and the drivers are being loaded. At least dmesg says that after a reboot. But as soon, as I try to scan for tv-channels using the tvheadend-web-ui, the system crashes.

 

I get the following on my terminal:

Message from syslogd@localhost at Dec 28 22:55:58 ...
 kernel:[   50.657471] Internal error: Oops: 96000146 [#1] PREEMPT SMP

Message from syslogd@localhost at Dec 28 22:55:58 ...
 kernel:[   50.814369] Process tvh:mtimer (pid: 1914, stack limit = 0x00000000f277fb3f)

Message from syslogd@localhost at Dec 28 22:55:58 ...
 kernel:[   50.909157] Code: 9ac32042 8b010001 d1000443 8a230000 (d50b7a20)

 

dmesg says:

[   50.612175] Unable to handle kernel paging request at virtual address ffff800000cc5000
[   50.614456] Mem abort info:
[   50.617219]   ESR = 0x96000146
[   50.620233]   Exception class = DABT (current EL), IL = 32 bits
[   50.626099]   SET = 0, FnV = 0
[   50.629112]   EA = 0, S1PTW = 0
[   50.632217] Data abort info:
[   50.635132]   ISV = 0, ISS = 0x00000146
[   50.638930]   CM = 1, WnR = 1
[   50.641900] swapper pgtable: 4k pages, 48-bit VAs, pgdp = 0000000094a73707
[   50.648717] [ffff800000cc5000] pgd=000000007fff8803, pud=000000007fff7803, pmd=0000000000000000
[   50.657471] Internal error: Oops: 96000146 [#1] PREEMPT SMP
[   50.662742] Modules linked in: rc_dvbsky ts2020 snd_soc_hdmi_codec dw_hdmi_cec dw_hdmi_i2s_audio zstd snd_soc_simple_card snd_soc_simple_card_utils snd_soc_core snd_pcm_dmaengine snd_pcm dvb_usb_dvbsky snd_timer m88ds3103 dvb_usb_v2 snd soundcore dvb_core meson_dw_hdmi i2c_mux meson_drm dw_hdmi drm_kms_helper drm meson_rng ao_cec rng_core cec meson_ir rc_core drm_panel_orientation_quirks meson_gxbb_wdt zram snd_soc_meson_audio_core zsmalloc scpi_hwmon nvmem_meson_efuse ip_tables x_tables realtek
[   50.706323] CPU: 3 PID: 1914 Comm: tvh:mtimer Not tainted 4.18.8-odroidc2 #264
[   50.713458] Hardware name: Hardkernel ODROID-C2 (DT)
[   50.718372] pstate: 80000005 (Nzcv daif -PAN -UAO)
[   50.723124] pc : __clean_dcache_area_poc+0x20/0x38
[   50.727860] lr : __swiotlb_map_page+0x74/0x90
[   50.732169] sp : ffff00000cd6b6b0
[   50.735446] x29: ffff00000cd6b6b0 x28: ffff800070d1b300
[   50.740708] x27: ffff80007011d200 x26: ffff000000c65ce0
[   50.745970] x25: ffff80007030d550 x24: ffff000008b67000
[   50.751231] x23: 0000000000000001 x22: 0000000000000003
[   50.756492] x21: 0000000000000000 x20: ffff8000712e2810
[   50.761753] x19: 0000000000cc5000 x18: 0000000000000000
[   50.767015] x17: 0000ffffad158ea0 x16: ffff000008260d38
[   50.772276] x15: 0000000000000000 x14: 0000000000000400
[   50.777537] x13: 0000000000000400 x12: 0000000000000001
[   50.782798] x11: 0000000000019008 x10: 00000000000008d0
[   50.788060] x9 : ffff00000cd6b380 x8 : 0000000000000cc5
[   50.793321] x7 : 00000000ffffffff x6 : 0000000000cc5000
[   50.798582] x5 : 0000000000000000 x4 : 0000000000000001
[   50.803843] x3 : 000000000000003f x2 : 0000000000000040
[   50.809105] x1 : ffff800000cc5003 x0 : ffff800000cc5000
[   50.814369] Process tvh:mtimer (pid: 1914, stack limit = 0x00000000f277fb3f)
[   50.821354] Call trace:
[   50.823768]  __clean_dcache_area_poc+0x20/0x38
[   50.828169]  usb_hcd_map_urb_for_dma+0x4a8/0x508
[   50.832741]  dwc2_map_urb_for_dma+0x4c/0xe8
[   50.836878]  usb_hcd_submit_urb+0x98/0x970
[   50.840932]  usb_submit_urb+0x3b4/0x558
[   50.844727]  usb_start_wait_urb+0x68/0x100
[   50.848781]  usb_bulk_msg+0xa0/0x148
[   50.852323]  dvb_usb_v2_generic_io.isra.0+0x8c/0x1b8 [dvb_usb_v2]
[   50.858358]  dvb_usbv2_generic_rw_locked+0x20/0x28 [dvb_usb_v2]
[   50.864224]  dvbsky_stream_ctrl+0x4c/0xa0 [dvb_usb_dvbsky]
[   50.869655]  dvbsky_usb_read_status+0x7c/0xa0 [dvb_usb_dvbsky]
[   50.875448]  dvb_frontend_handle_ioctl+0x3e8/0xb90 [dvb_core]
[   50.881134]  dvb_frontend_do_ioctl+0x88/0xd8 [dvb_core]
[   50.886308]  dvb_usercopy+0x68/0x1d0 [dvb_core]
[   50.890793]  dvb_frontend_ioctl+0x1c/0x30 [dvb_core]
[   50.895705]  do_vfs_ioctl+0xb8/0x8e0
[   50.899237]  ksys_ioctl+0x80/0xb8
[   50.902514]  sys_ioctl+0xc/0x18
[   50.905620]  el0_svc_naked+0x30/0x34
[   50.909157] Code: 9ac32042 8b010001 d1000443 8a230000 (d50b7a20)
[   50.915196] ---[ end trace ffb85cafd9bb0d8e ]---

 

Logging can be found here: http://ix.io/1x2t

 

What I tried so far:

- Running a current build of tvheadend on my nightly 5.38.180128 works, so it seems to be nothing tvheadend-specific

- Running a current build of tvheadend on a stable raspbian with kernel 4.14.79 on a rpi3 also works

- Running a current build of tvheadend on the newest nightly of Armbian does not work. Same Error.

 

Any thoughts? Do you need more infos?

 

thx in advance,

 

Max

 

Edit: Seems to be a bug in dvbsky.c introduced in kernel 4.18 and reverted back in 4.20:

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

https://github.com/torvalds/linux/commits/v4.20-rc1/drivers/media/usb/dvb-usb-v2/dvbsky.c

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines