1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

HowTo Pearl Display für OSCAM unter Debian Wheezy 7.0

Dieses Thema im Forum "HowTo´s" wurde erstellt von speckthehut, 8. Mai 2013.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. speckthehut
    Offline

    speckthehut Hacker

    Registriert:
    2. April 2012
    Beiträge:
    363
    Zustimmungen:
    113
    Punkte für Erfolge:
    43
    Beruf:
    Rebbe
    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

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?


    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

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?

    # 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!

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?


     
    Zuletzt von einem Moderator bearbeitet: 2. Februar 2014
    #1
    d2z, ralle61, mrnicegy und 15 anderen gefällt das.
  2. phantom

    Nervigen User Advertisement

  3. al-x83
    Offline

    al-x83 Super-Moderator Digital Eliteboard Team

    Registriert:
    10. Januar 2012
    Beiträge:
    13.424
    Zustimmungen:
    12.689
    Punkte für Erfolge:
    113
    Geschlecht:
    männlich
    Beruf:
    SysAdmin
    Ort:
    Paradise City
    Unter Debian Jessie muss man noch folgende Pakete manuell installieren, damit mein Script funktioniert:

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?


    und

    Dieser Link ist nur für Mitglieder!!! Jetzt kostenlos Registrieren ?



    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
     
    #2
    Derek Buegel, UncleC und axfa77 gefällt das.
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen