Kernel modules missing for the PCTV 292e DVB stick

Hi @sam_nazarko,

just tested the June kernel. Unfortunately it seems that MEDIA_SUBDRV_AUTOSELECT (see above) is not enabled which means CONFIG_DVB_SI2168 wasn’t set automatically. Can you please set it manually for the next release? I’d be happy to give a test build a spin should you be in a position to kick out another build before your summer leave.

Cheers

MEDIA_SUBDRV_AUTOSELECT was broken in my testing. I’ll revisit, but remember SI2168 isn’t included for a reason. Give me a couple of days.

Cheers,

Sam

but remember SI2168 isn’t included for a reason.

That’s news to me, at least for this year’s sprint of backporting efforts. In our recent discussion you gave me the impression that you think it’s unavailable, not excluded on purpose. Yes, our first attempt ended a year ago with the DTV_CLEAR failed error being unresolved, but I wanted to see whether the current revised (?) backport attempt might have fixed this issue as well.

Give me a couple of days.

Sure! Thanks.

VIDEO_CX231XX_DVB selects SI2168, i.e:

 │     -> Multimedia support (MEDIA_SUPPORT [=m])                                                                                       │  
  │ (1)   -> Media USB Adapters (MEDIA_USB_SUPPORT [=y])                                                                                 │  
  │         -> Conexant cx231xx USB video capture support (VIDEO_CX231XX [=n]) 

But VIDEO_CX231XX_DVB doesn’t seem to be possible to enable presently.

By unavailable, I mean not available for 3.14. There are drivers in the tree that require newer kernels to be built, and media_build will only allow what’s buildable to be selected by default.

Sam

Not sure I understand. Do you say that the Si2168 can’t be set explicitly and instead only via the cx231xx which doesn’t have anything to do with the stick in question, AFAIK? I mean, the cx231xx should just be another “user” of the Si2168, like the em28xx.

At some point I should really try to build my own kernel and or media_build tree to facilitate debugging. I know my way around Debian’s kernel build but I don’t really have a clear image on how OSMC does it. I presume you’re cross-compiling on a x86-64 system? Could you post some rundown of how to compile the kernel and media_tree build “the OSMC way”?

With CONFIG_MEDIA_SUBDRV_AUTOSELECT, the problems start to creep in:

/home/sam/Code/Git/osmc-org/vero3/linux/media_build/v4l/tvp5150.c: In function 'tvp5150_init':
/home/sam/Code/Git/osmc-org/vero3/linux/media_build/v4l/tvp5150.c:1334:13: warning: implicit declaration of function 'devm_gpiod_get_optional' [-Wimplicit-function-declaration]
  pdn_gpio = devm_gpiod_get_optional(&c->dev, "pdn", GPIOD_OUT_HIGH);
             ^
/home/sam/Code/Git/osmc-org/vero3/linux/media_build/v4l/tvp5150.c:1334:53: error: 'GPIOD_OUT_HIGH' undeclared (first use in this function)
  pdn_gpio = devm_gpiod_get_optional(&c->dev, "pdn", GPIOD_OUT_HIGH);
                                                     ^
/home/sam/Code/Git/osmc-org/vero3/linux/media_build/v4l/tvp5150.c:1334:53: note: each undeclared identifier is reported only once for each function it appears in

Only for quick testing. The OSMC way on an OSMC device is just:

sudo apt-get install build-essential git
git clone GitHub - osmc/osmc: OSMC (Open Source Media Center) is a free and open source media center distribution
cd osmc/package/kernel-osmc
make vero364

With CONFIG_MEDIA_SUBDRV_AUTOSELECT, the problems start to creep in

Yeah, I can imagine that. However, that’s not what we’re after here anyway, it was just one way to get the Si2168 (via CONFIG_DVB_SI2168) configured. I would only enable that single one since it seems to be all that’s missing as far as I can tell.

The OSMC way on an OSMC device

Ah, nice. So that includes the media_build as well? I wonder if my little precious is going to melt down given the current >30°. I’ll give it a spin anyway…

No – the device shouldn’t lock up. You may wish to stop Kodi for a faster build.

Hint: added a missing all important “not” to my previous post :man_facepalming:

Well, what can I say: I compiled the kernel, set CONFIG_DVB_SI2168 and recompiled - the stick works! No compile errors, no dreaded DTV_CLEAR failed errors as last year! I still get continuity errors while watching but I presume these being a result of bad signal strength or SNR.

That said, I think you can (and should) safely add CONFIG_DVB_SI2168 to mb.config.

Cheers

Okay, that’s very interesting.
How did you edit the config?

If it was trivial, can you just send me your mb.config so I can diff the changes? Happy to include this in the next update.

You can do diff -u oldmb.config brevillio.config to see what’s changed. If the changes are just a one liner (or a couple of new dependencies), then happy days.

I’ll be the first to admit that media_build is complex, and I’m not very familiar with it.

Cheers,

Sam

Hi Sam,

since I don’t know how you generated mb.config in the first place (and the usual make menuconfig didn’t work out) I literally just added CONFIG_DVB_SI2168=m to the end of its DVB-T section. That’s all I wanted to test so that’s all I did:

--- mb.config	2018-06-10 11:50:55.458993076 +0200
+++ mb.config	2018-06-09 19:39:38.324842741 +0200
@@ -652,6 +652,7 @@
 CONFIG_DVB_AS102_FE=m
 CONFIG_DVB_ZD1301_DEMOD=m
 CONFIG_DVB_GP8PSK_FE=m
+CONFIG_DVB_SI2168=m

 #
 # DVB-C (cable) frontends

I know that upstream states that “DVB_SI2168: Requires at least kernel 4.7.0” but, whatever you did in terms of backports, for me it works - finally :smile:

FYI, one minor oddity: the mux scan only seems to work the first time after you plugged in the stick. A second scan doesn’t return any services. Just re-plug the stick and scan if needed. Fortunately, this doesn’t affect normal tuning.

Cheers

Thanks for testing. I’ve added your change now, so it should be included in the next stable update. I also tested a quick build and can see that the kernel module is being built.

I used make menuconfig to build up a configuration.

Unfortunately the dependencies are still not quite right there: for example meson-ir had to be hacked to get it to build properly, despite it supposedly not being compatible.

It’s probably easy to fix (just DTV_TUNE to a high frequency to reset); but I don’t have the hardware to reproduce.

Cheers

Sam

Thanks Sam, it’s been quite a journey :smile:

I got a Vero 4K yesterday and was wondering, why my TechnoTrend TT-TVStick CT2-4400 isn‘t working. Am i right, that my DVB stick requires the same missing kernel module as the PCTV 292e stick and therefore isn‘t working?

https://www.linuxtv.org/wiki/index.php/TechnoTrend_TT-TVStick_CT2-4400

Your stick rather needs three different ones, two of them being discussed in this thread. I recommend to wait for the next OSMC release, reboot and then plug in your stick. Use dmesg to see the latest system messages and check how far your stick got recognized and initialized. If it doesn’t work right away, take the relevant log messages and open a new thread in this forum.

HTH

1 Like

FYI, my TechnoTrend CT2-4400v2 is working with the stretch-devel update from yesterday :+1:

1 Like

Nice, I was hoping that the newly supported Si2168 would enable a great number of previously unsupported sticks. Great to have at least one confirmed now :+1:

1 Like

Good stuff — glad we got there eventually

Sam

This stick is now working my Vero 4K, including HD. Previously, it did not seem to be even recognised.