AndroidDvbDriver icon indicating copy to clipboard operation
AndroidDvbDriver copied to clipboard

HanfTek crash

Open bademux opened this issue 7 years ago • 10 comments

Hello, I had a problem with 15f4:0131 HanfTek. Tested on Xiaomi Mi8 and Xiaomi mibox S (android 8.1) Looks like it is the problem with new hardware rev based on Sony CXD2837ER. Please let me know if you need additional information.

 Stack trace and exception (DO NOT EDIT): Cannot send USB control message. Error code -1

info.martinmarinov.drivers.DvbException: Cannot send USB control message. Error code -1
	at info.martinmarinov.drivers.usb.rtl28xx.Rtl28xxDvbDevice.ctrlMsg(Rtl28xxDvbDevice.java:89)
	at info.martinmarinov.drivers.usb.rtl28xx.Rtl28xxTunerType$14.getSlave(Rtl28xxTunerType.java:155)
	at info.martinmarinov.drivers.usb.rtl28xx.Rtl28xxTunerType.detectSlave(Rtl28xxTunerType.java:198)
	at info.martinmarinov.drivers.usb.rtl28xx.Rtl2832DvbDevice$1.run(Rtl2832DvbDevice.java:94)
	at info.martinmarinov.drivers.tools.I2cAdapter$I2GateControl.runInOpenGate(I2cAdapter.java:107)
	at info.martinmarinov.drivers.usb.rtl28xx.Rtl2832DvbDevice.readConfig(Rtl2832DvbDevice.java:90)
	at info.martinmarinov.drivers.usb.DvbUsbDevice$1.run(DvbUsbDevice.java:106)
	at info.martinmarinov.drivers.tools.Retry$1.call(Retry.java:32)
	at info.martinmarinov.drivers.tools.Retry$1.call(Retry.java:29)
	at info.martinmarinov.drivers.tools.Retry.retry(Retry.java:42)
	at info.martinmarinov.drivers.tools.Retry.retry(Retry.java:29)
	at info.martinmarinov.drivers.usb.DvbUsbDevice.open(DvbUsbDevice.java:102)
	at info.martinmarinov.dvbdriver.DeviceController.run(DeviceController.java:67)

Last Device: No device open Build.MANUFACTURER: Xiaomi Build.MODEL: Mi 8 Build.PRODUCT: dipper Build.VERSION.SDK_INT: 28 Build.VERSION.RELEASE: 9 Driver versionName: 1.36 Driver versionCode: 17 gvbusb Looks like 2018 revision https://www.linuxtv.org/wiki/index.php/Astrometa_DVB-T2 Can be related: https://github.com/torvalds/linux/pull/567

bademux avatar Feb 20 '19 20:02 bademux

@bademux Hello! I suppose xiaomi is not 5.0 kernel, right? Then it will not work, unless you recompile the kernel, but for arm it will be difficult. So you should buy old stick with panasonic demodulator (not sony D2837ER).

ValZapod avatar Feb 26 '19 10:02 ValZapod

@ValZapod thanks for info. Are you saing that all mobile phones incude DVB drivers for several devices? I thought that AndroidDvbDriver reiplements it.

bademux avatar Feb 26 '19 17:02 bademux

@bademux A key moment is that commit https://github.com/torvalds/linux/commit/d695eb5b3b963230652db29eae341a9706c593f4, also there are instructions on how to change kernel dvb module https://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers

ValZapod avatar Feb 26 '19 17:02 ValZapod

@ValZapod I believe there is misunderstanding. This project Readme stays "The driver is a simplified user space port of a subset of the V4L2 Linux kernel drivers." My understanding is that we don't need linux kernel drivers - AndroidDvbDriver reimplements it. Fix me if I'm wrong.

bademux avatar Feb 26 '19 17:02 bademux

Then you should check your V4L2 drivers for that commit (media: rtl28xxu: add support for Sony CXD2837ER slave demod), as you can see it is media, so linux media is a part of kernel.

ValZapod avatar Feb 26 '19 17:02 ValZapod

@bademux This commit https://git.linuxtv.org/media_tree.git/commit/?id=d695eb5b3b963230652db29eae341a9706c593f4

ValZapod avatar Feb 26 '19 17:02 ValZapod

Also as you can see here https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?qt=grep&q=v4l
V4L2 (linux_media) is actually the main and the only implementation which is in linux kernel.

ValZapod avatar Feb 26 '19 17:02 ValZapod

@ValZapod can you kindly reread my message? I bold main part for you From AndroidDvbDriver Readme: "The driver is a simplified user space port of a subset of the V4L2 Linux kernel drivers." From my understanding AndroidDvbDriver is USERSPACE port of linux V4L2 drivers

bademux avatar Feb 26 '19 18:02 bademux

@bademux There are only two c files in the repo. You can't write a driver in java... Only some type of wrapper, or a wrapper for a wrapper (i am speaking about Android USB Host API), which will not work if there is no support from kernel...

ValZapod avatar Feb 26 '19 18:02 ValZapod

@ValZapod Thanks

bademux avatar Feb 26 '19 18:02 bademux