In Ergänzung zum Installationsthread von xSaSx habe ich mal versucht die Reste zu beschreiben die ich noch so gemacht habe bis das System
so lief wie ich es wollte.Es ist nicht alles von mir, sondern eher ein Zusammentragen diverser Infos die ich im Netz gefunden habe.
Treiber Digital Devices Cine CT:
[SOLVED] DD Cine CT unter Linux
apt-get install mercurial build-essential libproc-processtable-perl
apt-get install linux-headers-$(uname -r)
apt-get install patchutils
hg clone http://linuxtv.org/hg/~endriss/media_build_experimental
cd media_build_experimental
make download
make untar
make
make install
experimental/oe/get_dvb_firmware "ddbridge - Typ" (wenn man erstmal nichts eingibt wird die syntax erläutert)
TVHeadend
https://www.kodinerds.net/www.kodinerds.…-Konfiguration/
Jetzt haben wir schonmal die Treiber installiert und TVHeadend installiert.
Wie man TVHeadend richtig einrichtet, kann ich leider nicht wirklich erklären,
da ich da selber noch etwas in der Luft hänge, ob das was ich gemacht habe auch richtig war
Autoshutdownplugin
Nun kann man das Autoshutdownplugin einrichten. Ich habe einfach mal nen screen von meinen
Einstellungen gemacht. Damit fahre ich eigentlich ganz gut. Ich habe folgende Punkte aktiviert:
Durchläufe: 3
Schlafen: 180
IP-Bereich: 2,4,100 (Das sind meine PC's und der HTPC)
Sockets: 80, 9982, 15828 (Webinterface, TVHeadend, Bittorrent)
ULDL Rate: 80 ( Falls ich noch einen torrent aktiv habe)
HDD/IO Rate: 201 (damit verhindere ich das bei einer aktiven Aufnahme das System runterfährt)
Modifizierte Scripts
Jetzt haben wir allerdings das Problem das TVHeadend nicht mehr unbedingt ordentlich funktioniert wenn das System wieder aufwacht. Da kann man sich allerdings bei behelfen in dem man die Treiber beim schlafen gehen
entlädt und beim Aufwachen wieder neu lädt.
Dies kann man mit kleinen Scripten in /etc/pm/sleep.d/ machen.
Treiber zum Ruhezustand entladen und beim aufwecken wieder laden.
98_ddbridge_restart
#!/bin/bash
case "$1" in
hibernate|suspend)
logger -s -t "$USER autoshutdown [$$]" "hibernate/suspend: ddbridge unload /etc/pm/sleep.d/98_ddbridge_restart"
modprobe -r ddbridge
;;
thaw|resume)
logger -s -t "$USER autoshutdown [$$]" "thaw/resume: ddbridge load /etc/pm/sleep.d/98_ddbridge_restart"
modprobe ddbridge
;;
*)
logger -s -t "$USER autoshutdown [$$]" "other: ddbridge call /etc/pm/sleep.d/98_ddbridge_restart"
;;
esac
Alles anzeigen
Gleiches gilt dann auch für TVHeadend:
97_tvheadend_restart
#!/bin/bash
case "$1" in
hibernate|suspend)
logger -s -t "$USER autoshutdown [$$]" "hibernate/suspend: tvheadend stop /etc/pm/sleep.d/97_tvheadend_restart"
/etc/init.d/tvheadend stop
;;
thaw|resume)
logger -s -t "$USER autoshutdown [$$]" "thaw/resume: tvheadend start /etc/pm/sleep.d/97_tvheadend_restart"
/etc/init.d/tvheadend start
;;
*)
logger -s -t "$USER autoshutdown [$$]" "other: tvheadend call /etc/pm/sleep.d/97_tvheadend_restart"
;;
esac
Alles anzeigen
Ich habe nun noch die Datei "autoshutdown-restart" in "99_autoshutdown-restart" umbenannt, damit es als letztes ausgeführt wird.
So nun wird alles wieder sauber geladen und sollte funktionieren. Da man aber ja auch gerne einen Timer programmieren möchte, muss man ja auch noch etwas haben, was das System wieder einschaltet. Dazu gibt aber auch Abhilfe.
Aufwachen für Timer
96_wakeuptimer
#!/bin/bash
#
# set ACPI Wakeup alarm
# safe_margin - minutes to start up system before the earliest timer
# script does not check if recording is in progress
#
#
echo 1 > /timer
# bootup system 60 sec. before timer
safe_margin=300
# modyfy if different location for tvheadend dvr/[definition='1','0']log[/definition] path
cd /home/hts/.hts/tvheadend/dvr/[definition='1','0']log[/definition]
######################
start_date=0
stop_date=0
current_date=`date +%s`
for i in $( ls ); do
tmp_start=`cat $i | grep '"start":' | head -1 | cut -f 2 -d " " | cut -f 1 -d ","`
tmp_stop=`cat $i | grep '"stop":' | head -1 | cut -f 2 -d " " | cut -f 1 -d ","`
# check for outdated timer
if [ $((tmp_stop)) -gt $((current_date)) -a $((tmp_start)) -gt $((current_date)) ]; then
# take lower value (tmp_start or start_date)
if [ $((start_date)) -eq 0 -o $((tmp_start)) -lt $((start_date)) ]; then
start_date=$tmp_start
stop_date=$tmp_stop
fi
fi
done
wake_date=$((start_date-safe_margin))
echo $start_date >> /timer
echo $wake_date >> /timer
# set up waleup alarm
if [ $((start_date)) -ne 0 ]; then
echo 2 >> /timer
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo $wake_date > /sys/class/rtc/rtc0/wakealarm
fi
Alles anzeigen
Des Weiteren habe ich festgestellt, dass wenn das System im Ruhezustand war und wieder hoch fährt
Die CPU last kurz Enorm ansteigt, was in den Standard Einstellungen von OMV immer eine Warn Mail abschickt. Das konnte ich folgender Maßen abstellen:
WarnMails abschalten
95_custom-monit
#!/bin/sh
# reload monit to avoid cpu wait usage alert
case "$1" in
hibernate|suspend)
monit unmonitor all
;;
thaw|resume)
sleep 32
monit monitor all
;;
*) exit $NA
;;
esac
Alles anzeigen
Hier wird bei einfach kurz gewartet bis wieder überwacht wird. Diese Zeit reicht aus um sie Lastspitze zu überbrücken.
Damit haben wir alle Scripte in diesem Ordner durch. Sie benötigen natürlich die ausführbare Rechte (755).
OScam
Nun kann man zur Oscam kommen. Da kann man am einfachsten nach googeln.
Muss halt für Debian Wheezy sein. Diese kommt dann Ausführbar nach "/usr/local/bin/oscam".
Dazu packen wir noch folgendes script nach "/etc"
Oscam starten/stoppen
Osam.sh
#!/bin/sh
### BEGIN INIT INFO
# Provides: oscam
# Required-Start:
# Required-Stop:
# Should-Start: oscam
# Default-Start: S
# Default-Stop:
# Short-Description: starts oscam in /usr/local/bin.
# Description: Starts an Oscam Client.
### END INIT INFO
DAEMON=/usr/local/bin/oscam
PIDFILE=/var/run/oscam.pid
DAEMON_OPTS="-p 1024 -w 5 -r 2 -B ${PIDFILE}"
test -x ${DAEMON} || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting OScam..."
/sbin/start-stop-daemon --start --quiet --background --exec ${DAEMON} -- ${DAEMON_OPTS}
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping OScam..."
/sbin/start-stop-daemon --stop --exec ${DAEMON}
log_end_msg $?
;;
restart)
$0 stop
$0 start
;;
force-reload)
$0 stop
/bin/kill -9 `pidof oscam`
/usr/local/bin/killall -9 oscam
$0 start
;;
*)
echo "Usage: /etc/init.d/oscam {start|stop|restart|force-reload}"
exit 1
;;
esac
Alles anzeigen
Nun habe ich mir noch das Startscript von TVHeadend geändert damit direkt auch die Oscam mit gestartet wird.
/etc/init.d/tvheadend / Der Part ist ganz unten….
tvheadend
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
/etc/oscam.sh start
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
etc/oscam.sh stop
;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
Alles anzeigen
Nun sollte eigentlich alles soweit laufen. :
Mein Dank gilt xSaSx, C0mmanda, Coolinger, dem OMV-Board und dem TVHeadendBoard.