IMHO the box must not have specific features. In my case it just had to have one free PCI slot (long).
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.
As my tablet is quite often in the living room, it is used to run “VDR Manager”.
Base installation was done via an USB stick with ubuntu-16.04.2-server-amd64.iso.
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.
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
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:
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).
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 !