Script zur Installation eines Pearl-Dissis für Oscam

Benutzeravatar
Alx83
Entwickler Team
Beiträge: 661
Registriert: Mo 12. Mär 2012, 22:48
Has thanked: 14 times
Been thanked: 7 times
Kontaktdaten:

Script zur Installation eines Pearl-Dissis für Oscam

Beitrag von Alx83 »

Da ich mein Pearl-Dissi schon auf mehrern Systemen mehrmals eingerichtet habe, habe ich die Lust verloren, dieses jedes mal Stück für Stück von Hand zu machen.
Da das ganze nur unter Debian 7 (Wheezy) möglich ist, wird das Betriebssytem geprüft.
Deshalb hab' ich mir heute dieses kleine Script geschrieben, welches das Ganze automatisiert:
Spoiler
Show

Code: Alles auswählen

#!/bin/bash
# Script zum Kompilieren und Einrichten eines Pearl-Displays für OScam
# V 0.05
#
# Changelog:
# 
# V 0.01: Grundsätzlich nur zur Anwendung unter Debian 7 geeignet
# V 0.02: Erkennung ob Debian 6 oder 7. Abbruch bei 6
# V 0.03: Unterstützung für Debian Squeeze hinzugefügt (kein Abbruch mehr)
# V 0.04: Erkennung von Ubuntu und Debian 5 (Lenny) hinzugefügt --> Abbruch
# V 0.05: Kurzbefehle LCD START|STOP|RESTART sowie täglichen Neustart durch Crontab hinzugefügt
#
# © Al-x83, IPC-PEBKAC
#
#
clear
#Installieren der nötigen Pakete:
echo "==============================================================================="
echo ""
echo -n "Prüfe aktuell verfügbare Pakete.."
echo ""
echo ""
echo "==============================================================================="
echo ""
apt-get update >/dev/null
clear

#Pruefe Argumente
[ "$1" = "32" ] && SYSBIT="32"
[ "$1" = "64" ] && SYSBIT="64"

#Linux Version? (Debian/Ubuntu)
if [ -f /usr/bin/lsb_release ]; then
    LSB=$(/usr/bin/lsb_release -d)
    _LINUX=$(echo $LSB|cut -d":" -f2|awk {'print $1'})
    if [ "$_LINUX" = "Debian" ]; then
        LINUXVERSION=$(echo $LSB|cut -d":" -f2|awk {'print $3'})
    elif [ "$_LINUX" = "Ubuntu" ]; then
      LINUXVERSION=$(echo $LSB|cut -d":" -f2|awk {'print $2'})
   fi
fi
if [ -z "$LINUXVERSION" ]; then
   [ -f /etc/debian_version ] && LINUXVERSION=$(cat /etc/debian_version)
fi

#Debian Wheezy
if [ -n "$LINUXVERSION" ]&&[ $(echo $LINUXVERSION|cut -c1) == 7 ]; then
	echo "================================================================================="
	echo ""
	echo -n "Debian $LINUXVERSION (Wheezy) erkannt. Pakete werden installiert..."
	echo ""
	echo ""
	echo "================================================================================="
	echo ""
	sleep 5
    apt-get install cc1111 libtool automake1.10 autoconf zlib1g-dev libssl-dev python-dev libc6 libusb-dev libibus-1.0-dev subversion libgd2-noxpm-dev libgd2-noxpm -y
	clear
fi

if [ -n "$LINUXVERSION" ]&&[ $(echo $LINUXVERSION|cut -c1) == 6 ]; then
#Debian Squeeze
    echo "================================================================================="
	echo ""
	echo -n "Debian $LINUXVERSION (Squeeze) erkannt. Allgemeine Pakete werden installiert..."
	echo ""
	echo ""
	echo "================================================================================="
	echo ""
	sleep 5
	apt-get install libtool automake1.10 autoconf zlib1g-dev libssl-dev libc6 libusb-dev libibus-dev subversion libgd2-noxpm-dev libgd2-noxpm -y
	clear
	
	#pruefe System ob 32 oder 64 bit
	if [ -z "$SYSBIT" ]; then
		if [ `uname -m` = 'x86_64' ]; then
			#x64:
			echo "================================================================================="
			echo ""
			echo -n "Debian $LINUXVERSION (Squeeze) amd64 erkannt. Architekturspezifische Pakete werden installiert..."
			echo ""
			echo ""
			echo "================================================================================="
			echo ""
			wget http://ftp.de.debian.org/debian/pool/main/c/cc1111/cc1111_2.9.0-2_amd64.deb
			dpkg -i cc1111_2.9.0-2_amd64.deb
			cc1111_2.9.0-2_amd64.deb
			sleep 5
			clear
		else
		#x86
		echo "================================================================================="
		echo ""
		echo -n "Debian $LINUXVERSION (Squeeze) i386 erkannt. Architekturspezifische Pakete werden installiert..."
		echo ""
		echo ""
		echo "================================================================================="
		echo ""
		wget http://ftp.de.debian.org/debian/pool/main/c/cc1111/cc1111_2.9.0-2_i386.deb
		dpkg -i cc1111_2.9.0-2_i386.deb
		rm cc1111_2.9.0-2_i386.deb
		sleep 5
		clear
		fi
	fi
fi

#Ubuntu
if [ "$_LINUX" = "Ubuntu" ]; then
    echo "================================================================================="
	echo ""
	echo -n "Ubuntu $LINUXVERSION erkannt. "
	echo ""
	echo -n "Aufgrund von ständig neuen Versionen mit varierenden Paketnamen NICHT unterstützt"
	echo ""
	echo ""
	echo "================================================================================="
	echo ""
	exit 0
fi

 #Lenny
if [ -n "$LINUXVERSION" ]&&[ $(echo $LINUXVERSION|cut -c1) == 5 ]; then
    echo "================================================================================="
	echo ""
	echo -n "Debian $LINUXVERSION Lenny erkannt. "
	echo ""
	echo -n "Definitiv zu alt und dehalb NICHT unterstützt"
	echo ""
	echo ""
	echo "================================================================================="
	echo ""
	exit 0
fi

#Laden und installieren des Display-Hacks:
echo "================================================================================="
echo ""
echo -n "Laden und installieren des Display-Hacks.."
echo ""
echo ""
echo "================================================================================="
echo ""
wget http://tech.section5.ch/files/dpfhack-0.1alpha.tgz
tar -xvzf dpfhack-0.1alpha.tgz
cd dpf/src
make
clear
#Laden und entpacken von LCD4LINUX:
echo "================================================================================="
echo ""
echo -n "Laden und entpacken von LCD4LINUX.."
echo ""
echo ""
echo "================================================================================="
echo ""
cd ..
cd ..
wget http://tech.section5.ch/files/dpf-lcd4linux.tgz
tar -xvzf dpf-lcd4linux.tgz
rm dpf-lcd4linux.tgz
cd dpf
#Anpassen von build-dpf-lcd4linux.sh:
echo "s./configure --with-drivers=DPF./configure --with-drivers='DPF' --with-plugins='all,!dbus,!mpris_dbus'.g" > ~/.sedfile
cp build-dpf-lcd4linux.sh build-dpf-lcd4linux.sh.bak
sed -f ~/.sedfile build-dpf-lcd4linux.sh.bak > build-dpf-lcd4linux.sh
rm build-dpf-lcd4linux.sh.bak
rm ~/.sedfile
clear
#Kompilieren von LCD4LINUX
echo "================================================================================="
echo ""
echo -n "Kompilieren von LCD4LINUX.."
echo ""
echo ""
echo "================================================================================="
echo ""
./build-dpf-lcd4linux.sh ../src/dpflib/
cd lcd4linux
sudo make install
clear
#Config Datei erstellen:
echo "================================================================================="
echo ""
echo -n "/etc/lcd4linux.conf erstellen.."
echo ""
echo ""
echo "================================================================================="
echo ""
cat << EOF > /etc/lcd4linux.conf
Display 'DPF'
Layout 'mylayout'

Variables {
time_minute 60000
time_second 1000
time_tick second
time_faster 0.5
color_black '000000'
color_white 'ffffff'
color_blue '0000FF'
color_green '008000'
color_red '800000'
color_transparent 'ffffff00'
color_lighter 'ffffff80'
color_darker '00000080'
color_fg 'ffffff'
color_bg '00000044'
color_bar_fg 'ffffff'
color_bar_bg '00000044'
color_bar1 '5f5fff'
color_bar2 'ff5f5f'
width_quarter 12
width_full 53
width_half 24
width_idle 22
width_logo 39
tablestart 6
}

Display dpf {
driver 'DPF'
port 'dev/sg0'
font '6x8'
foreground color_white
background color_blue
basecolor color_black
}

Display dpf {
driver 'DPF'
port 'dev/sg0'
font '6x8'
foreground color_white
background color_blue
basecolor color_black
}

Widget OVersion {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', 1)
width width_full
align 'L'
update time_minute
style bold
background color_blue
}

Widget ORevision{
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', 2)
width width_full
align 'L'
update time_minute
style bold
background color_blue
}

Widget CLOCK {
class 'Text'
expression strftime ('%H:%M:%S', time())
prefix ' '
width width_full
align 'L'
update time_second
style bold
background color_green
foreground color_white
}

Widget DATE {
class 'Text'
expression strftime ('%d.%m.%Y', time())
width width_full
align 'L'
update time_second
style bold
background color_red
foreground color_white
}

Widget RAM {
class 'Text'
expression (floor(meminfo('MemFree')*10/1024)/10).' / '.(floor(meminfo('MemTotal')*10/1024)/10)
prefix 'RAM'
postfix ' MB'
width width_half
#precision 0
align 'R'
update time_second
Background color_transparent
Foreground color_fg
}

Widget DF {
class 'Text'
expression statfs('/root', 'bavail')*statfs('/root', 'bsize')/1024/1024/1024
prefix 'USBStick '
postfix ' GB frei'
precision 2
width width_half
align 'R'
update time_second * 10
Background color_transparent
Foreground color_fg
}

Widget Busy {
class 'Text'
expression proc_stat::cpu('busy', 500)
prefix 'Busy'
postfix '%'
width width_half
precision 1
align 'R'
update time_second
Background color_transparent
Foreground color_fg
}

Widget BusyBar {
class 'Bar'
expression proc_stat::cpu('busy', 500)
expression2 proc_stat::cpu('system', 500)
length width_half
direction 'E'
update time_second * time_faster
Background color_transparent
Foreground color_bar_fg
BarColor0 color_bar1
BarColor1 color_bar2
}

Widget Load {
class 'Text'
expression loadavg(1)
prefix 'Load'
postfix loadavg(1)>1.0?'!':' '
width width_half
precision 1
align 'R'
update time_second
Background color_transparent
Foreground color_fg
}

Widget LoadBar {
class 'Bar'
expression loadavg(1)
max 5.0
length width_half
direction 'E'
update time_second * time_faster
Background color_transparent
Foreground color_bar_fg
BarColor0 color_bar1
BarColor1 color_bar2
}

Widget Eth0 {
class 'Text'
expression (netdev('eth0', 'Rx_bytes', 500)+netdev('eth0', 'Tx_bytes', 500))/1024/1024
prefix 'eth0'
postfix ' MB/s'
width width_half
precision 3
align 'R'
update time_second
Background color_transparent
Foreground color_fg
}

Widget Eth0Bar {
class 'Bar'
expression netdev('eth0', 'Rx_bytes', 500)
expression2 netdev('eth0', 'Tx_bytes', 500)
length width_half
direction 'E'
update time_second * time_faster
Background color_transparent
Foreground color_bar_fg
BarColor0 color_bar1
BarColor1 color_bar2
}

Widget Eth0Trf {
class 'Text'
expression (netdev('eth0', 'Rx_bytes', 0)+netdev('eth0', 'Tx_bytes', 0))/1024/1024
prefix 'Traffic eth0'
postfix ' MB'
width width_half
precision 3
align 'R'
update tick
Background color_transparent
#Background color_bg
Foreground color_fg
}

Widget OTotals {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', 4)
prefix ' Server Totals: '
width width_full
align 'L'
update time_minute
style 'bold'
Background color_red
Foreground color_white
}

Widget Ouptime {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', 3)
prefix 'Oscam '
width width_full
align 'L'
update 10000
foreground color_white
background color_transparent
}


####################### Oscam Table #####################

Widget OscamRow00 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow01 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 1)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 1),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow02 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 2)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 2),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow03 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 3)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 3),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow04 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 4)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 4),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow05 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 5)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 5),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow06 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 6)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 6),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow07 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 7)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 7),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow08 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 8)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 8),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow09 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 9)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 9),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow10 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 10)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 10),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow11 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 11)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 11),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow12 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 12)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 12),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow13 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 13)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 13),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow14 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 14)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 14),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow15 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 15)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 15),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow16 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 16)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 16),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow17 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 17)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 17),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow18 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 18)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 18),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow19 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 19)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 19),'T') == 0 ? color_blue : color_transparent
}

Widget OscamRow20 {
class 'Text'
expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 20)
width width_full
align 'L'
update 10000
Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 20),'T') == 0 ? color_blue : color_transparent
}

Layout mylayout {
#----------------------------------------<start topline
Row01.Col01 'OVersion'
Row01.Col29 'ORevision'
Row01.Col44 'CLOCK'
#----------------------------------------<end topline

#----------------------------------------<start header
Row03.Col02 'RAM'
Row03.Col29 'DF'
Row04.Col02 'Busy'
Row05.Col02 'BusyBar'
Row06.Col02 'Load'
Row07.Col02 'LoadBar'
Row04.Col29 'Eth0'
Row05.Col29 'Eth0Bar'
Row06.Col29 'Eth0Trf'
Row07.Col29 'Ouptime'
#----------------------------------------<end header


ROW09.Col01 'OscamRow00'
ROW10.Col01 'OscamRow01'
ROW11.Col01 'OscamRow02'
ROW12.Col01 'OscamRow03'
ROW13.Col01 'OscamRow04'
ROW14.Col01 'OscamRow05'
ROW15.Col01 'OscamRow06'
ROW16.Col01 'OscamRow07'
ROW17.Col01 'OscamRow08'
ROW18.Col01 'OscamRow09'
ROW19.Col01 'OscamRow10'
ROW20.Col01 'OscamRow11'
ROW21.Col01 'OscamRow12'
ROW22.Col01 'OscamRow13'
ROW23.Col01 'OscamRow14'
ROW24.Col01 'OscamRow15'
ROW25.Col01 'OscamRow16'
ROW26.Col01 'OscamRow17'
ROW27.Col01 'OscamRow18'
ROW28.Col01 'OscamRow19'
ROW29.Col01 'OscamRow20'


#----------------------------------------<start lastline
ROW30.Col01 'OTotals'
ROW30.Col43 'DATE'
#----------------------------------------<end lastline
Layer 2 {
X1.Y1 'IMAGE'
}
}
Widget IMAGE2 {
class 'Image'
file '/home/vpn/box.png'
update 10000
reload 1
visible 1
inverted 0
}
EOF

#Rechte setzen:
chown root:root /etc/lcd4linux.conf
chmod 700 /etc/lcd4linux.conf

#Hinzufügen des Startscript:
cat << EOF > /var/emu/script/lcd4linux.sh
#!/bin/bash
# LCD4LINUX-Script 
# 
# V 0.04
# Changelog:
# V 0.02 Diverse Bugs
# V 0.03 PID - Bug gefixed
# V 0.04 Befehl Status hinzugefügt
#
# © Al-x83, IPC-PEBKAC
#
#

# LCD4LINUX-Start
start_lcd4linux () {
        sleep 5
        echo "LCD4linux gestartet"
        lcd4linux -q
}
# LCD4LINUX-Stop
stop_lcd4linux () {
        pkill lcd4linux
        sleep 5
        PID="$(pgrep -x lcd4linux)"
        if [[ ! -n $PID ]] ; then
                echo "LCD4linux beendet"
        else
                pkill -9 lcd4linux
                echo "LCD4linux gekillt"
        fi
}
# Befehlsparameter
case "$1" in
        start)
                PID="$(pgrep -x lcd4linux)"
        if [[ ! -z $PID ]] ; then
            echo "LCD4linux ist bereits gestartet" 
        else
            start_lcd4linux
            pgrep -x lcd4linux > /tmp/.lcd4linux.pid
            PID="$(pgrep -F /tmp/.lcd4linux.pid)"
            echo "LCD4Linux mit PID $PID gestartet"
                fi
            rm /tmp/.lcd4linux.pid
        ;;
        stop)
                PID="$(pgrep -x lcd4linux)"
                if [[ ! -z $PID ]] ; then
                        stop_lcd4linux
                else
                        echo "LCD4linux ist bereits beendet"
                fi
        ;;
        restart)
                echo "LCD4linux restart"
                stop_lcd4linux
                sleep 3
                start_lcd4linux
        ;;
        status)
                PID="$(pgrep -x lcd4linux)"
        if [[ ! -z $PID ]] ; then
            pgrep -x lcd4linux > /tmp/.lcd4linux.pid
            PID="$(pgrep -F /tmp/.lcd4linux.pid)"
            echo "LCD4linux ist bereits mit PID $PID gestartet" 
            rm /tmp/.lcd4linux.pid
        else        
            echo "LCD4Linux ist inaktiv"
        fi
        ;;
        *)
        clear
                echo "==============================================================================="
                echo ""
                echo -n "Befehlsliste: LCD4linux"
                echo ""
                echo ""
                echo "Start, Stop, Restart, Status              start | stop | restart | status"
                echo ""
                echo "==============================================================================="
                echo ""
        ;; esac 

exit 0
EOF

#Script ausführbar machen:
chmod +x /var/emu/script/lcd4linux.sh

#Softlink anlegen:
ln -s /var/emu/script/lcd4linux.sh /bin/lcd

#In Crontab eintragen:
echo "" >> /etc/crontab
echo "#LCD4Linux neustarten" >> /etc/crontab
echo "30 4 * * * root /var/emu/script/lcd4linux.sh stop" >> /etc/crontab
echo "31 4 * * * root /var/emu/script/lcd4linux.sh start" >> /etc/crontab

#Syslog schonen:
touch /etc/rsyslog.d/1-lcd4linux.conf 
echo ":msg, contains, "readline requested line" -/dev/null" >> /etc/rsyslog.d/1-lcd4linux.conf 
echo "& ~" >> /etc/rsyslog.d/1-lcd4linux.conf 
service rsyslog restart

exit 0

Achtung! In diesem Script sind keinerlei Erfolgsprüfungen erhalten. Es arbeitet einfach alles Schritte aus dem HowTo ab.

danach einfach noch folgendes in die Oscam.conf einfügen:


[lcd]
enablelcd = 1
lcd_hideidle = 0
lcd_writeintervall = 10

Jetzt OSCAM Neustarten.
Auf den Alkohol! Die Ursache und Lösung aller Probleme - Homer J. Simpson
Benutzeravatar
Alx83
Entwickler Team
Beiträge: 661
Registriert: Mo 12. Mär 2012, 22:48
Has thanked: 14 times
Been thanked: 7 times
Kontaktdaten:

Re: Script zur Installation eines Pearl-Dissis für Oscam

Beitrag von Alx83 »

Hier noch ein Script, mit dem man zum Schluß folgenden Befehle in der Shell zur Verfügung hat:

lcd start
lcd stop
lcd restart


Hab mich da relativ viel an einem IPC-Script bedient, aber kann ich mir ja rausnehemen ;)
Nun zur Anleitung:

1.) Datei anlegen und mit Editor öffnen:

Code: Alles auswählen

 nano /var/emu/script/lcd4linux.sh
2.) Nun folgendes Script in den Editor einfügen:
Spoiler
Show

Code: Alles auswählen

#!/bin/bash
# LCD4LINUX-Script 
# 
# V 0.04
# Changelog:
# V 0.02 Diverse Bugs
# V 0.03 PID - Bug gefixed
# V 0.04 Befehl Status hinzugefügt
#
# © Al-x83, IPC-PEBKAC
#
#

# LCD4LINUX-Start
start_lcd4linux () {
        sleep 5
        echo "LCD4linux gestartet"
        lcd4linux -q
}
# LCD4LINUX-Stop
stop_lcd4linux () {
        pkill lcd4linux
        sleep 5
        PID="$(pgrep -x lcd4linux)"
        if [[ ! -n $PID ]] ; then
                echo "LCD4linux beendet"
        else
                pkill -9 lcd4linux
                echo "LCD4linux gekillt"
        fi
}
# Befehlsparameter
case "$1" in
        start)
                PID="$(pgrep -x lcd4linux)"
        if [[ ! -z $PID ]] ; then
            echo "LCD4linux ist bereits gestartet" 
        else
            start_lcd4linux
            pgrep -x lcd4linux > /tmp/.lcd4linux.pid
            PID="$(pgrep -F /tmp/.lcd4linux.pid)"
            echo "LCD4Linux mit PID $PID gestartet"
                fi
            rm /tmp/.lcd4linux.pid
        ;;
        stop)
                PID="$(pgrep -x lcd4linux)"
                if [[ ! -z $PID ]] ; then
                        stop_lcd4linux
                else
                        echo "LCD4linux ist bereits beendet"
                fi
        ;;
        restart)
                echo "LCD4linux restart"
                stop_lcd4linux
                sleep 3
                start_lcd4linux
        ;;
        status)
                PID="$(pgrep -x lcd4linux)"
        if [[ ! -z $PID ]] ; then
            pgrep -x lcd4linux > /tmp/.lcd4linux.pid
            PID="$(pgrep -F /tmp/.lcd4linux.pid)"
            echo "LCD4linux ist bereits mit PID $PID gestartet" 
            rm /tmp/.lcd4linux.pid
        else        
            echo "LCD4Linux ist inaktiv"
        fi
        ;;
        *)
        clear
                echo "==============================================================================="
                echo ""
                echo -n "Befehlsliste: LCD4linux"
                echo ""
                echo ""
                echo "Start, Stop, Restart, Status              start | stop | restart | status"
                echo ""
                echo "==============================================================================="
                echo ""
        ;; esac 

exit 0

Danach mit STRG+O speichern und mit STRG+X beenden

3.) Script ausführbar machen:

Code: Alles auswählen

chmod +x /var/emu/script/lcd4linux.sh
4.) Softlink anlegen:

Code: Alles auswählen

ln -s /var/emu/script/lcd4linux.sh /bin/lcd
5.) Eintrag in /etc/crontab (bei IPC i jobs)

Code: Alles auswählen

#LCD4Linux neustarten
30 4 * * * root /var/emu/script/lcd4linux.sh stop
31 4 * * * root /var/emu/script/lcd4linux.sh start
lcd restart funktioniert leider, aus mir unbekannten Gründen, nicht im Cron, aber in der Shell schon.
Auf den Alkohol! Die Ursache und Lösung aller Probleme - Homer J. Simpson
Benutzeravatar
Alx83
Entwickler Team
Beiträge: 661
Registriert: Mo 12. Mär 2012, 22:48
Has thanked: 14 times
Been thanked: 7 times
Kontaktdaten:

Re: Script zur Installation eines Pearl-Dissis für Oscam

Beitrag von Alx83 »

So hab das Script nochmal überarbeitet.
Das Script prüft jetzt die verwendete Linuxdistribution. Unterstützt werden aber nur Debian Squeeze und Wheezy, da es zu viele Ubuntu-Versionen gibt, die noch mit Paketen unterstützt werden.
Zusätzlich werden auch die Symlinks für die LCD - Kurzbefehle und der Eintrag zum stoppen und starten im Cron angelegt.
Spoiler
Show

Code: Alles auswählen

    #!/bin/bash
    # Script zum Kompilieren und Einrichten eines Pearl-Displays für OScam
    # V 0.05
    #
    # Changelog:
    # 
    # V 0.01: Grundsätzlich nur zur Anwendung unter Debian 7 geeignet
    # V 0.02: Erkennung ob Debian 6 oder 7. Abbruch bei 6
    # V 0.03: Unterstützung für Debian Squeeze hinzugefügt (kein Abbruch mehr)
    # V 0.04: Erkennung von Ubuntu und Debian 5 (Lenny) hinzugefügt --> Abbruch
    # V 0.05: Kurzbefehle LCD START|STOP|RESTART sowie täglichen Neustart durch Crontab hinzugefügt
    #
    # © Al-x83, IPC-PEBKAC
    #
    #
    clear
    #Installieren der nötigen Pakete:
    echo "==============================================================================="
    echo ""
    echo -n "Prüfe aktuell verfügbare Pakete.."
    echo ""
    echo ""
    echo "==============================================================================="
    echo ""
    apt-get update >/dev/null
    clear

    #Pruefe Argumente
    [ "$1" = "32" ] && SYSBIT="32"
    [ "$1" = "64" ] && SYSBIT="64"

    #Linux Version? (Debian/Ubuntu)
    if [ -f /usr/bin/lsb_release ]; then
        LSB=$(/usr/bin/lsb_release -d)
        _LINUX=$(echo $LSB|cut -d":" -f2|awk {'print $1'})
        if [ "$_LINUX" = "Debian" ]; then
            LINUXVERSION=$(echo $LSB|cut -d":" -f2|awk {'print $3'})
        elif [ "$_LINUX" = "Ubuntu" ]; then
          LINUXVERSION=$(echo $LSB|cut -d":" -f2|awk {'print $2'})
       fi
    fi
    if [ -z "$LINUXVERSION" ]; then
       [ -f /etc/debian_version ] && LINUXVERSION=$(cat /etc/debian_version)
    fi

    #Debian Wheezy
    if [ -n "$LINUXVERSION" ]&&[ $(echo $LINUXVERSION|cut -c1) == 7 ]; then
        echo "================================================================================="
        echo ""
        echo -n "Debian $LINUXVERSION (Wheezy) erkannt. Pakete werden installiert..."
        echo ""
        echo ""
        echo "================================================================================="
        echo ""
        sleep 5
        apt-get install cc1111 libtool automake1.10 autoconf zlib1g-dev libssl-dev python-dev libc6 libusb-dev libibus-1.0-dev subversion libgd2-noxpm-dev libgd2-noxpm -y
        clear
    fi

    if [ -n "$LINUXVERSION" ]&&[ $(echo $LINUXVERSION|cut -c1) == 6 ]; then
    #Debian Squeeze
        echo "================================================================================="
        echo ""
        echo -n "Debian $LINUXVERSION (Squeeze) erkannt. Allgemeine Pakete werden installiert..."
        echo ""
        echo ""
        echo "================================================================================="
        echo ""
        sleep 5
        apt-get install libtool automake1.10 autoconf zlib1g-dev libssl-dev libc6 libusb-dev libibus-dev subversion libgd2-noxpm-dev libgd2-noxpm -y
        clear
        
        #pruefe System ob 32 oder 64 bit
        if [ -z "$SYSBIT" ]; then
            if [ `uname -m` = 'x86_64' ]; then
                #x64:
                echo "================================================================================="
                echo ""
                echo -n "Debian $LINUXVERSION (Squeeze) amd64 erkannt. Architekturspezifische Pakete werden installiert..."
                echo ""
                echo ""
                echo "================================================================================="
                echo ""
                wget http://ftp.de.debian.org/debian/pool/main/c/cc1111/cc1111_2.9.0-2_amd64.deb
                dpkg -i cc1111_2.9.0-2_amd64.deb
                cc1111_2.9.0-2_amd64.deb
                sleep 5
                clear
            else
            #x86
            echo "================================================================================="
            echo ""
            echo -n "Debian $LINUXVERSION (Squeeze) i386 erkannt. Architekturspezifische Pakete werden installiert..."
            echo ""
            echo ""
            echo "================================================================================="
            echo ""
            wget http://ftp.de.debian.org/debian/pool/main/c/cc1111/cc1111_2.9.0-2_i386.deb
            dpkg -i cc1111_2.9.0-2_i386.deb
            rm cc1111_2.9.0-2_i386.deb
            sleep 5
            clear
            fi
        fi
    fi

    #Ubuntu
    if [ "$_LINUX" = "Ubuntu" ]; then
        echo "================================================================================="
        echo ""
        echo -n "Ubuntu $LINUXVERSION erkannt. "
        echo ""
        echo -n "Aufgrund von ständig neuen Versionen mit varierenden Paketnamen NICHT unterstützt"
        echo ""
        echo ""
        echo "================================================================================="
        echo ""
        exit 0
    fi

     #Lenny
    if [ -n "$LINUXVERSION" ]&&[ $(echo $LINUXVERSION|cut -c1) == 5 ]; then
        echo "================================================================================="
        echo ""
        echo -n "Debian $LINUXVERSION Lenny erkannt. "
        echo ""
        echo -n "Definitiv zu alt und dehalb NICHT unterstützt"
        echo ""
        echo ""
        echo "================================================================================="
        echo ""
        exit 0
    fi

    #Laden und installieren des Display-Hacks:
    echo "================================================================================="
    echo ""
    echo -n "Laden und installieren des Display-Hacks.."
    echo ""
    echo ""
    echo "================================================================================="
    echo ""
    wget http://tech.section5.ch/files/dpfhack-0.1alpha.tgz
    tar -xvzf dpfhack-0.1alpha.tgz
    dpfhack-0.1alpha.tgz
    cd dpf/src
    make
    clear
    #Laden und entpacken von LCD4LINUX:
    echo "================================================================================="
    echo ""
    echo -n "Laden und entpacken von LCD4LINUX.."
    echo ""
    echo ""
    echo "================================================================================="
    echo ""
    cd ..
    cd ..
    wget http://tech.section5.ch/files/dpf-lcd4linux.tgz
    tar -xvzf dpf-lcd4linux.tgz
    rm dpf-lcd4linux.tgz
    cd dpf
    #Anpassen von build-dpf-lcd4linux.sh:
    echo "s./configure --with-drivers=DPF./configure --with-drivers='DPF' --with-plugins='all,!dbus,!mpris_dbus'.g" > ~/.sedfile
    cp build-dpf-lcd4linux.sh build-dpf-lcd4linux.sh.bak
    sed -f ~/.sedfile build-dpf-lcd4linux.sh.bak > build-dpf-lcd4linux.sh
    rm build-dpf-lcd4linux.sh.bak
    rm ~/.sedfile
    clear
    #Kompilieren von LCD4LINUX
    echo "================================================================================="
    echo ""
    echo -n "Kompilieren von LCD4LINUX.."
    echo ""
    echo ""
    echo "================================================================================="
    echo ""
    ./build-dpf-lcd4linux.sh ../src/dpflib/
    cd lcd4linux
    sudo make install
    clear
    #Config Datei erstellen:
    echo "================================================================================="
    echo ""
    echo -n "/etc/lcd4linux.conf erstellen.."
    echo ""
    echo ""
    echo "================================================================================="
    echo ""
    cat << EOF > /etc/lcd4linux.conf
    Display 'DPF'
    Layout 'mylayout'

    Variables {
    time_minute 60000
    time_second 1000
    time_tick second
    time_faster 0.5
    color_black '000000'
    color_white 'ffffff'
    color_blue '0000FF'
    color_green '008000'
    color_red '800000'
    color_transparent 'ffffff00'
    color_lighter 'ffffff80'
    color_darker '00000080'
    color_fg 'ffffff'
    color_bg '00000044'
    color_bar_fg 'ffffff'
    color_bar_bg '00000044'
    color_bar1 '5f5fff'
    color_bar2 'ff5f5f'
    width_quarter 12
    width_full 53
    width_half 24
    width_idle 22
    width_logo 39
    tablestart 6
    }

    Display dpf {
    driver 'DPF'
    port 'dev/sg0'
    font '6x8'
    foreground color_white
    background color_blue
    basecolor color_black
    }

    Display dpf {
    driver 'DPF'
    port 'dev/sg0'
    font '6x8'
    foreground color_white
    background color_blue
    basecolor color_black
    }

    Widget OVersion {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', 1)
    width width_full
    align 'L'
    update time_minute
    style bold
    background color_blue
    }

    Widget ORevision{
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', 2)
    width width_full
    align 'L'
    update time_minute
    style bold
    background color_blue
    }

    Widget CLOCK {
    class 'Text'
    expression strftime ('%H:%M:%S', time())
    prefix ' '
    width width_full
    align 'L'
    update time_second
    style bold
    background color_green
    foreground color_white
    }

    Widget DATE {
    class 'Text'
    expression strftime ('%d.%m.%Y', time())
    width width_full
    align 'L'
    update time_second
    style bold
    background color_red
    foreground color_white
    }

    Widget RAM {
    class 'Text'
    expression (floor(meminfo('MemFree')*10/1024)/10).' / '.(floor(meminfo('MemTotal')*10/1024)/10)
    prefix 'RAM'
    postfix ' MB'
    width width_half
    #precision 0
    align 'R'
    update time_second
    Background color_transparent
    Foreground color_fg
    }

    Widget DF {
    class 'Text'
    expression statfs('/root', 'bavail')*statfs('/root', 'bsize')/1024/1024/1024
    prefix 'USBStick '
    postfix ' GB frei'
    precision 2
    width width_half
    align 'R'
    update time_second * 10
    Background color_transparent
    Foreground color_fg
    }

    Widget Busy {
    class 'Text'
    expression proc_stat::cpu('busy', 500)
    prefix 'Busy'
    postfix '%'
    width width_half
    precision 1
    align 'R'
    update time_second
    Background color_transparent
    Foreground color_fg
    }

    Widget BusyBar {
    class 'Bar'
    expression proc_stat::cpu('busy', 500)
    expression2 proc_stat::cpu('system', 500)
    length width_half
    direction 'E'
    update time_second * time_faster
    Background color_transparent
    Foreground color_bar_fg
    BarColor0 color_bar1
    BarColor1 color_bar2
    }

    Widget Load {
    class 'Text'
    expression loadavg(1)
    prefix 'Load'
    postfix loadavg(1)>1.0?'!':' '
    width width_half
    precision 1
    align 'R'
    update time_second
    Background color_transparent
    Foreground color_fg
    }

    Widget LoadBar {
    class 'Bar'
    expression loadavg(1)
    max 5.0
    length width_half
    direction 'E'
    update time_second * time_faster
    Background color_transparent
    Foreground color_bar_fg
    BarColor0 color_bar1
    BarColor1 color_bar2
    }

    Widget Eth0 {
    class 'Text'
    expression (netdev('eth0', 'Rx_bytes', 500)+netdev('eth0', 'Tx_bytes', 500))/1024/1024
    prefix 'eth0'
    postfix ' MB/s'
    width width_half
    precision 3
    align 'R'
    update time_second
    Background color_transparent
    Foreground color_fg
    }

    Widget Eth0Bar {
    class 'Bar'
    expression netdev('eth0', 'Rx_bytes', 500)
    expression2 netdev('eth0', 'Tx_bytes', 500)
    length width_half
    direction 'E'
    update time_second * time_faster
    Background color_transparent
    Foreground color_bar_fg
    BarColor0 color_bar1
    BarColor1 color_bar2
    }

    Widget Eth0Trf {
    class 'Text'
    expression (netdev('eth0', 'Rx_bytes', 0)+netdev('eth0', 'Tx_bytes', 0))/1024/1024
    prefix 'Traffic eth0'
    postfix ' MB'
    width width_half
    precision 3
    align 'R'
    update tick
    Background color_transparent
    #Background color_bg
    Foreground color_fg
    }

    Widget OTotals {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', 4)
    prefix ' Server Totals: '
    width width_full
    align 'L'
    update time_minute
    style 'bold'
    Background color_red
    Foreground color_white
    }

    Widget Ouptime {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', 3)
    prefix 'Oscam '
    width width_full
    align 'L'
    update 10000
    foreground color_white
    background color_transparent
    }


    ####################### Oscam Table #####################

    Widget OscamRow00 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow01 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 1)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 1),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow02 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 2)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 2),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow03 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 3)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 3),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow04 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 4)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 4),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow05 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 5)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 5),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow06 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 6)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 6),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow07 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 7)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 7),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow08 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 8)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 8),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow09 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 9)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 9),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow10 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 10)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 10),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow11 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 11)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 11),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow12 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 12)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 12),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow13 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 13)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 13),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow14 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 14)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 14),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow15 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 15)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 15),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow16 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 16)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 16),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow17 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 17)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 17),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow18 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 18)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 18),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow19 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 19)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 19),'T') == 0 ? color_blue : color_transparent
    }

    Widget OscamRow20 {
    class 'Text'
    expression file::readline('/tmp/.oscam/oscam.lcd', tablestart + 20)
    width width_full
    align 'L'
    update 10000
    Background strstr(file::readline('/tmp/.oscam/oscam.lcd', tablestart + 20),'T') == 0 ? color_blue : color_transparent
    }

    Layout mylayout {
    #----------------------------------------<start topline
    Row01.Col01 'OVersion'
    Row01.Col29 'ORevision'
    Row01.Col44 'CLOCK'
    #----------------------------------------<end topline

    #----------------------------------------<start header
    Row03.Col02 'RAM'
    Row03.Col29 'DF'
    Row04.Col02 'Busy'
    Row05.Col02 'BusyBar'
    Row06.Col02 'Load'
    Row07.Col02 'LoadBar'
    Row04.Col29 'Eth0'
    Row05.Col29 'Eth0Bar'
    Row06.Col29 'Eth0Trf'
    Row07.Col29 'Ouptime'
    #----------------------------------------<end header


    ROW09.Col01 'OscamRow00'
    ROW10.Col01 'OscamRow01'
    ROW11.Col01 'OscamRow02'
    ROW12.Col01 'OscamRow03'
    ROW13.Col01 'OscamRow04'
    ROW14.Col01 'OscamRow05'
    ROW15.Col01 'OscamRow06'
    ROW16.Col01 'OscamRow07'
    ROW17.Col01 'OscamRow08'
    ROW18.Col01 'OscamRow09'
    ROW19.Col01 'OscamRow10'
    ROW20.Col01 'OscamRow11'
    ROW21.Col01 'OscamRow12'
    ROW22.Col01 'OscamRow13'
    ROW23.Col01 'OscamRow14'
    ROW24.Col01 'OscamRow15'
    ROW25.Col01 'OscamRow16'
    ROW26.Col01 'OscamRow17'
    ROW27.Col01 'OscamRow18'
    ROW28.Col01 'OscamRow19'
    ROW29.Col01 'OscamRow20'


    #----------------------------------------<start lastline
    ROW30.Col01 'OTotals'
    ROW30.Col43 'DATE'
    #----------------------------------------<end lastline
    Layer 2 {
    X1.Y1 'IMAGE'
    }
    }
    Widget IMAGE2 {
    class 'Image'
    file '/home/vpn/box.png'
    update 10000
    reload 1
    visible 1
    inverted 0
    }
    EOF

    #Rechte setzen:
    chown root:root /etc/lcd4linux.conf
    chmod 700 /etc/lcd4linux.conf

    #Hinzufügen des Startscript:
    cat << EOF > /var/emu/script/lcd4linux.sh
    #!/bin/bash
    # LCD4LINUX-Script 
    # 
    # V 0.02
    #
    #
    # © Al-x83, IPC-PEBKAC
    #
    #

    # LCD4LINUX-Start
    start_lcd4linux () {
            sleep 5
            echo "LCD4linux gestartet"
            lcd4linux -q
    }
    # LCD4LINUX-Stop
    stop_lcd4linux () {
            pkill lcd4linux
            sleep 5
            PID="$(pgrep -x lcd4linux)"
            if [[ ! -n $PID ]] ; then
                    echo "LCD4linux beendet"
            else
                    pkill -9 lcd4linux
                    echo "LCD4linux gekillt"
            fi
    }
    # Befehlsparameter
    case "$1" in
            start)
                    PID="$(pgrep -x lcd4linux)"
            if [[ ! -z $PID ]] ; then
                echo "LCD4linux ist bereits gestartet" 
            else
                start_lcd4linux
                echo "LCD4Linux mit PID $PID gestartet"
                    fi
            ;;
            stop)
                    PID="$(pgrep -x lcd4linux)"
                    if [[ ! -z $PID ]] ; then
                            stop_lcd4linux
                    else
                            echo "LCD4linux ist bereits beendet"
                    fi
            ;;
            restart)
                    echo "LCD4linux restart"
                    stop_lcd4linux
                    sleep 3
                    start_lcd4linux
            ;;
            
            *)
            clear
                    echo "==============================================================================="
                    echo ""
                    echo -n "Befehlsliste: LCD4linux"
                    echo ""
                    echo ""
                    echo "Start, Stop, Restart              start | stop | restart"
                    echo ""
                    echo "==============================================================================="
                    echo ""
            ;; esac 
    exit 0
    EOF

    #Script ausführbar machen:
    chmod +x /var/emu/script/lcd4linux.sh

    #Softlink anlegen:
    ln -s /var/emu/script/lcd4linux.sh /bin/lcd

    #In Crontab eintragen:
    echo "" >> /etc/crontab
    echo "#LCD4Linux neustarten" >> /etc/crontab
    echo "30 4 * * * root /var/emu/script/lcd4linux.sh stop" >> /etc/crontab
    echo "31 4 * * * root /var/emu/script/lcd4linux.sh start" >> /etc/crontab

    #Syslog schonen:
    touch /etc/rsyslog.d/1-lcd4linux.conf 
    echo ":msg, contains, "readline requested line" -/dev/null" >> /etc/rsyslog.d/1-lcd4linux.conf 
    echo "& ~" >> /etc/rsyslog.d/1-lcd4linux.conf 
    service rsyslog restart

    exit 0


Auf den Alkohol! Die Ursache und Lösung aller Probleme - Homer J. Simpson
dbox-all
IPC Neuling
Beiträge: 3
Registriert: Sa 6. Sep 2014, 08:57
Kontaktdaten:

Re: Script zur Installation eines Pearl-Dissis für Oscam

Beitrag von dbox-all »

Moin !

Welches Script kann/soll ich einfügen ?

"2.) Nun folgendes Script in den Editor einfügen:
Spoiler: show"

mfg
Benutzeravatar
Alx83
Entwickler Team
Beiträge: 661
Registriert: Mo 12. Mär 2012, 22:48
Has thanked: 14 times
Been thanked: 7 times
Kontaktdaten:

Re: Script zur Installation eines Pearl-Dissis für Oscam

Beitrag von Alx83 »

Klick doch mal auf Show, dann siehst du was im Spoiler steht
Auf den Alkohol! Die Ursache und Lösung aller Probleme - Homer J. Simpson
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste