Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Pearl Display für OSCAM unter Debian Wheezy 7.0

Status
Für weitere Antworten geschlossen.

speckthehut

Hacker
Registriert
2. April 2012
Beiträge
362
Reaktionspunkte
93
Punkte
103
Ort
Beim Metzger
Hallo!

Da andere Anleitungen etwas veraltet sind und auch nicht mehr funktionieren da insbesondere kompiler wie SDCC nicht mehr Aktuell sind, hier mal eine Aktuelle und funktionsfähige Anleitung.
Leider bin ich nicht gerade ein guter Schreiberling, doch hoffe ich damit eine Hilfestellung geben zu können.
Ich gehe hier nicht ganz darauf ein wie man sein DPF hacken kann, falls noch nicht geschehen. Dafür gibt es hier und anderswo sehr gute Anleitungen!

Das ganze funktioniert auch mit Raspbian für den Raspberry Pi welches schon länger auf Debian Wheezy basiert.

Als erstes Installieren wir uns die nötigen Biliotheken und kompiler mit:

# 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


Wenn das Erledigt ist laden wir uns den DPF Hack für das Display herunter, das ist auch nötig wenn das Display schon gehackt wurde!
# wget
Entpacken mit: # tar -xvzf dpfhack-0.1alpha.tgz
# cd dpf/src
# make


Der make Befehl wird den DPF HAck in recht kurzer Zeit kompilieren.

# cd ..
# cd .. (Ja, zweimal)
# wget
# tar -xvzf dpf-lcd4linux.tgz
# cd dpf


Jetzt müssen wir die Datei "build-dpf-lcd4linux.sh" anpassen mit:

# nano build-dpf-lcd4linux.sh

Dort die diese Zeile suchen:

./configure --with-drivers=DPF

und Ersetzen mit:

./configure --with-drivers='DPF' --with-plugins='all,!dbus,!mpris_dbus'


Jetzt kompilieren wir uns das LCD4Linux mit der Biblithek für das DPF (AX206)

# ./build-dpf-lcd4linux.sh ../src/dpflib/


Wenn das Erledigt ist, geben wir ein

# cd lcd4linux
# sudo make install

Wenn bis hier keine Fehlermeldungen aufgetreten sind ist alles in Butter!

Es fehlt aber noch die configdatei für LCD4Linux, die können wir einfach erstellen mit:

# nano /etc/lcd4linux.conf

Dort kommt das "Design" für dein DPF rein.
Hier eine sehr gute Vorlage die man sich seinen Bedürfnissen selbst ganz leicht anpassen kann.

Einfach per Copy and Paste einfügen.

Code:
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
        }


Mit STRG+O Abspeichern und STRG+X Beenden.

Jetzt braucht die LCD4Linux.conf noch die richtigen Rechte damit die auch funktioniert

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

Jetzt ist es natürlich noch Wichtig das unsere OSCAM Version mit LCD unterstützung hergestellt wird (falls nicht schon geschehen).
Ich gehe mal davon aus das IPC auf dem Server Installiert ist incl. einer schon laufenden OSCAM Version.

Wir geben ein:
# o compile
Jetzt werden ev. erst einmal einige Programme Installiert die IPC benötigt, ist das Erledigt fragt IPC welche Version Installiert werden solle, das bleibt Dir überlassen. Alles weitere ist dann selbst Erklärend.
Nur wichtig ist das man im Menü die LCD Untersützung mit auswählt!

Läuft OSCAM dann wieder nach dem langwierigen kompilieren muss in der OSCAM.conf noch folgendes eingetragen werden:


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

Jetzt OSCAM Neustarten.


Nun, das war es dann soweit. Du kannst die ganze Sache jetzt starten in dem die einfach nur "lcd4linux" (ohne "") in die Konsole eingibst.
Sofort sollte im DPF was Erscheinen.

##################################################################################################

Der User
al-x83 hat sich wie im Diskussionsthread zu sehen ist die Mühe gemacht und ein Script incl. vieler verbesserungen erstellt.
(Version 0.05)

Hab mein Script nochmals komplett überabreitet und erweitert.
Das Script prüft 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.

1. Zur Vorbereitung muss noch folgendes Paket installiert werden:
Code:
apt-get install dos2unix

2. Danach erzeugen wir mit nano pearl.sh die Datei für das Script und fügen folgenden Inhalt ein:
Code:
#!/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

Dann beenden wir nano mit STRG+O und STRG+X

3. Um Kompatiblitätsprobleme zu vermeiden lassen wir das Script von dos2unix prüfen:
Code:
dos2unix pearl.sh

4. Jetzt das Scrupt noch ausführbar machen:
Code:
chmod +x pearl.sh

5. und zum Schluss noch ausführen:
Code:
bash pearl.sh

Hier noch der 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

Das Script wird vorraussichtlich in Kürze auch als Onlinscript über i os für IPC verfügbar sein.

##################################################################################################

Und noch etwas in eigener Sache... Falls LCD4Linux euch auch den syslog Vollmüllt, dem ist ganz einfach mit dem hier Abhilfe zu schaffen:

Per Putty auf dem Server einloggen ist klar...

In den Ordner /etc/rsyslog.d/ wechseln.

Dort eine Datei Namens 10-lcd4linux.conf Erstellen mit
# touch 10-lcd4linux.conf

Die Datei mit einem Editor der Wahl Öffnen, meine ist "Nano"
Also mit:
# nano 10-lcd4linux.conf

In die Datei folgenden Inhalt Kopieren:

:msg, contains, "readline requested line" -/dev/null
& ~

Das ganze Beenden und Abspeichern mit "STRG X" und "J" für´s Speichern.

Danach noch in der Konsole eingeben:
# service rsyslog restart


Dadurch wird der ganze SPAM nicht mehr gespeichert sondern in den Digitalen Nirwana verschoben! Natürlich ist es auch möglich den Schrott schreiben zu lassen, dafür muss aus /dev/null nur ein Pfad incl. Logdatei der Wahl erstellt und eingetragen werden. Dann aber bitte nicht vergessen logrotate die Logdatei bekannt zu machen!

Zum Diskussionsthread geht es hier entlang
 
Zuletzt bearbeitet von einem Moderator:
Unter Debian Jessie muss man noch folgende Pakete manuell installieren, damit mein Script funktioniert:

und


Einfach mit wget das für die Architektur passende Paket herunterladen und dann mit dpkg -i PAKETNAME installieren
Danach noch folgende Pakete installieren:
Code:
apt-get install libtool-bin libltdl-dev autotools-dev
 
Das HowTo funktioniert nach wie vor. Gerade auf nem Pi3 mit aktuellstem Raspbain Stretch getestet.
Allerdings sehen die benötigten Paket da so aus:
Code:
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 libtool-bin
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben