You are not logged in.

#1 2017-01-31 18:39:05

Vrob
Member
Registered: 2007-12-07
Posts: 42

SOLVED: Geniatech T230C driver support (also: how to use media_build?)

Hi folks,

so yesterday my T230C DVB stick arrived and I was quite eager to try it out but after some long hours I finally gave up. Now, here's the problem:

The stick doesn't get recognized and thus no modules are loaded.

As far as I understand there is no offical driver support for the T230C (which is similar to the August T210). At least it doesn't work out-of-the-box but there seems to be some experimental drivers written by one guy in the tvheadend forums [1].
The commands he lists in the linked posts will run a complete media_build process, recompiling the whole dvb/v4l subsystem for the kernel from scratch. I have thrown together a quick and dirty PKGBUILD that will build just fine. I can force install it on my system, overwriting stock modules and firmware with the newly built.
While this seems to create the needed firmware and modules to recognize the stick, it essentially breaks my system (e.g. doesn't run mkinitcpio any more due to module issues). Also I get a lot of messages

dvb-usb: bulk message failed: -110

in systemctl -k hinting to some hidden firmware issues.

So what I'd like to try is to tune the build process of media_build so that it will only generate the modules that I need to run the T230C or pick them manually and package them up. I'm not sure if the former is possible and to the do the latter I'd have to know which modules and firmware files are actually needed for my stick.

EDIT:
Here's a list of conflicting files that arise when I try to install "my" media_build package:

media-build-crazycat-git: /lib exists in filesystem
media-build-crazycat-git: /lib/firmware/av7110/bootcode.bin exists in filesystem
media-build-crazycat-git: /lib/firmware/cpia2/stv0672_vp4.bin exists in filesystem
media-build-crazycat-git: /lib/firmware/dvb-demod-si2168-d60-01.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/dvb-fe-xc4000-1.4.1.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/dvb-fe-xc5000-1.6.114.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/dvb-fe-xc5000c-4.1.30.7.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/dvb-tuner-si2141-a10-01.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/dvb-usb-dib0700-1.20.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/dvb-usb-it9135-01.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/dvb-usb-it9135-02.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/dvb-usb-terratec-h5-drxk.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/sms1xxx-hcw-55xxx-dvbt-02.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/sms1xxx-hcw-55xxx-isdbt-02.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/sms1xxx-nova-a-dvbt-01.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/sms1xxx-nova-b-dvbt-01.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/sms1xxx-stellar-dvbt-01.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/ttusb-budget/dspbootcode.bin exists in filesystem
media-build-crazycat-git: /lib/firmware/v4l-cx231xx-avcore-01.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/v4l-cx23418-apu.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/v4l-cx23418-cpu.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/v4l-cx23418-dig.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/v4l-cx23885-avcore-01.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/v4l-cx25840.fw exists in filesystem
media-build-crazycat-git: /lib/firmware/vicam/firmware.fw exists in filesystem
media-build-crazycat-git: /lib/modules/4.9.6-1-ARCH/modules.alias exists in filesystem
media-build-crazycat-git: /lib/modules/4.9.6-1-ARCH/modules.alias.bin exists in filesystem
media-build-crazycat-git: /lib/modules/4.9.6-1-ARCH/modules.builtin.bin exists in filesystem
media-build-crazycat-git: /lib/modules/4.9.6-1-ARCH/modules.dep exists in filesystem
media-build-crazycat-git: /lib/modules/4.9.6-1-ARCH/modules.dep.bin exists in filesystem
media-build-crazycat-git: /lib/modules/4.9.6-1-ARCH/modules.devname exists in filesystem
media-build-crazycat-git: /lib/modules/4.9.6-1-ARCH/modules.softdep exists in filesystem
media-build-crazycat-git: /lib/modules/4.9.6-1-ARCH/modules.symbols exists in filesystem
media-build-crazycat-git: /lib/modules/4.9.6-1-ARCH/modules.symbols.bin exists in filesystem

Thanks for any help in advance smile

[1] https://tvheadend.org/boards/5/topics/1 … sage-22723

Last edited by Vrob (2017-02-08 22:28:57)

Offline

#2 2017-01-31 19:43:00

azleifel
Member
Registered: 2007-10-28
Posts: 486

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

I've got two August T210s.  They're plug'n'play with the right firmware installed, except with kernel 4.9.6 which is broken for several different dvb drivers due to some security-related changes in usbcore.  As a workaround, I'm sticking with kernel 4.8.13 for the time being but the linux-lts kernel ought to work too (unplug the dvb stick when rebooting with the new kernel or the issues will persist).

Offline

#3 2017-01-31 21:39:43

Vrob
Member
Registered: 2007-12-07
Posts: 42

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

Thanks for that brightening info smile
What firmware do you use then? Could you give me a lsmod?

Last edited by Vrob (2017-01-31 21:40:08)

Offline

#4 2017-01-31 22:57:48

azleifel
Member
Registered: 2007-10-28
Posts: 486

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

Currently running the linux-lts kernel:

$ modinfo si2168
filename:       /lib/modules/4.4.45-1-lts/kernel/drivers/media/dvb-frontends/si2168.ko.gz
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:        i2c-mux
intree:         Y
vermagic:       4.4.45-1-lts SMP mod_unload modversions 

Have a look at the LinuxTV page for the Geniatech T230 (https://www.linuxtv.org/wiki/index.php/Geniatech_T230) which has a firmware link.  For the sake of simplicity, I just installed the openelec-dvb-firmware-git package from AUR.

And if, like me, you've got two of them then you need to know that they will not work very well if they're plugged into usb ports that share the same IRQ.

Offline

#5 2017-02-01 21:58:32

Vrob
Member
Registered: 2007-12-07
Posts: 42

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

Following your advice I installed both linux-lts and openelec-dvb-firmware-git.

$ uname -a
Linux spinoza 4.4.45-1-lts #1 SMP Thu Jan 26 18:13:50 CET 2017 x86_64 GNU/Linux
$ find /lib/firmware/ -name "*si21?8*"
/lib/firmware/dvb-tuner-si2158-a20-01.fw
/lib/firmware/dvb-demod-si2168-b40-01.fw
/lib/firmware/dvb-demod-si2168-02.fw
/lib/firmware/dvb-demod-si2168-a20-01.fw
/lib/firmware/dvb-demod-si2168-a30-01.fw
/lib/firmware/dvb-demod-si2168-d60-01.fw

My modinfo is exactly the same as yours.

So apparently I have all the right firmware installed and am running a "non-broken" kernel. Unfortunately the stick still doesn't get recognized. Here's what I get from journalctl -kf while plugging in my device:

Feb 01 22:54:29 spinoza kernel: usb 1-9: new high-speed USB device number 4 using xhci_hcd

Are you running a T230 or T230C? Cause you linked to the linux-tv page for the T230 and I'm aware that they work pretty neatly. The T230C that I have is a completely different story though. Could you post your output of $ lsusb ? Here's mine:

[...]
Bus 001 Device 004: ID 0572:c689 Conexant Systems (Rockwell), Inc.
[...]

Note that the ID ends with 689 whereas T230s end with 688.

Offline

#6 2017-02-01 23:47:58

azleifel
Member
Registered: 2007-10-28
Posts: 486

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

We're learning as we go along ;-)  Anyway, I've August T210v2 sticks, so

Bus 005 Device 002: ID 0572:c688 Conexant Systems (Rockwell), Inc. Geniatech T230 DVB-T2 TV Stick

Edit: And I see that kernel patches exist for the dvb-usb-cxusb module (https://www.spinics.net/lists/linux-media/msg108948.html and https://www.spinics.net/lists/linux-med … 8947.html).  Might it not be easier to try building a custom kernel with just those  patches applied?

Last edited by azleifel (2017-02-02 00:11:40)

Offline

#7 2017-02-03 18:28:57

Vrob
Member
Registered: 2007-12-07
Posts: 42

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

Alright, so I'll try building a custom kernel over the weekend with the patches included. Going to report back!

Offline

#8 2017-02-04 17:59:23

Vrob
Member
Registered: 2007-12-07
Posts: 42

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

So far, I haven't had any success building a kernel with the patches hmm I switched to verbose compilation, but I don't really get why there's an error while building net modules...

(cat /dev/null;   cat net/core/modules.order;   cat net/ethernet/modules.order;   cat net/802/modules.order;   cat net/sched/modules.order;   cat net/netlink/modules.order;   cat net/netfilter/modules.order;   cat net/ipv4/modules.order;   cat net/xfrm/modules.order;   cat net/unix/modules.order;   cat net/ipv6/modules.order;   cat net/packet/modules.order;   cat net/8021q/modules.order;   cat net/wireless/modules.order;   cat net/netlabel/modules.order;   cat net/mpls/modules.order;   cat net/switchdev/modules.order;   cat net/l3mdev/modules.order;   cat net/ncsi/modules.order;   cat net/llc/modules.order;   cat net/key/modules.order;   cat net/bridge/modules.order;   cat net/dsa/modules.order;   cat net/netrom/modules.order;   cat net/rose/modules.order;   cat net/ax25/modules.order;   cat net/can/modules.order;   cat net/irda/modules.order;   cat net/bluetooth/modules.order;   cat net/sunrpc/modules.order;   cat net/rxrpc/modules.order;   cat net/kcm/modules.order;   cat net/strparser/modules.order;   cat net/atm/modules.order;   cat net/l2tp/modules.order;   cat net/phonet/modules.order;   cat net/dccp/modules.order;   cat net/sctp/modules.order;   cat net/mac80211/modules.order;   cat net/rfkill/modules.order;   cat net/9p/modules.order;   cat net/caif/modules.order;   cat net/6lowpan/modules.order;   cat net/ieee802154/modules.order;   cat net/mac802154/modules.order;   cat net/wimax/modules.order;   cat net/dns_resolver/modules.order;   cat net/ceph/modules.order;   cat net/batman-adv/modules.order;   cat net/nfc/modules.order;   cat net/openvswitch/modules.order;   cat net/vmw_vsock/modules.order;   cat net/hsr/modules.order;) > net/modules.order
   ld -m elf_x86_64   -r -o net/built-in.o net/socket.o net/core/built-in.o net/compat.o net/ethernet/built-in.o net/802/built-in.o net/sched/built-in.o net/netlink/built-in.o net/netfilter/built-in.o net/ipv4/built-in.o net/xfrm/built-in.o net/unix/built-in.o net/ipv6/built-in.o net/packet/built-in.o net/8021q/built-in.o net/wireless/built-in.o net/netlabel/built-in.o net/sysctl_net.o net/mpls/built-in.o net/switchdev/built-in.o net/l3mdev/built-in.o net/ncsi/built-in.o

My PKGBUILD: http://pastebin.com/7pwYTZeJ
crazycat1.patch: http://pastebin.com/DHMKHszg
crazycat2.patch: http://pastebin.com/R3M7D7fm
crazycat3.patch: http://pastebin.com/8z1Z0sZh
crazycat4.patch: http://pastebin.com/zAD9xYbB

Basically, I modded patch 3/4 because parts of it were rejected and used "cat" to add the line that the patch file would have normally added.

Offline

#9 2017-02-04 20:30:24

azleifel
Member
Registered: 2007-10-28
Posts: 486

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

It's more than 10 years since I last built a custom kernel, and it was on Debian and not Arch.  With that warning in mind, this is what I did:

Modified linux 4.8.13-1 PKGBUILD

pkgbase=linux               # Build stock -ARCH kernel
#pkgbase=linux-custom       # Build kernel with a different name
_srcname=linux-4.8
pkgver=4.8.13
pkgrel=1
arch=('i686' 'x86_64')
url="https://www.kernel.org/"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'libelf')
options=('!strip')
source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
        "https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.sign"
        "https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.xz"
        "https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.sign"
        # the main kernel config files
        'config' 'config.x86_64'
        # pacman hook for initramfs regeneration
        '99-linux.hook'
        # standard config files for mkinitcpio ramdisk
        'linux.preset'
        'change-default-console-loglevel.patch'
        fix_race_condition_in_packet_set_ring.diff
        net_handle_no_dst_on_skb_in_icmp6_send.patch
        bundle-405-t230c.mbox
        )

sha256sums=('3e9150065f193d3d94bcf46a1fe9f033c7ef7122ab71d75a7fb5a2f0c9a7e11a'
            'SKIP'
            'f0e2f7f738e1a639956e01ba7ef8d3df40ecb5c7586eb366bcd4af70049a7a3c'
            'SKIP'
            '2ac8818414beb7dbacbd3ad450c516e6ada804827132a7132f63b8189e5f5151'
            '41b9a64542befd2fea170776e8ec22a7d158dd3273633afc9b91662c448cd90a'
            '834bd254b56ab71d73f59b3221f056c72f559553c04718e350ab2a3e2991afe0'
            'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
            '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
            'ad1ee95f906f88d31fcdb9273cd08e02e8eda177449f0c98dc1bff8cbf1483c2'
            'b595a1588bafb3d732841cd1b73633970706914f57f2d215c9f1494212d13989'
            '8ad97e079eb8d0f75a6a996813feb71bb6494313bc9f090422ec6fc935df9319')
validpgpkeys=(
              'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
              '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
             )

_kernelname=${pkgbase#linux}

prepare() {
  cd "${srcdir}/${_srcname}"

  # add upstream patch
  patch -p1 -i "${srcdir}/patch-${pkgver}"

  # fix a race condition that allows to gain root
  # https://marc.info/?l=linux-netdev&m=148054660230570&w=2
  patch -p1 -i "${srcdir}/fix_race_condition_in_packet_set_ring.diff"

  # https://bugzilla.kernel.org/show_bug.cgi?id=189851
  patch -p1 -i "${srcdir}/net_handle_no_dst_on_skb_in_icmp6_send.patch"

  # add latest fixes from stable queue, if needed
  # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git

  # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
  # remove this when a Kconfig knob is made available by upstream
  # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
  patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
  
  # Add Crazy Cat Geniatech T230C support
  patch -p1 -i "${srcdir}/bundle-405-t230c.mbox"

...

[The rest is unchanged]

I didn't need to make any changes to the patch file and the kernel is compiling on my box at the moment.  It'll take some long time to finish and I'll report back later.

Edit: It broke.  More research needed, as they say...

In file included from ./include/media/media-device.h:27:0,
                 from ./include/media/v4l2-mc.h:22,
                 from ./include/media/tuner.h:23,
                 from drivers/media/usb/dvb-usb/cxusb.c:26:
drivers/media/usb/dvb-usb/cxusb.c: In function ‘cxusb_mygica_t230c_frontend_attach’:
drivers/media/usb/dvb-usb/cxusb.c:1483:16: error: ‘struct cxusb_state’ has no member named ‘stream_mutex’
  mutex_init(&st->stream_mutex);
                ^
./include/linux/mutex.h:97:16: note: in definition of macro ‘mutex_init’
  __mutex_init((mutex), #mutex, &__key);  \
                ^~~~~
drivers/media/usb/dvb-usb/cxusb.c:1484:4: error: ‘struct cxusb_state’ has no member named ‘last_lock’
  st->last_lock = 0;
    ^~
drivers/media/usb/dvb-usb/cxusb.c:1485:4: error: ‘struct cxusb_state’ has no member named ‘fe_read_status’
  st->fe_read_status = adap->fe_adap[0].fe->ops.read_status;
    ^~
drivers/media/usb/dvb-usb/cxusb.c:1486:41: error: ‘cxusb_read_status’ undeclared (first use in this function)
  adap->fe_adap[0].fe->ops.read_status = cxusb_read_status;
                                         ^~~~~~~~~~~~~~~~~
drivers/media/usb/dvb-usb/cxusb.c:1486:41: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [scripts/Makefile.build:290: drivers/media/usb/dvb-usb/cxusb.o] Error 1
make[3]: *** [scripts/Makefile.build:440: drivers/media/usb/dvb-usb] Error 2
make[2]: *** [scripts/Makefile.build:440: drivers/media/usb] Error 2
make[1]: *** [scripts/Makefile.build:440: drivers/media] Error 2
make: *** [Makefile:970: drivers] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

Last edited by azleifel (2017-02-04 22:43:44)

Offline

#10 2017-02-06 18:13:46

SilverStranger
Member
Registered: 2015-12-12
Posts: 2

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

Kernel was updated to 4.9.7-1. Issue not fixed sad.

Offline

#11 2017-02-06 21:20:49

azleifel
Member
Registered: 2007-10-28
Posts: 486

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

Nor does it look like anything got fixed in 4.9.8, so I'm sticking with the linux-lts kernel to keep my August T210s running.

Back to the T230Cs, did anyone try taking the v4l-dvb-git AUR package and changing

source=('git://linuxtv.org/media_build.git')

to

source=('git+https://bitbucket.org/CrazyCat/media_build.git')

It happily compiled against the linux-lts kernel here, though I'm not going install the package because I don't have the need.

If it actually does the job, don't forget that the T230C needs at least the "dvb-demod-si2168-d60-01.fw"firmware file installed (available from CrazyCat's media_build Dowloads page).

Offline

#12 2017-02-08 18:31:45

Vrob
Member
Registered: 2007-12-07
Posts: 42

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

That idea with the hacked v4l-dvb-git PKGBUILD got me intrigued after I almost gave up smile

It compiled with some warnings against the newly release 4.9.8, but sadly I get a ton of errors:

Feb 08 19:26:52 spinoza kernel: media: Linux media interface: v0.10
Feb 08 19:26:52 spinoza kernel: WARNING: You are using an experimental version of the media stack.
                                        As the driver is backported to an older kernel, it doesn't offer
                                        enough quality for its usage in production.
                                        Use it with care.
                                Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):

Feb 08 19:26:52 spinoza kernel: WARNING: You are using an experimental version of the media stack.
                                        As the driver is backported to an older kernel, it doesn't offer
                                        enough quality for its usage in production.
                                        Use it with care.
                                Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):

Feb 08 19:26:52 spinoza kernel: dvb-usb: found a 'Mygica T230C DVB-T/T2/C' in warm state.
Feb 08 19:26:53 spinoza kernel: ------------[ cut here ]------------
Feb 08 19:26:53 spinoza kernel: WARNING: CPU: 0 PID: 29183 at drivers/usb/core/hcd.c:1584 usb_hcd_map_urb_for_dma+0x42a/0x550 [usbcore]
Feb 08 19:26:53 spinoza kernel: transfer buffer not dma capable
Feb 08 19:26:53 spinoza kernel: Modules linked in: dvb_usb_cxusb(O+) dib0070(O) dvb_usb(O) rc_core(O) dvb_core(O) media(O) cfg80211 msr snd
Feb 08 19:26:53 spinoza kernel:  tpm fjes sch_fq_codel ip_tables x_tables ext4 crc16 jbd2 fscrypto mbcache algif_skcipher af_alg nls_iso885
Feb 08 19:26:53 spinoza kernel: CPU: 0 PID: 29183 Comm: systemd-udevd Tainted: G     U     O    4.9.8-1-ARCH #1
Feb 08 19:26:53 spinoza kernel: Hardware name: System manufacturer System Product Name/B150M-K D3, BIOS 0407 08/27/2015
Feb 08 19:26:53 spinoza kernel:  ffffc9000780b648 ffffffff813055b0 ffffc9000780b698 0000000000000000
Feb 08 19:26:53 spinoza kernel:  ffffc9000780b688 ffffffff8107eb0b 000006300780b6d0 ffff88023db40180
Feb 08 19:26:53 spinoza kernel:  0000000000000000 ffff88023bd99800 0000000000000002 ffff880248efa000
Feb 08 19:26:53 spinoza kernel: Call Trace:
Feb 08 19:26:53 spinoza kernel:  [<ffffffff813055b0>] dump_stack+0x63/0x83
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8107eb0b>] __warn+0xcb/0xf0
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8107eb8f>] warn_slowpath_fmt+0x5f/0x80
Feb 08 19:26:53 spinoza kernel:  [<ffffffff810eeaf1>] ? lock_timer_base+0x81/0xa0
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa0057cc9>] ? usb_alloc_urb+0x19/0x50 [usbcore]
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa005589a>] usb_hcd_map_urb_for_dma+0x42a/0x550 [usbcore]
Feb 08 19:26:53 spinoza kernel:  [<ffffffff810f046a>] ? try_to_del_timer_sync+0x5a/0x80
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa00568c5>] usb_hcd_submit_urb+0x335/0xb30 [usbcore]
Feb 08 19:26:53 spinoza kernel:  [<ffffffff810f05a0>] ? del_timer_sync+0x50/0x50
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa0058274>] usb_submit_urb+0x2f4/0x560 [usbcore]
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa0058a1e>] usb_start_wait_urb+0x6e/0x170 [usbcore]
Feb 08 19:26:53 spinoza kernel:  [<ffffffff810a6978>] ? finish_task_switch+0x78/0x1f0
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa0058f6d>] usb_bulk_msg+0xbd/0x160 [usbcore]
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa06ceea1>] dvb_usb_generic_rw+0x191/0x2f0 [dvb_usb]
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa072f36e>] init_module+0x5d836e/0x5dae37 [dvb_usb_cxusb]
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa0731357>] init_module+0x5da357/0x5dae37 [dvb_usb_cxusb]
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa06ce5a1>] dvb_usb_device_exit+0x91/0xb0 [dvb_usb]
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa06ce5f6>] dvb_usb_device_power_ctrl+0x36/0x40 [dvb_usb]
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa06ce864>] dvb_usb_device_init+0x264/0x710 [dvb_usb]
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8129172e>] ? kernfs_link_sibling+0x8e/0xc0
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa072f2b9>] init_module+0x5d82b9/0x5dae37 [dvb_usb_cxusb]
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa005d459>] usb_probe_interface+0x159/0x2d0 [usbcore]
Feb 08 19:26:53 spinoza kernel:  [<ffffffff81452463>] driver_probe_device+0x223/0x430
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8145274f>] __driver_attach+0xdf/0xf0
Feb 08 19:26:53 spinoza kernel:  [<ffffffff81452670>] ? driver_probe_device+0x430/0x430
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8144ff9c>] bus_for_each_dev+0x6c/0xc0
Feb 08 19:26:53 spinoza kernel:  [<ffffffff81451bae>] driver_attach+0x1e/0x20
Feb 08 19:26:53 spinoza kernel:  [<ffffffff814515d0>] bus_add_driver+0x170/0x270
Feb 08 19:26:53 spinoza kernel:  [<ffffffff81453110>] driver_register+0x60/0xe0
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa005bfa1>] usb_register_driver+0x81/0x140 [usbcore]
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa0157000>] ? 0xffffffffa0157000
Feb 08 19:26:53 spinoza kernel:  [<ffffffffa015701e>] init_module+0x1e/0x1000 [dvb_usb_cxusb]
Feb 08 19:26:53 spinoza kernel:  [<ffffffff81002190>] do_one_initcall+0x50/0x180
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8117f5de>] do_init_module+0x5f/0x1f1
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8110d2e4>] load_module+0x2384/0x2a50
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8110a1c0>] ? symbol_put_addr+0x50/0x50
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8121208b>] ? vfs_read+0x11b/0x130
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8110dc24>] SyS_finit_module+0xe4/0x120
Feb 08 19:26:53 spinoza kernel:  [<ffffffff81003b64>] do_syscall_64+0x54/0xc0
Feb 08 19:26:53 spinoza kernel:  [<ffffffff8160a96b>] entry_SYSCALL64_slow_path+0x25/0x25
Feb 08 19:26:53 spinoza kernel: ---[ end trace 2269061e08062ec2 ]---
Feb 08 19:26:53 spinoza kernel: dvb-usb: recv bulk message failed: -11
Feb 08 19:26:53 spinoza kernel: dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
Feb 08 19:26:53 spinoza kernel: dvbdev: DVB: registering new adapter (Mygica T230C DVB-T/T2/C)
Feb 08 19:26:53 spinoza kernel: usb 1-9: media controller created
Feb 08 19:26:53 spinoza kernel: dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
Feb 08 19:26:53 spinoza kernel: dvb-usb: recv bulk message failed: -11
Feb 08 19:26:53 spinoza kernel: si2168: probe of 5-0064 failed with error -121
Feb 08 19:26:53 spinoza kernel: dvb-usb: no frontend was attached by 'Mygica T230C DVB-T/T2/C'
Feb 08 19:26:53 spinoza kernel: rc rc0: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:14.0/usb1/1-9/rc/rc0
Feb 08 19:26:53 spinoza kernel: Registered IR keymap rc-total-media-in-hand-02
Feb 08 19:26:53 spinoza kernel: input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:14.0/usb1/1-9/rc/rc0/input17
Feb 08 19:26:53 spinoza kernel: dvb-usb: schedule remote query interval to 100 msecs.
Feb 08 19:26:55 spinoza kernel: dvb-usb: bulk message failed: -110 (2/0)
Feb 08 19:26:55 spinoza kernel: dvb-usb: Mygica T230C DVB-T/T2/C successfully initialized and connected.
Feb 08 19:26:55 spinoza kernel: usbcore: registered new interface driver dvb_usb_cxusb
Feb 08 19:26:57 spinoza kernel: dvb-usb: bulk message failed: -110 (1/0)

Last line gets repeated every couple seconds until I unplug the stick.

Next step will be compiling against linux-lts...

Offline

#13 2017-02-08 22:27:29

Vrob
Member
Registered: 2007-12-07
Posts: 42

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

Good news everyone! Finally, the stick works and as far as I can tell from this short time of testing it feels pretty stable. I've only tried DVB-T2 yet, DVB-C has to wait 'till tomorrow wink
Currently running linux-lts from core and the modified v4l-dvb-git package with firmware from CrazyCats page.

So for the sake of simplicity and to help other users that want to get a TL;DR from this thread I'll try my best at giving step-by-step instructions. All credit for figuring out this whole mess goes to @azleifel smile Thanks you so much!

  1. Unplug your device

  2. Install linux-lts and linux-lts-headers

  3. Reboot to linux-lts. At the time of writing this is "4.4.47-1-lts"

  4. Download and extract the latest snapshot of v4l-dvb-git from AUR (https://aur.archlinux.org/cgit/aur.git/ … git.tar.gz)

  5. Modify the PKGBUILD, replacing the original source array with the following

    source=('git+https://bitbucket.org/CrazyCat/media_build.git')
  6. Build and install the modified version of v4l-dvb-git (this is going to take some time)

  7. Download and extract CrazyCats tarball of firmwares

    https://bitbucket.org/CrazyCat/media_build/downloads/dvb-firmwares.tar.bz2
  8. As root, copy these two files dvb-demod-si2168-d60-01.fw and dvb-tuner-si2141-a10-01.fw to /usr/lib/firmware/

  9. Reboot

  10. While monitoring journalctl -kf Plug in your device. The kernel should recognize it and load the appropriate firmware and modules

Hope that helps!

Just in case that the method of replacing the source array doesn't work anymore, here's the PKGBUILD and .install files I used:
PKGBUILD

# Maintainer: Olaf Bauer <obauer@freenet.de>

_kernver="$(uname -r)"
pkgname=v4l-dvb-git
pkgver=r660.a9c762b
pkgrel=3
pkgdesc="V4L-DVB device drivers"
arch=('i686' 'x86_64')
url="http://linuxtv.org/"
license=('GPL')
makedepends=('linux-headers' 'kmod' 'perl-proc-processtable' 'patchutils' 'git' 'wget')
options=(!makeflags)
install=v4l-dvb.install
source=('git://linuxtv.org/media_build.git')
md5sums=('SKIP')

pkgver() {
  cd "$srcdir/media_build"
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

prepare() {
  cd "${srcdir}/media_build"
  make download untar
}

build() {
  cd "${srcdir}/media_build"
  make KERNELRELEASE=${_kernver}
}

package() {
  cd "${srcdir}/media_build"
  sed -i '/^[^#].*depmod/s/^/#/' v4l/Makefile.media
  make KERNELRELEASE=${_kernver} KDIR26="/lib/modules/${_kernver}/updates" \
       DESTDIR="${pkgdir}/usr" FW_DIR="${pkgdir}/usr/lib/firmware/updates/" install
}

v4l-dvb.install

post_install() {
    echo ">>> Running depmod..."
    depmod
}

post_upgrade() {
    echo ">>> Running depmod..."
    depmod
}

post_remove() {
    echo ">>> Running depmod..."
    depmod
}

Offline

#14 2017-04-20 12:35:08

LessWire
Member
From: Bavaria
Registered: 2010-06-14
Posts: 46

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

Hello folks,

i had the same issues with the 'August T210' dvb-t stick, dmesg says 'Mygica T230 DVB-T'.
It didn't run with Arch kernel versions > 4.8 (frontend not found, bulk error see above).
i used 4.8.13 to keep it working.

So far the history wink

Yesterday i fetched the 4.10.11 sources from kernel.org. I built my own kernel, my .config includes only modules which my hardware needs. For the frontend si2168 and dib0070 modules are important.

I didn't patch anything, i used the pure vanilla kernel. Compiled and installed it and then i the reboot.

Surprise:

[    3.165532] dvb-usb: found a 'Mygica T230 DVB-T/T2/C' in warm state.
[    3.408507] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[    3.408585] dvbdev: DVB: registering new adapter (Mygica T230 DVB-T/T2/C)
[    3.408872] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[    3.421209] usb 1-7: DVB: registering adapter 0 frontend 0 (Silicon Labs Si2168)...
[    3.421213] dvbdev: dvb_create_media_entity: media entity 'Silicon Labs Si2168' registered.
[    3.421572] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:14.0/usb1/1-7/input/input6
[    3.422386] dvb-usb: schedule remote query interval to 100 msecs.
[    3.422471] dvb-usb: Mygica T230 DVB-T/T2/C successfully initialized and connected.
[    3.422495] usbcore: registered new interface driver dvb_usb_cxusb

So 4.10.11 runs fine with this stick without any patches while the same version of the Arch kernel doesn't. Maybe only a config problem, i don't know.

Greets, LW

Offline

#15 2017-09-08 19:26:09

beta990
Member
Registered: 2011-07-10
Posts: 207

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)

Broken here, just don't buy this device, it sucks.

Offline

#16 2017-09-08 19:58:14

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,739

Re: SOLVED: Geniatech T230C driver support (also: how to use media_build?)


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

Board footer

Powered by FluxBB