Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request for Driver Support for MyGica T230C v2 // T230C2 #3358

Open
dcseng opened this issue Jun 15, 2024 · 0 comments
Open

Request for Driver Support for MyGica T230C v2 // T230C2 #3358

dcseng opened this issue Jun 15, 2024 · 0 comments
Labels

Comments

@dcseng
Copy link

dcseng commented Jun 15, 2024

Request for Driver Support for MyGica T230C v2 // T230C2

Hello,

I've noticed that the available driver supports the MyGica T230C, but there is a newer version, the T230C v2, which is not compatible with the current driver. Could you please add support for the T230C v2 in Enigma OpenATV?

Details:

T230C2 // T230C V2 Hardware Details on my Ubuntu:

lsusb | grep 0572
Bus 002 Device 002: ID 0572:c68a Conexant Systems (Rockwell), Inc. EyeTV Stick

dmesg | grep dvb
[   22.993083] usb 2-1: dvb_usb_v2: found a 'MyGica Mini DVB-(T/T2/C) USB Stick T230C v2' in warm state
[   22.993459] usb 2-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[   22.993470] dvbdev: DVB: registering new adapter (MyGica Mini DVB-(T/T2/C) USB Stick T230C v2)
[   22.993725] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[   23.945696] dvbdev: dvb_create_media_entity: media entity 'Silicon Labs Si2168' registered.
[   23.978168] rc rc0: lirc_dev: driver dvb_usb_dvbsky registered at minor = 0, scancode receiver, no transmitter
[   23.978392] usb 2-1: dvb_usb_v2: schedule remote query interval to 300 msecs
[   23.978397] usb 2-1: dvb_usb_v2: 'MyGica Mini DVB-(T/T2/C) USB Stick T230C v2' successfully initialized and connected
[  166.547657] si2168 0-0064: downloading firmware from file 'dvb-demod-si2168-d60-01.fw'
[  169.668135] si2157 1-0060: downloading firmware from file 'dvb-tuner-si2141-a10-01.fw'

Firmware Required:

  • dvb-demod-si2168-d60-01.fw
  • dvb-tuner-si2141-a10-01.fw

These files are placed in /lib/firmware.

Modules Loaded:

lsmod | grep dvb
dvb_usb_dvbsky         24576  0
dvb_usb_v2             53248  1 dvb_usb_dvbsky
m88ds3103              45056  1 dvb_usb_dvbsky
dvb_core              180224  2 dvb_usb_v2,dvb_usb_dvbsky
mc                     86016  3 si2157,dvb_usb_v2,dvb_core
rc_core                77824  4 dvb_usb_v2,rc_total_media_in_hand_02,dvb_usb_dvbsky
si2157                 24576  1
si2168                 24576  1
i2c_mux                16384  2 m88ds3103,si2168
mc                     86016  3 si2157,dvb_usb_v2,dvb_core

System Information:

root@zgemmah7:~# lsusb
Bus 001 Device 003: ID 0572
Linux zgemmah7 4.10.12 #1 SMP Wed Apr 26 13:58:00 UTC 2017 armv7l GNU/Linux
enigma2 - 7.4+git33343+e22346b0+e22346b9c8-r0

Additional Information on Geniatech T230C:

The Geniatech T230C, also branded as MyGica T230C, has undergone hardware changes in the T230C v2. Although the external appearance remains similar, the internal components differ. Notably, the demodulator and tuner used are Silicon Labs Si2168-D60 and Si2141-A10, respectively. The driver dvb_usb_dvbsky supports this hardware in kernel 5.4 and later.

Currently, the OpenATV 7.4 kernel is still at version 4.10.12, with no anticipated upgrade to kernel version 5. This poses a challenge for compatibility with newer drivers.

  • Kernel 4.4: Drivers are not shipped with the kernel.
  • Kernel 4.9.24: Does not ship the driver either.
  • Kernel 4.14: Included in Raspbian 9 in 2019, ships with the correct driver to support the T230C.
  • Kernel 5.4 Vanilla: The T230C and T230C v2 are supported by the dvb_usb_dvbsky driver, replacing the previously responsible dvb_usb_cxusb.

CrazyCat has done commendable work in maintaining support for T230C hardware within dvb_usb_cxusb in his custom build of the "media" driver subsystem.

Supported T230 Variants in Kernel 5.4

VID PID Description
0x0572 0xc688 MyGica Mini DVB-T2 USB Stick T230
0x0572 0xc689 MyGica Mini DVB-T2 USB Stick T230C
0x0572 0xc68a MyGica Mini DVB-T2 USB Stick T230C v2
0x0572 0xc699 MyGica Mini DVB-T2 USB Stick T230C Lite (no IR)

The USB VID=0x0572 corresponds to Conexant.

While the vanilla driver is now integrated into the kernel tree and will eventually be included in distribution kernels, historical data and solutions, like those provided by CrazyCat, remain useful.

T230C2 // T230C V2

image

Devices name:

  • Geniatech T230C2
  • MyGica T230C2

Specific Device Support:

  • Kernel Support: Yes, in kernel since 5.4
  • USB ID: 0572:c68a
  • USB Version: USB 2.0
  • Components:
    • Silicon Labs Si2141-A10
    • Silicon Labs Si2168-D60
    • Cypress EZ-USB FX2 CY7C68013A
    • Evolveo Sigma T2
  • Firmware Required:
    • dvb-demod-si2168-d60-01.fw
    • dvb-tuner-si2141-a10-01.fw
  • Notes:
    • Drivers can be built with media_build for older kernels.

Since Enigma2 uses an older kernel, you might need to backport the driver from a newer kernel or use the media_build tool from CrazyCat, which includes support for newer DVB devices on older kernels.

What I have tried:

Steps to Extract and Copy Necessary Files from Ubuntu to OpenATV:

  1. Extract the Necessary Modules:

    sudo zstd -d /lib/modules/$(uname -r)/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko.zst -o /lib/modules/$(uname -r)/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko
    sudo zstd -d /lib/modules/$(uname -r)/kernel/drivers/media/dvb-frontends/m88ds3103.ko.zst -o /lib/modules/$(uname -r)/kernel/drivers/media/dvb-frontends/m88ds3103.ko
    sudo zstd -d /lib/modules/$(uname -r)/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko.zst -o /lib/modules/$(uname -r)/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko
    sudo zstd -d /lib/modules/$(uname -r)/kernel/drivers/media/rc/rc-core.ko.zst -o /lib/modules/$(uname -r)/kernel/drivers/media/rc/rc-core.ko
    sudo zstd -d /lib/modules/$(uname -r)/kernel/drivers/media/dvb-core/dvb-core.ko.zst -o /lib/modules/$(uname -r)/kernel/drivers/media/dvb-core/dvb-core.ko
  2. Create Necessary Directories on Zgemma Device:

    ssh root@192.168.0.183
    mkdir -p /lib/modules/4.10.12/kernel/drivers/media/usb/dvb-usb-v2/
    mkdir -p /lib/modules/4.10.12/kernel/drivers/media/dvb-frontends/
    mkdir -p /lib/modules/4.10.12/kernel/drivers/media/rc/
    mkdir -p /lib/modules/4.10.12/kernel/drivers/media/dvb-core/
    exit
  3. Copy the Modules to the Zgemma Device:

    scp /lib/modules/$(uname -r)/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko root@192.168.0.183:/lib/modules/4.10.12/kernel/drivers/media/usb/dvb-usb-v2/
    scp /lib/modules/$(uname -r)/kernel/drivers/media/dvb-frontends/m88ds3103.ko root@192.168.0.183:/lib/modules/4.10.12/kernel/drivers/media/dvb-frontends/
    scp /lib/modules/$(uname -r)/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-dvbsky.ko root@192.168.0.183:/lib/modules/4.10.12/kernel/drivers/media/usb/dvb-usb-v2/
    scp /lib/modules/$(uname -r)/kernel/drivers/media/rc/rc-core.ko root@192.168.0.183:/lib/modules/4.10.12/kernel/drivers/media/rc/
    scp /lib/modules/$(uname -r)/kernel/drivers/media/dvb-core/dvb-core.ko root@192.168.0.183:/lib/modules/4.10.12/kernel/drivers/media/dvb-core/
  4. Load the Modules on the Zgemma Device:

    modprobe dvb_usb_dvbsky
    modprobe dvb_usb_v2
    modprobe m88ds3103
    modprobe dvb_core
    modprobe rc-core

Verification:

  1. Check if the modules are loaded correctly:

    lsmod | grep dvb
    lsmod | grep m88ds3103
    lsmod | grep dvb_usb_v2
    lsmod | grep rc-core
  2. Check kernel log:

    dmesg | grep dvb
    dmesg | grep m88ds3103
    dmesg | grep dvb_usb_v2
    dmesg | grep rc-core

Results and Analysis:

When attempting to load the modules on the Zgemma device, some modules failed to load, possibly due to kernel incompatibility between Ubuntu and OpenATV 7.4:

root@zgemmah7:~# modprobe dvb_usb_dvbsky
modprobe: ERROR: could not insert 'dvb_usb_dvbsky': Exec format error

root@zgemmah7:~# modprobe dvb_usb_v2
modprobe: ERROR: could not insert 'dvb_usb_v2': Exec format error

root@zgemmah7:~# modprobe m88ds3103
modprobe: ERROR: could not insert 'm88ds3103': Exec format error

root@zgemmah7:~# modprobe dvb_core
root@zgemmah7:~# modprobe rc-core
root@zgemmah7:~# lsmod | grep dvb
dvb_usb                14759  0
root@zgemmah7:~# lsmod | grep m88ds3103
root@zgemmah7:~# lsmod | grep dvb_usb_v2
root@zgemmah7:~# lsmod | grep rc-core
root@zgemmah7:~# dmesg | grep dvb
[    8.620022] dvbdev: DVB: registering new adapter (dvb0)
[    8.646294] platform dvb0.0: DVB: registering adapter 0 frontend 0 (DVB-S2)...
[    8.659595] platform dvb0.0: DVB: registering adapter 0 frontend 1 (DVB-S2)...
[    8.667791] platform dvb0.0: DVB: registering adapter 0 frontend 2 (DVB-T/T2/C)...

It seems that the issue lies in the format of the modules or the differences in kernel versions. I would appreciate any guidance or assistance in resolving this compatibility issue and successfully loading the necessary drivers for MyGica T230C v2.

I'm attaching the necessary files for the t230c2 v2 to work on Ubuntu:
dvb_modules.zip

dvb-core.ko
dvb-core.ko.zst
dvb-demod-si2168-d60-01.fw
dvb-tuner-si2141-a10-01.fw
dvb-usb-dvbsky.ko
dvb-usb-dvbsky.ko.zst
dvb_usb_v2.ko
dvb_usb_v2.ko.zst
m88ds3103.ko
m88ds3103.ko.zst
rc-core.ko
rc-core.ko.zst

Also there is no support for 0572 in the dvb-usb-cxusb: :

filename:       /lib/modules/4.1.20-1.9/kernel/drivers/media/dvb-frontends/si2168.ko
firmware:       dvb-demod-si2168-b40-01.fw
firmware:       dvb-demod-si2168-a30-01.fw
firmware:       dvb-demod-si2168-a20-01.fw
license:        GPL
description:    Silicon Labs Si2168 DVB-T/T2/C demodulator driver
author:         Antti Palosaari <crope@iki.fi>
alias:          i2c:si2168
depends:
intree:         Y
vermagic:       4.1.20-1.9 SMP mod_unload ARMv7 p2v8

filename:       /lib/modules/4.1.20-1.9/kernel/drivers/media/tuners/si2157.ko
firmware:       dvb-tuner-si2158-a20-01.fw
license:        GPL
author:         Antti Palosaari <crope@iki.fi>
description:    Silicon Labs Si2146/2147/2148/2157/2158 silicon tuner driver
alias:          i2c:si2146
alias:          i2c:si2157
depends:
intree:         Y
vermagic:       4.1.20-1.9 SMP mod_unload ARMv7 p2v8

filename:       /lib/modules/4.1.20-1.9/kernel/drivers/media/usb/dvb-usb/dvb-usb-cxusb.ko
license:        GPL
version:        1.0-alpha
description:    Driver for Conexant USB2.0 hybrid reference design
author:         Chris Pascoe <c.pascoe@itee.uq.edu.au>
author:         Michael Krufky <mkrufky@linuxtv.org>
author:         Patrick Boettcher <patrick.boettcher@desy.de>
srcversion:     D632745B32C05A1357A531E
alias:          usb:v0572pC688d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0572pD811d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0572p86D6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB98d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07CApA868d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB71d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB70d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB78d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB59d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB58d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB55d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB54d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB11d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB10d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB01d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB00d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB51d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pDB50d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pD501d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FE9pD500d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1660p0932d*dc*dsc*dp*ic*isc*ip*in*
depends:        dvb-usb,dib0070
intree:         Y
vermagic:       4.1.20-1.9 SMP mod_unload ARMv7 p2v8
parm:           debug:set debugging level (1=rc (or-able)). (debugging is not enabled) (int)
parm:           adapter_nr:DVB adapter numbers (array of short)

Best regards,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant