Autor Thema: Erkennung unter Tvheadend auf TP-Link TL-WDR4900 v1 router  (Gelesen 3107 mal)

soulrebell

  • Newbie
  • *
  • Beiträge: 22
    • Profil anzeigen
Erkennung unter Tvheadend auf TP-Link TL-WDR4900 v1 router
« am: Oktober 21, 2017, 09:01:57 Vormittag »
Hi,
ich möchte mit meinem Tvheadend Server auf meinem Router TP-Link Archer C7 AC1750 umziehen.
Derzeit versuche ich das zu Testzwecken auf meinem alter Router TP-Link TL-WDR4900  unter Lede zu realisieren.
Der Sundteck Stick wird vom System erkannt
siehe folgende Ausgabe von /opt/bin/mediaclient -e

**** List of Media Hardware Devices ****
device 0: [MediaTV Pro III (EU)]  DVB-C, DVB-T, DVB-T2, ANALOG-TV, FM-RADIO, REMOTE-CONTROL, OSS-AUDIO, RDS
  [INFO]:
     STATUS: STANDBY
  [BUS]:
     ID: 1-1.1
  [SERIAL]:
     ID: U150218191754
  [DVB-C,DVB-T,DVB-T2]:
     FRONTEND: /dev/dvb/adapter0/frontend0
     DVR: /dev/dvb/adapter0/dvr0
     DMX: /dev/dvb/adapter0/demux0
  [ANALOG-TV]:
     VIDEO0: /dev/video0
     VBI0: /dev/vbi0
  [FM-RADIO]:
     RADIO0: /dev/radio0
     RDS: /dev/rds0
  [REMOTECONTROL]:
     INPUT0: /dev/mediainput0
  [OSS]:
     OSS0: /dev/dsp0

Jedoch wird der Stick unter Tvheadend nicht erkannt. Zur Erkennung habe ich das nachfolgende
Startskript von Tvheadend nach der Variabeldefinition, um
export LD_PRELOAD=/opt/lib/libmediaclient.so
erweitert

#!/bin/sh /etc/rc.common

START=99
STOP=00

USE_PROCD=1
PROG=/usr/bin/tvheadend

TEMP_CONFIG=/tmp/tvheadend
PERSISTENT_CONFIG=/etc/tvheadend

if [ -e /opt/lib/libmediaclient.so ]; then
export LD_PRELOAD=/opt/lib/libmediaclient.so
# following will start the driver
# and wait until the currently attached devices are fully initialized, afterwards
# it will continue with the rest of the script
/opt/bin/mediasrv -d -p /opt/bin --wait-for-devices
fi

execute_first_run() {
"$PROG" -c "$1" -B -C -A >/dev/null 2>&1
}

ensure_config_exists() {
local config_path

config_load tvheadend
config_get config_path service config_path

if [ -z "$config_path" ]; then
[ -d "$PERSISTENT_CONFIG" ] || execute_first_run "$PERSISTENT_CONFIG"
else
# if the configuration directory is empty, empty config with grant-all ACL is created
[ -d "$config_path" ] && [ "$(ls -A $config_path)" ] || execute_first_run "$config_path"
fi

# if use_temp_epgdb is enabled (default), most of the config is put to config_path
# (or /etc/config), except for epgdb.v2, which grows quite large and is write-heavy,
# so it's put into volatile tmpfs
# epgdb.v2 is created and symlinked to main config dir upon each start (if it doesn't exist)
config_get_bool use_temp_epgdb service use_temp_epgdb 0
if [ "$use_temp_epgdb" == "1" ]; then
TEMP_EPG="${TEMP_CONFIG}/epgdb.v2"
[ ! -f "$TEMP_EPG" ] && mkdir -p "$TEMP_CONFIG" && touch "$TEMP_EPG" && chmod 700 "$TEMP_EPG"
[ -z "$config_path" ] && config_path="$PERSISTENT_CONFIG"
ln -sf "$TEMP_EPG" "${config_path}/epgdb.v2"
fi
}

load_uci_config() {
config_load tvheadend
config_get config_path service config_path "$PERSISTENT_CONFIG"
[ -n "$config_path" ] && procd_append_param command -c "$config_path"
config_get_bool nosyslog service nosyslog 0
[ "$nosyslog" -eq 1 ] && procd_append_param command --nosyslog
config_get_bool ipv6 server ipv6 0
[ "$ipv6" -eq 1 ] && procd_append_param command --ipv6
config_get bindaddr server bindaddr
[ -n "$bindaddr" ] && procd_append_param command --bindaddr "$bindaddr"
config_get http_port server http_port
[ -n "$http_port" ] && procd_append_param command --http_port "$http_port"
config_get http_root server http_root
[ -n "$http_root" ] && procd_append_param command --http_root "$http_root"
config_get htsp_port server htsp_port
[ -n "$htsp_port" ] && procd_append_param command --htsp_port "$htsp_port"
config_get htsp_port2 server htsp_port2
[ -n "$htsp_port2" ] && procd_append_param command --htsp_port "$htsp_port2"
config_get xspf server xspf 0
[ "$xspf" -eq 1 ] && procd_append_param command --xspf
}

start_service() {
ensure_config_exists
procd_open_instance
procd_set_param file /etc/config/tvheadend
procd_set_param command "$PROG" -B
load_uci_config
procd_close_instance
}

Der Stick wird jedoch trotzdem nicht erkannt.
Hier der Ausschnitt aus dem Syslog
Sat Oct 21 08:45:56 2017 daemon.info procd: - init complete -
Sat Oct 21 08:45:58 2017 daemon.info tvheadend[2526]: main: Log started
Sat Oct 21 08:45:59 2017 daemon.info tvheadend[2526]: config: loaded
Sat Oct 21 08:46:02 2017 daemon.info tvheadend[2526]: scanfile: DVB-T - loaded 44 regions with 1112 networks
Sat Oct 21 08:46:02 2017 daemon.info tvheadend[2526]: scanfile: DVB-S - loaded 1 regions with 112 networks
Sat Oct 21 08:46:02 2017 daemon.info tvheadend[2526]: scanfile: DVB-C - loaded 17 regions with 57 networks
Sat Oct 21 08:46:02 2017 daemon.info tvheadend[2526]: scanfile: ATSC - loaded 2 regions with 16 networks
Sat Oct 21 08:46:04 2017 daemon.err tvheadend[2526]: linuxdvb: unable to open /dev/dvb/adapter0/frontend0

Füge ich in /etc/rc.local ein Skript mit folgenden Inhalt ein

export LD_PRELOAD=/opt/lib/libmediaclient.so
/etc/init.d/tvheadend stop
/usr/bin/tvheadend -B -c /etc/tvheadend --ipv6

wird der Stick unter Tvheadend erkannt. Ich habe dann jedoch das Problem,
dass meine Einstellungen unter Tvheadend nicht vollständig geladen werden.
D. h. ich möchte es mit dem init Skript von Tvheadend realisieren.
Hat jemand eine Idee.

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8512
    • Profil anzeigen
Re:Erkennung unter Tvheadend auf TP-Link TL-WDR4900 v1 router
« Antwort #1 am: Oktober 21, 2017, 10:02:29 Vormittag »
LD_PRELOAD ist auf einigen Router Systemen nicht aktiv

Du kannst dort unseren Streamingserver verwenden, der verwendet das nicht und greift direkt auf den Treiber zu.

http://support.sundtek.com/index.php/topic,2075.0.html
« Letzte Änderung: Oktober 21, 2017, 10:13:11 Vormittag von Sundtek »
Failure is a good thing! I'll fix it