Die hier verwendeten Anpassungen an der YaVDR 0.5 Version basieren auf eigenen vorlieben und / oder Fehlern beim tägl. Gebrauch.
Wenn Aufnahmen immer wieder stehen bleiben oder sich das ganze VDR-System aufhängt, dann kommen evtl. Fehlermeldungen im Syslog:
ring buffer overflows…
Bei mir kamen die Probleme von meiner Tevi S480 Dual Tuner DVB-Karte.
Hier hat sich immer der 2. Tuner verabschiedet.
Hier müssen dann die Buffer-Werte angepasst werden.
apt-get install build-essential vdr-dev dpatch libssl-dev fakeroot mercurial cdbs apt-get install libbz2-dev apt-get install dpkg-dev devscripts expect wget gettext dpatch apt-get build-dep vdr-dev
Nun dieses:
stop vdr cd /usr/src apt-get source vdr-plugin-xvdr cd vdr-plugin-xvdr-<VERSION> vi src/live/livequeue.c
Zeile mit Inhalt wie folgt anpassen.
FD_SET(fd, &set); 121 121 122 122 to.tv_sec = 0; 123 - to.tv_usec = 10 * 1000; 123 + to.tv_usec = 100 * 1000;
vi src/live/livestreamer.c
Zeile mit Inhalt wie folgt anpassen.
cLiveStreamer::cLiveStreamer(uint32_t timeout) 53 53 : cThread("cLiveStreamer stream processor") 54 - , cRingBufferLinear(MEGABYTE(1), TS_SIZE*2, true) 54 + , cRingBufferLinear(MEGABYTE(5), TS_SIZE*2, true) 55 55 , m_scanTimeout(timeout) 56 56 { 57 57 m_Channel = NULL; ... ... @@ -85,7 +85,7 @@ 85 85 if(m_scanTimeout == 0) 86 86 m_scanTimeout = XVDRServerConfig.stream_timeout; 87 87 88 - SetTimeouts(0, 100); 88 + SetTimeouts(0, 50); 89 89 }
VDR-Pakete neu erstellen und neue Pakete installieren:
dpkg-buildpackage -rfakeroot -us -uc -b -d cd .. dpkg -i vdr-plugin-xvdr_<VERSION>
DIESE NUN FOLGENDEN ANGABEN HABEN NICHTS GEBRACHT. MAN KANN ES ABER DENNOCH TESTEN!!
Danach dieses:
stop vdr cd /usr/src apt-get source vdr cd vdr-<VERSION> dpatch apply-all
Nun die Buffer-Werte anpassen und die VDR-Pakete neu erstellen.
vi recorder.c
Zeile mit Inhalt wie folgt anpassen:
#define RECORDERBUFSIZE MEGABYTE(100)
vi dvbplayer.c
Zeile mit Inhalt wie folgt anpassen:
#define PLAYERBUFSIZE MEGABYTE(50)
dpkg-buildpackage -rfakeroot -us -uc -b -d
Nun noch den VDR, mit den angepassten Werten, installieren (ACHTUNG: Die Versionsnummern können abweichen):
cd .. dpkg -i vdr-dev_1.7.27-5yavdr1~precise_all.deb vdr-plugin-dvbhddevice_1.7.27-5yavdr1~precise_amd64.deb vdr-plugin-dvbsddevice_1.7.27-5yavdr1~precise_amd64.deb vdr-plugin-epgtableid0_1.7.27-5yavdr1~precise_amd64.deb vdr-plugin-examples_1.7.27-5yavdr1~precise_amd64.deb
Ich musste noch danach das Skin wieder auf das Alte („anthra_1920_FSE-0.1.0a“) setzen.
Man kann normalerweise einen Tuner über den VDR Startparameter -D <NUM>
deaktivieren.
Wenn aber das Plugin „dynamite“ verwendet wird, dann setzt dieses Plugin diesen Startparameter ausser Gefecht.
Hier müssen für das Plugin „udev“ Regeln angelegt werden. Die Regeln findet man in /etc/udev/rules.d
.
Eine Regel muss ein Device eindeutig beschreiben. Dafür kann man mit folgendem Befehl div. Eigenschaften eines Devices ausgeben.
Das folgende Beispiel zeigt die Eigenschaften einer DVB-Karte:
udevadm info --query=all --name=/dev/dvb/adapter0/frontend0
Die Ausgabe sieht etwa so aus:
P: /devices/pci0000:00/0000:00:1c.0/0000:02:00.3/usb4/4-1/dvb/dvb2.frontend0 N: dvb/adapter2/frontend0 E: DEVNAME=/dev/dvb/adapter2/frontend0 E: DEVPATH=/devices/pci0000:00/0000:00:1c.0/0000:02:00.3/usb4/4-1/dvb/dvb2.frontend0 E: DVBMODULE=dvb_usb_dw2102 E: DVB_ADAPTER_NUM=2 E: DVB_DEVICE_NUM=0 E: DVB_DEVICE_TYPE=frontend E: ID_PATH=pci-0000:02:00.3-usb-0:1 E: ID_PATH_TAG=pci-0000_02_00_3-usb-0_1 E: MAJOR=212 E: MINOR=11 E: SUBSYSTEM=dvb E: TAGS=:udev-acl: E: UDEV_LOG=3 E: USEC_INITIALIZED=12318394 E: dynamite_attach=no
Für die Udev-Regel verwendet man am besten den „DEVPATH“, der ist am eindeutigsten.
vi /etc/udev/rules.d/11-dynamite.rules
Der Inhalt ist also wie folgt:
#Tuner 1 der Tevii S480 abschalten ACTION=="add", SUBSYSTEM=="dvb", ENV{DVB_DEVICE_TYPE}=="frontend", DEVPATH=="/devices/pci0000:00/0000:00:1c.0/0000:02:00.3/usb4/4-1/dvb/dvb2.frontend0", ENV{dynamite_attach}="no"
Nach dem nächsten Neustart wird der 2. Tuner nicht aktiviert und somit im VDR auch nicht verwendet.