Latest si2168 for OpenSuse?

People tell me that 3.16 is pretty old.

tvburk:~ # lsmod |grep si2
si2157 13435 1
si2168 17900 1
i2c_mux 12896 2 rtl2832,si2168
tvburk:~ # modinfo si2168
filename: /lib/modules/3.16.7-35-desktop/kernel/drivers/media/dvb-frontends/si2168.ko
firmware: dvb-demod-si2168-02.fw
license: GPL
description: Silicon Labs Si2168 DVB-T/T2/C demodulator driver
author: Antti Palosaari <crope@iki.fi>
srcversion: B899649410D2DD77598C4D3
alias: i2c:si2168
depends: i2c-mux
intree: Y
vermagic: 3.16.7-35-desktop SMP preempt mod_unload modversions
tvburk:~ #

And you have Problems or what is your Question?

Does you Card not working?

Sorry about that. Yes I probably would not ask unless I had problems. :slight_smile: It is my TV Server. tvheadend 4.0.7 on OpenSuse 13.2, with one SI2168 tuner for DVB.C and two RTL-based tuners for DVB-T. It has been running fine for several months and then suddenly started acting up after I updated OpensUSE around April 3. The crash seems to be related to the si2168, other people tell me they are running the same kernel module, but a more recent version. That is why I ask.

Hi
Is the kernel-firmware up to date… maybe rollback to the previous version and see if it fixes it…?

Thing is that the card frimware (I assume that that is what you mean) is rather old. It is also not installed by default, you need to download it from Antti Palosaaris website. There are a bunch of more recent fw files there, but the kernel driver refuses to load them.

http://palosaari.fi/linux/v4l-dvb/firmware/Si2168/

You need to download:

firmware: dvb-demod-si2168-02.fw

Copy the file to /lib/firmware

I already have. Six months ago. When I look at the driver messages in dmesg they do not correspond to what I see in the driver source, so I wonder if I have a mismatch? Anyway, this system has been working fine for months, the started acting up after a zypper up

OK. To elaborate, the sources in:
/usr/src/linux-3.16.7-29/drivers/media/dvb-frontends/si2168.c
/usr/src/linux-3.16.7-35/drivers/media/dvb-frontends/si2168.c

Are identical, but different from:
http://lxr.free-electrons.com/source/drivers/media/dvb-frontends/si2168.c

Hi
That’s normal, I would expect things to change from major kernel to major kernel, new features/compatibility…

For example, see my commits to smi2021 because things have changed on the => 4.5 kernels…
https://github.com/Manouchehri/smi2021/commit/1ce8f4b21c5d0ba1d830ad3a7dd87293a1ecdfa0
https://github.com/Manouchehri/smi2021/commit/c0b8ceb3da4d662c68dfd65c10a4ea3efc167cb8
https://github.com/Manouchehri/smi2021/commit/c0b8ceb3da4d662c68dfd65c10a4ea3efc167cb8

So all updates and patches have applied ok, I only ask this because of this thread where some patches couldn’t be applied;
http://forums.opensuse.org/showthread.php?t=517104

I would assume all patches have applied ok?

tvburk:~ # zypper lpRetrieving repository 'packman-essentials' metadata ......................[done]
Building repository 'packman-essentials' cache ...........................[done]
Retrieving repository 'packman-multimedia' metadata ......................[done]
Building repository 'packman-multimedia' cache ...........................[done]
Retrieving repository 'openSUSE-13.2-Update' metadata ....................[done]
Building repository 'openSUSE-13.2-Update' cache .........................[done]
Loading repository data...
Reading installed packages...


Repository           | Name              | Category | Severity | Status | Summ->
---------------------+-------------------+----------+----------+--------+-------
openSUSE-13.2-Update | openSUSE-2016-446 | security | moderate | needed | Secu->
tvburk:~ #

So, you mean I should backrev the kernel? From 3.16.7-35-desktop to 3.16.7-29-desktop? How do I do that?

Hi
You could try and see if it helps, then raise a bug, but think it’s the kernel-firmware that may be creating the issue?

Anyway, to rollback;


zypper se -s kernel-desktop
zypper in kernel-desktop = <version>

OK. Will try that and no, I have no idea what have avtualy caused it, but it is definitely that adapter that causes it, as disabling it makes the problem go away. Someone in the tvheadend forums suggested that I try the latest tuner firmware, but that did not load, but the cause for this is that the si2168.ko that ships with 13.2 os rather old and has too short a timeout to download the later and larger firmware files.

