The Geniatech T230C (also branded as MyGica T230C (black case instead of a white one), eyeTV T2, or eyeTV T2 Hybrid (completely different case) targetting a Mac OS audience) is an evolution of Geniatech T230. Although it has the same external appearence, it uses different hardware, and is not supported by mainstream 2016-grade kernels. The MyGica-branded device can be found on websites that ship hardware directly from China.
The following components are used on the device
- USB interface: Cypress CY7C68013A-56LTXC
- Demodulator: Silicon Labs Si2168-D60
- Tuner: Silicon Labs Si2141-A10
As of kernel 4.4, drivers are not included in the kernel (at least not in Raspbian 8). Kernel 4.9.24 included in Raspbian 8 (installed when upgrading packages through apt-get) does not support the driver either. However, the driver dvb_usb_cxusb fully supports the device, and can be found in the Video4Linux project. It is possible to build it using CrazyCat's media_build tool.
The T230C appears as a 0572:c689 device
usb 1-1.3.3: New USB device found, idVendor=0572, idProduct=c689 usb 1-1.3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1.3.3: Product: EyeTV Stick usb 1-1.3.3: Manufacturer: Geniatech usb 1-1.3.3: SerialNumber: 160421
To be confirmed: it looks like this device is better integrated into LibreElec system (see here how to use the Crazycat-CC driver pack).
Building the driver
The following procedure works (at least) on a Raspberry Pi running 4.4.43-v7+ or 4.9.30-v7+ kernel (but does not seem to work with the 4.9.24-v7+ kernel). It should be pretty similar on other distros and/or with other kernels.
Run apt-get install raspberrypi-kernel-headers to get the correct headers (i.e. the headers corresponding to your exact current kernel build) into /lib/modules/<some folders about your current $(uname -r) kernel version>/. In my case, 2 folders were created: 4.4.43+ and 4.4.43-v7+. In case it does not download the right kernel version headers (there may be a mismatch between uname -r and the folder names in /lib/modules), you can grab the raspi sources by running:
# get the rpi-source tool wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source chmod u+x rpi-source ./rpi-source --dest /somewhere/that/has/free/space # Older versions might need to have linux-headers installed into /usr/src and symlinks everywhere in /lib/modules # This is not needed anymore (since mid-2017? Was it even needed at some point?) ln -s /somewhere/that/has/free/space/linux /usr/src/linux-headers-$(uname -r) ln -s /usr/src/linux-headers-$(uname -r) /lib/modules/$(uname -r)/build ln -s /usr/src/linux-headers-$(uname -r) /lib/modules/$(uname -r)/source ...and do the same with uname -r, but without the trailing -v7+ (eg 4.4.43+ if uname -r is 4.4.43-v7+)
Check that a correct .config file (corresponding to the exact current build of your kernel) is available at /lib/modules/$(uname -r)/build/.config It should normally have been fetched by rpi-source. If it was not the case, run modprobe configs, and the .config file that you want is available in the compressed file /proc/config.gz
Now we have the correct sources and .config file, we can fetch the driver sources and build it by using CrazyCat's media_build tool:
git clone https://bitbucket.org/CrazyCat/media_build cd media_build ./build --main-git
Be sure to have some space left, as it downloads a part of the kernel tree.
In case the build fails about frame_vector.c: No rule to make target '..../v4l/frame_vector.c' , comment the following lines in media_build/v4l/Makefile, so that they appear like this:
#ifeq ($(makefile-mm),1) #-include $(obj)/Makefile.mm #endif
Then you can install the drivers by running sudo make install
The process should have installed the correct corresponding firmwares into /lib/firmware. If it is not the case, grab and install the needed firmwares from https://bitbucket.org/CrazyCat/media_build/downloads/dvb-firmwares.tar.bz2.
The Geniatech T230C requires these firmwares (available in https://bitbucket.org/CrazyCat/media_build/downloads/dvb-firmwares.tar.bz2):
They must be copied in /lib/firmware
IR Remote Control
If the device is unable to initialize, you may want to prevent the IR from loading:
# cat /etc/modprobe.d/dvb_usb.conf options dvb-usb disable_rc_polling=1
A reboot is needed to take effect.
This DVB-T stick supports every French DVB-T channel (i.e. both HDTV and SDTV, broadcast as MPEG4). They are succesfully processed through tvheadend.
It should support DVB-T2 (it is advertised on the package), although this has not been tested yet.
DVB-C is advertised on the package and is recognized by tvheadend, however this requires the model that includes DVB-C.
At the moment DVB-C is completely broken on Linux 4.12 and may hard brick your device, so be careful.
Contributions are welcome.