HanfTek crash
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
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 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 thanks for info. Are you saing that all mobile phones incude DVB drivers for several devices? I thought that AndroidDvbDriver reiplements it.
@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 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.
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.
@bademux This commit https://git.linuxtv.org/media_tree.git/commit/?id=d695eb5b3b963230652db29eae341a9706c593f4
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 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 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 Thanks