====== Anpassungen ====== Die hier verwendeten Anpassungen an der YaVDR 0.5 Version basieren auf eigenen vorlieben und / oder Fehlern beim tägl. Gebrauch. ===== Ring Buffer Overflows ===== 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- 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_ **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- 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. ===== DVB-Tuner abschalten ===== Man kann normalerweise einen Tuner über den VDR Startparameter ''-D '' 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.