Dies ist eine mobil optimierte Seite, die schnell lädt. Wenn Sie die Seite ohne Optimierung laden möchten, dann klicken Sie auf diesen Text.

Pearl Display für OSCAM unter Debian Wheezy 7.0

    Nobody is reading this thread right now.
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)


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

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.
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…