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.