So I did actually try a more recent kernel driver.

https://github.com/torvalds/linux/tree/master/drivers/media/dvb-frontends.
Put those in a separate dir and created a makefile:

ccflags-y += -I$(srctree)/drivers/media/dvb-core/
ccflags-y += -I$(srctree)/drivers/media/tuners/
obj-m = si2168.o
KVERSION = $(shell uname -r)
all:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) cleant
Then make to make si2168.ko. Then copy it:
cp si2168.ko /lib/modules/3.16.7-35-desktop/kernel/drivers/media/dvb-frontends/si2168.ko
Then copy all available fw-files to /lib/firmware, ie:

-rw-r–r-- 1 root root 2728 Oct 28 20:27 /lib/firmware/dvb-demod-si2168-02.fw
-rw-r–r-- 1 root root 28656 Apr 13 22:50 /lib/firmware/dvb-demod-si2168-a20-01.fw
-rw-r–r-- 1 root root 17576 Apr 13 22:50 /lib/firmware/dvb-demod-si2168-a30-01.fw
-rw-r–r-- 1 root root 6919 Apr 10 08:31 /lib/firmware/dvb-demod-si2168-b40-01.fw

Rebooted:
tvburk:~ # dmesg|grep 2168
8.550497] si2168 13-0064: Silicon Labs Si2168 successfully attached
8.559942] usb 3-4: DVB: registering adapter 2 frontend 0 (Silicon Labs Si2168)…
16.739810] si2168 13-0064: found a ‘Silicon Labs Si2168-B40’
16.748646] si2168 13-0064: downloading firmware from file ‘dvb-demod-si2168-b40-01.fw’
16.950927] si2168 13-0064: firmware version: 4.0.11

But… linuxdvb: Silicon Labs Si2168 : DVB-C #0 - poll TIMEOUT and no signal…

Antti Palosaari, one of the LinuxTV developers suggested to upgrade the kernel or install media_build. What do you think.

Or simply upgrade to Leap 42.1?

On Thu 14 Apr 2016 06:56:01 AM CDT, AndersG wrote:

Or simply upgrade to Leap 42.1?

Hi
Hmmmm, but it was working, tvheadend 4.0.7 and the 3.16 kernel… it’s
not a hardware issue, change the card slot it’s in…?

Moving forward is always a good thing, once on the Leap path things
should be easier to upgrade…


Cheers Malcolm °¿° LFCS, SUSE Knowledge Partner (Linux Counter #276890)
SUSE Linux Enterprise Desktop 12 SP1|GNOME 3.10.4|3.12.53-60.30-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

It is an USB Dongle and the position has not changed. Anyway, I am following this right now: http://www.unixmen.com/how-to-upgrade-to-opensuse-42-1-from-opensuse-13-2/

On Thu 14 Apr 2016 01:46:03 PM CDT, AndersG wrote:

It is an USB Dongle and the position has not changed. Anyway, I am
following this right now: http://tinyurl.com/z8efmeq

Hi
Ahh ok, like my Sabrent device, so did you try a different USB port?

Had a quick breeze through the link, looks fine… Good luck :slight_smile:


Cheers Malcolm °¿° LFCS, SUSE Knowledge Partner (Linux Counter #276890)
SUSE Linux Enterprise Desktop 12 SP1|GNOME 3.10.4|3.12.53-60.30-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

No, I did not as the troubles started without me changing ports. I have three tuner sticks. Two DVB-T cheap chinese ones and a Triplestick 292, but DVB-C sticks are far less common.

http://blog.palosaari.fi/2014/04/naked-hardware-15-pctv-triplestick-292e.html

Upgraded, slightly underwhelmed of the ease of upgrade… Will post a separate thread.

Just FYI Malcolm: You suggested USB elsewhere and there definitely seems to be USB-related. Moreover, others have reported hangs with the new kernel. anyway, this unit has an Asus z97P motherboard that has:
2 USB 2 ports
4 USB 3 ports
2 USB 3 ports on the front, attached to a connector on the motherboard that says it is for an USB3 “module”. I assume that this module is actually a small hub.

I will try rearranging and see what happens. Only drawback is that I need to change ONE thing at a time and leave running. Last night it stayed up long enough to record “Jurassic Park”…