IPC: camd3

CS-Allgemeines was in die anderen Foren nicht hinein passt...
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

IPC: camd3

Beitrag von feissmaik »

Diese Anleitung trifft nurnoch für ältere IPC Versionen (<= 11.4) zu



Verzeichniss vorbereiten:
mkdir -p /var/emu/camd3

Binary in zuvor erstelltes Verzeichniss kopieren und ggf danach umbennen:
cd /var/emu/camd3/ && mv camd3 camd3.x86

Anpassungen an /var/emu/script/functions.sh vornehmen:
nano /var/emu/script/functions.sh

Code: Alles auswählen

CDNAME="Camd3"
CDVERSION="camd3.x86"
CDBIN=$CAMBINS/camd3/$CDVERSION
CDCFG="$CAMCONFIGS/camd3.config"
CDSERVERS="$CAMCONFIGS/camd3.servers"
CDUSERS="$CAMCONFIGS/camd3.users"
CDLOGFILE="/var/log/ipc/camd3.log"
-> /var/emu/script/camd3
Spoiler
Show

Code: Alles auswählen

#!/bin/bash
# IPC - MASTERSCRIPT (Camd3)
#

. /var/emu/script/functions.sh
readipccfg
[ -z $CDVERSION ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CDBIN ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CDCFG ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CRON ] && clear && echo -e "\033[1;31mIPC - Paket Konfigurationsfehler!\033[0m" && exit 1

CAMNAME="Camd3"

# This method starts Camd3
start_cam() {
	if [ ! -z "$CDLOGFILE" ]; then
		$CDBIN $CDCFG >$CDLOGFILE &
	else
		$CDBIN $CDCFG &
	fi
	if [ $? -ne "0" ]; then
		echo "Fehler beim starten von $CAMNAME!"
	fi
}

# This method starts Camd3 with Logging to Console
log_cam() {
	$CDBIN
	if [ $? -ne "0" ]; then
		echo "\033[1;31mFehler beim starten von $CAMNAME!\033[0m"   
	fi
}

# This method stops Camd3
stop_cam() {
	pkill -9 $CDVERSION
}

case "$1" in
	start)
		PID="$(ps auxw | grep -v grep | grep -v $0 | grep $CDVERSION | awk {'print $2'})"
		if [[ ! -z $PID ]] ; then
			echo "$CAMNAME : ist bereits gestartet"
		else
			start_cam
			echo "$CAMNAME : gestartet"
			if [[ $CRON == 1 ]]; then
				PID="$(pgrep -x cron)"
				if [[ ! -z $PID ]] ; then
					dummy="1"
				else
					/etc/init.d/cron start > /dev/null
					echo "Cron  : gestartet"
				fi		
			fi
		fi
	;;
	lstart)
		PID="$(ps auxw | grep -v grep | grep -v $0 | grep $CDVERSION | awk {'print $2'})"
		if [[ ! -z $PID ]] ; then
			echo "$CAMNAME : ist bereits gestartet"
		else
			log_cam
			echo "$CAMNAME : wurde gestartet mit ConsolenLog"
		fi
	;;
	stop)
		PID="$(ps auxw | grep -v grep | grep -v $0 | grep $CDVERSION | awk {'print $2'})"
		if [[ ! -z $PID ]] ; then
			stop_cam
			echo "$CAMNAME : beendet"
			if [[ $CRON == 1 ]]; then
				PID="$(pgrep -x cron)"
				if [[ ! -z $PID ]] ; then
					/etc/init.d/cron stop > /dev/null
					echo "Cron  : beendet"
				else
					echo "Cron  : ist bereits beendet"			
				fi		
			fi
		else
			echo "$CAMNAME : ist bereits beendet"
		fi
	;;
	restart)
		echo "Restaring $CAMNAME"
		stop_cam
		sleep 3
		start_cam
	;;
	help)
		clear
		less $CAMBINS/script/camd3-help.txt
	;;
	log)
		clear
		echo "$CAMNAME Log - Abbrechen mit [Strg]+[C]                          $(date +"%d.%m.%Y %H:%M")"
		echo "==============================================================================="
		echo ""
		if [ -f $CDLOGFILE ] ; then
			tail -f $CDLOGFILE
		else
			echo "Keine Logdatei vorhanden!"
		fi
	;;
	*)
		clear
		echo -e "\033[1;37m$CAMNAME-Server IPC $IPCVERSION                                         $(date +"%d.%m.%Y %H:%M")\033[0m"
		echo "==============================================================================="
		echo ""
		echo -e "Befehlsliste: \033[1;31mcamd3\033[0m"
		echo ""
		echo -e "\033[1;37m  Hilfe zu Befehlen\033[0m                           \033[1;31mhelp\033[0m"
		echo -e "\033[1;37m  Start, Stop, Restart\033[0m                        \033[0;37mstart | lstart | stop | restart\033[0m"
		echo -e "\033[1;37m  Logfile\033[0m                                     \033[0;37mlog\033[0m"
		echo ""
		echo "==============================================================================="
		echo ""
		exit 1
	;;
esac

exit 0
-> /var/emu/script/camd3-watchdog.sh
Spoiler
Show

Code: Alles auswählen

#!/bin/bash
# IPC - Camd3-Watchdog
#

. /var/emu/script/functions.sh
[ -z $CDVERSION ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CDBIN ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CDCFG ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1

CAMNAME="Camd3"

SUBJECT="$CAMNAME Watchdog !"
MESSAGE="$CAMNAME wurde auf `hostname -f` vom Watchdog Überwachungsscript neu gestartet."

#MAIN
PID="$(pgrep -x $CDVERSION)"
if [[ ! -z $PID ]] ; then
	echo "$TIMESTAMP2    Watchdog - $CAMNAME Server laeuft"
else
	echo "$TIMESTAMP2    Watchdog - $CAMNAME wurde neu gestartet" >> $CAMLOGS/$CAMNAME-watchdog.log
	/var/emu/script/camd3 start
	readipccfg
	[ $CRASHMAIL == 1 ] && mailsend "$SUBJECT" "$MESSAGE"
fi

exit 0
-> /var/emu/script/camd3-help.txt
Spoiler
Show

Code: Alles auswählen

Camd3-Server Befehldetails: (Scrollen mit Pfeiltasten, Beenden mit [Q])
===============================================================================

help
   Zeigt diesen Hilfetext.

start
   Startet den Camd3-Server.

lstart
   Startet den Camd3-Server mit Consolenlog.

stop
   Beendet den Camd3-Server.

restart
   Beendet und startet den Camd3-Server-Prozess neu.

log
   Zeigt was Camd3 gerade zu tun hat.

Scripts nach /var/emu/script/ kopieren und ausführbar machen:
chmod a+x /var/emu/script/{camd3,camd3-watchdog.sh}

Symlink erstellen: ln -s /var/emu/script/camd3 /bin/camd3

Camd3 config Dateien (camd3.config, camd3.users, camd3.servers) kopieren nach: /var/etc/
Camd3 emu Dateien (camd3.keys, camd3.map, eep120.bin, rom120.bin) kopieren nach: /var/etc/
(oder echo a | i os camd3-softkey.sh ausführen)
Camd3 services Datei pw_start.services kopieren nach: /var/keys/


Camd3 emu keys regelmässig updaten lassen:
-> i jobs

Code: Alles auswählen

* 6 * * *   root echo a | i os camd3-softkey.sh && /var/emu/script/camd3 restart >/dev/null 2>&1 #Camd3 emu keys updaten+restart (Taeglich um 06:00)
Camd3 watchdog:
-> i jobs

Code: Alles auswählen

#Camd3
* * * * * root /var/emu/script/camd3-watchdog.sh #Teste ob Camd3 laeuft (jede Minute)
Camd3 automatisch starten beim boot/reboot:
-> i as

Code: Alles auswählen

#Camd3 starten
/bin/camd3 start &
Camd3 config anpassen:
-> nano /var/etc/camd3.config

Code: Alles auswählen

UDP_PORT=12345
HTTP_PORT=9080
HTTP_ADMIN=meinlogin
HTTP_PASSWORD=meinpass
LOG_FILE=/var/log/ipc/camd3.log
camd3.users anpassen:
-> nano /var/etc/camd3.users

Code: Alles auswählen

meinserver:meinserverpass
Um camd3 für OScam nutzbar zu machen:
-> nano /var/etc/oscam.server

Code: Alles auswählen

[reader]
label = camd3emu
enable  = 1
protocol = camd35
device = 127.0.0.1,12345
user = meinserver
password = meinserverpass
group  = 1
Um camd3 für CCcam nutzbar zu machen:
-> nano /var/etc/CCcam.cfg

Code: Alles auswählen

L: 127.0.0.1 12345 meinserver meinserverpass 1801 001102
Dateianhänge
camd_v3_902.rar
passende binary muss nach -> /var/emu/camd3/
(960.03 KiB) 141-mal heruntergeladen
var.emu.script_camd3.rar
muss nach -> /var/emu/script/
(1.57 KiB) 166-mal heruntergeladen
Du musst nicht kämpfen um zu siegen
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: IPC: camd3

Beitrag von feissmaik »

Um camd3 ins IPC Webif einzubinden siehe -> Camd3: IPC und Editor einbinden
Du musst nicht kämpfen um zu siegen
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: IPC: camd3

Beitrag von feissmaik »

...leider noch 2 kleine Bugs ($CDLOG) im camd3 Script sowie camd3-watchdog.sh behoben - sorry :oops:
Du musst nicht kämpfen um zu siegen
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast