Hardware PC, PCI Card, Tablet

PC

IMHO the box must not have specific features. In my case it just had to have one free PCI slot (long).

PCI Card

I use a Technotrend S2300 Premium which I swapped from my broken PC. This card is a so called “full-featured” DVB-S card. These cards have a MPEG hardware decoder, which results in a minimal CPU load when recording. Nowadays a budget card should work just fine.

Tablet

As my tablet is quite often in the living room, it is used to run “VDR Manager”.

Linux-Server Side

Basesystem

Base installation was done via an USB stick with ubuntu-16.04.2-server-amd64.iso.

Driver

The DVB PCI card ist visible e.g. via lspci:

jojo:/root>>> lspci | grep Multi
11:0a.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)

These are the related kernel modules:

jojo:/root>>> lsmod | grep dvb
dvb_ttpci             114688  8
saa7146_vv             69632  1 dvb_ttpci
ttpci_eeprom           16384  1 dvb_ttpci
saa7146                32768  2 saa7146_vv,dvb_ttpci
dvb_core              122880  2 dvb_ttpci,stv0299

This should work out of the box - but it didn’t. These error messages turned up in dmesg:

[   26.651465] av7110 0000:11:0a.0: Direct firmware load for dvb-ttpci-01.fw failed with error -2
[   26.651472] dvb-ttpc:i could not load firmware, file not found: dvb-ttpci-01.fw
[   26.651660] dvb-ttpci: usually this should be in /usr/lib/hotplug/firmware or /lib/firmware
[   26.651831] dvb-ttpci: and can be downloaded from http://www.linuxtv.org/download/dvb/firmware/

Google told me, that the missing firmware file should be contained in the package linux-firmware-nonfree. This package is no longer part of Ubuntu (licence problems) but I could find an suitable repository.

VDR

I do not want VDR to add new stations automatically. Instead I stripped the channels.conf heavily. Now only stations which are relevant for me are listed.

UpdateChannels = 3

Plugins

VDR provides a plugin-mechanism, which is fine for extending the functionality. As I wanted to use the Android app “VDR Manager” I needed the corresponding plugin on the server side. Unfortunately there is no such package in the Ubuntu repository:

jojo:/root>>> apt-cache search vdr | grep -i plugin | grep -i manag

At this point I purged all VDR related packages installed so far and added Andrey Pavlenko’s PPA to my system:

https://launchpad.net/~aap/+archive/ubuntu/vdr-testing?field.series_filter=xenial

The VDR is slightly newer (2.3 vs. 2.2) and there is vdr-plugin-vdrmanager. Installing was fine, everything started up, but no recording was possible.

I had to fix two things. First the /etc/vdr/channels.conf. This contained entries I wasn’t even able to read (cyrillic) not making for me. So I ran:

jojo:/root>>> w_scan -f s -s S19E2 > channels.conf

which generated a suitable channels.conf for ASTRA 19.2.

But when started, vdr signalled an error:

ERROR: no DiSEqC parameters found for channel 1 (tagesschau24)

I found in /etc/vdr/setup.conf:

DiSEqC = 1

So I had to change this to

DiSEqC = 0

as I do not have a Digital Satellite Equipment Control device.

Now EPG data was fetched and I could start a recording.

Shutdown + Wakeup

The new VDR box shall be able to wake up at an given point of time and start recording. I had this feature in my broken box, utilizing nvram-wakeup because back in 2005 a lot of buggy ACPI BIOS implementations were out, including mine. Now with the new box I wanted to use ACPI (nvram-wakeup is still available but there is no configuration available for the ThinkStation-BIOS).

Basics

This turned out to be not really straightforward. I wanted to utilize ACPI Wakeup from S5, but all testing and reconfiguring failed. More precisely: The box suspended fine, but woke up a few seconds later. I tested like so:

jojo:/root>>> rtcwake -m mem --date +5min # Suspend to RAM aka S3. Box woke up fine.
jojo:/root>>> rtcwake -m disk --date +5min # Suspend to disk aka S5. Box woke up after a few seconds.
jojo:/root>>> rtcwake -m off --date +5min # Box did not wake up.

I then inspected the ThinkStation BIOS thoroughly but to no avail. I switched off all USB related wake up triggers in the BIOS. I found that a BIOS update was available, but Lenovo’s instructions all relied on having a windows box, which I do not have.

Finally it turned out that for some reason

jojo:/root>>> rtcwake -m off --date +5min # Box woke up as intended.

now works !

Implementation

Android-Client

Version: 26.6.2017