Lcd4linux: Unterschied zwischen den Versionen

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(35 dazwischenliegende Versionen derselben Benutzerin werden nicht angezeigt)
Zeile 1: Zeile 1:
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 1px solid #333333; padding: 0em 1em 1em 1em; background-color:#1B1C2D; align:right;">
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 1px solid #333333; padding: 0em 1em 1em 1em; background-color:#1B1C2D; align:right"><br/><center>[[File:ZD-Logo.png]]</center><center><big><span style="color:#B5B5B5">'''''Das Board mit Freiheiten'''''</span></big></center>
<br><center>[[Datei:ZD-Logo.png]]</center>
 
<center><big><span style="color:#B5B5B5;">'''''Das Board mit Freiheiten'''''</span></big></center>
 
<font color=white></font>
----
----
<br>
<div style="margin: 0px 20px 15pt 15pt; border: 2px solid rgb(223, 223, 223); padding: 0em 1em 1em; background-color:#303140; border: 1px solid #000000;">
<br />
{{Navi-Freetz-Sektion}}




== Idee ==
<div style="margin: 0px 20px 15pt 15pt;  border: 2px solid rgb(223, 223, 223);  padding: 0em 1em 1em;  background-color:#303140;  border: 1px solid #000000">
Da mittlerweile kleine digitale Bilderrahmen (im folgenden kurz DPF für "Digital Picture Frame") zu Spottpreisen erhältlich sind (bei Pearl, EBay, Amazon einfach mal Suchen), hab ich mich entschlossen so etwas auch für meine Box zu nutzen. Bei Pearl gibts die mittlerweile sogar mit integrierten USB-Hub für 3,90 EUR, die "alte" Version ohne Hub war für 2,90 zu haben (1x pro Bestellung). Aber ich finde auch der normale Preis 9,90 ist für ein externes Display nicht zuviel.
<br/>{{Navi-Sektion}} {{Navi-Freetz-Sektion}}
 
[[File:PEARL HPM-1184.jpg|498x265px|PEARL HPM-1184.jpg]] [[File:Pearl-lcd-Pack.jpeg|498x265px|Pearl-lcd-Pack.jpeg]]
 
Pearl HPM1184 (PX-1184-675), Digitaler Bilderrahmen mit AX206 Chip
 
<br/>[[File:Samsung spf-87h.jpg|498x265px|Samsung spf-87h.jpg]]
 
*Samsung Displays
 
SPF-72H | SPF-75H | SPF-83H | SPF-85H | SPF-85P | SPF-87H | SPF-105P | SPF-107H | SPF-700T
 
Neue Methode: http://www.zebradem.com/wiki/index.php?title=Lcd4linux_DPF_Easy_Hacking_-_TNG
 
== Bilderrahmen patchen ==
 
Der pearl Birlderrahmen muss dazu erst gepatched werden.


== Bilderrahmen vorbereiten ==
Am einfachsten geht es am PC unter LInux bzw Linux in virtueller Umgebung
Damit das als externes Display funktioniert muß das DPF natürlich softwaretechnisch "angepaßt" werden. Es gibt mittlerweile etliche Anleitungen und auch verschiedene Software dazu. [http://geekparadise.de/tag/dpfhack/], [http://tech.section5.ch/news/?p=68]
Man sollte halt genau wissen welcher Chip drin werkelt. Der AX206 in diesem DPF ist noch relativ neu und es gibt noch keine offizielle alternative Firmware. Es wird deshalb nur die originale Firmware dahingehend verändert daß Software wie z.b. lcd4linux damit etwas anfangen kann.
Auf der Buildmaschine sollten die entsprechenden Sachen vorhanden sein. Für Debian basierte [[Linux]]-Varianten ist sicher folgender Aufruf vorher nicht die dümmste Idee:


  apt-get install zlib1g-dev libssl-dev python python-dev libusb-dev libibus-dev subversion libgd2-noxpm-dev libgd2-noxpm
  cd lcd4linux
cd ../src
sudo python hackit.py /dev/sg0


[http://tech.section5.ch/files/dpfhack-0.1alpha.tgz Hier] gibts das dpfhack, was bei mir funktionierte. Irgendwie sollen bei verschiedenen DPF-Revisionen auch andere Hacks nötig sein, liest man zumindest. Wichtig scheint jedenfalls zu sein daß man '''nicht''' das originale Kabel nimmt zum Hacken da es von schlechter Qualität zu sein scheint. Bei Verbindungsproblemen während des Transfers könnte man sonst schnell das DPF in eine "Blackbox" verwandeln, die man nur mit viel Aufwand wiederbeleben kann.
vorher mit dmesg überprüfen auf welchem port das Gerät liegt , meisst sg0 oder sg1 Gerät anschliessen und Menue drücken und mit PC verbinden mit ja bestätigen
dpfhack-0.1alpha.tgz entpacken, die ''README lesen'' und danach vorgehen, evtl. noch weitere nötige Sachen installieren.
 
Wenn alles geklappt hat kann man sich auch um den Rest kümmern wie
Wenn alles glatt gelaufen ist erscheint am Ende
<pre style="height: 300px;  overflow: scroll">Patching at offset 000002b9, chunk size 1
Read 503 bytes
Analyzing module 37...
Module already patched
 
Now disconnect the DPF from USB.
To activate the 'developer mode':
 
Press and hold MENU while USB is plugged in.
If successful, you will get the 'USB connect' message and the device
will appear as non-USB storage device
 
To put the device back into (almost) original state working
as USB storage, press the RESET button.
zebra@zebra:~/lcd2/dpf/src$
</pre>
Wenn folgende Fehlermeldung kommt...
<pre>Opening generic SCSI device '/dev/sg2'
Reading flash...
done
]No DPF found. Create a record or look for one
('20090504', 'Mar 27 2010\xff\xff\xff\xff\xff', 'ProcTbl5')[/CODE]
...muss noch die Datei profiles.py angepasst werden.
</pre>
Original:
<pre>[ ('20090504', 'Mar 26 2010\xff\xff\xff\xff\xff', 'ProcTbl5' ),
"pearl",
"http://www.pearl.de/a-HPM1184-5618.shtml",
{ },
[ 0, 0x200000, patch_320x240 ]
],
</pre>
Modifiziert:
<pre>[ ('20090504', 'Mar 27 2010\xff\xff\xff\xff\xff', 'ProcTbl5' ),
"pearl",
"http://www.pearl.de/a-HPM1184-5618.shtml",
{ },
[ 0, 0x200000, patch_320x240 ]
],
</pre>
<br/>Neuer Versuch, hier wird es auch als Perl-Display erkannt:
<pre style="height: 300px;  overflow: scroll">Patching at offset 000002b9, chunk size 1
Read 503 bytes
Analyzing module 37...
Module already patched
 
Now disconnect the DPF from USB.
To activate the 'developer mode':
 
Press and hold MENU while USB is plugged in.
If successful, you will get the 'USB connect' message and the device
will appear as non-USB storage device
 
To put the device back into (almost) original state working
as USB storage, press the RESET button.
zebra@zebra:~/lcd2/dpf/src$
</pre>
Jetzt das DPF abstecken und wieder an der Fritzbox anstecken. In den Developer-Mode gehen (Menü-Taste länger gedrückt halten).
<pre style="height: 300px;  overflow: scroll">T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 14 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs=  1
P:  Vendor=1908 ProdID=0102 Rev= 2.00
S:  Manufacturer=hackfin
S:  Product=USB-Display
S:  SerialNumber=0000
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I:  If#= 0 alt=" 0" #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=usbfs
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
</pre>
<br/>[[File:P1020897.jpg]]
 
Hinweis: Das Gerät kann durch einfaches Reset wieder auf Werkseinstellungen zurück gesetzt werden
 
Links&nbsp;: [url][http://www.zebradem.com/61688-fb-7270v3-cccam-monitor-mit-pearl-2-90-display-und-lcd4linux#post440387 http://www.zebradem.com/61688-fb-7270v3-cccam-monitor-mit-pearl-2-90-display-und-lcd4linux#post440387][/url]


== lcd4linux ==
== lcd4linux ==
Lcd4linux muß natürlich für die antsprechende Architektur (mipsel bei der 7170) mit DPF-Support gebaut werden. Empfehlenswert ist es auch, lcd4linux (mit dpf-unterstützung) sich für den desktop selbst zu bauen solang es noch nicht in den Repositories der Linux-Distributionen ist. Dann kann man vorher erst alles probieren und sich mit der Konfiguration vertraut machen. Dabei fiel mir nämlich auf daß der normale Text-Font ziemlich winzig ist und es nur diesen einen gibt. Abhilfe fand ich mit einem Scaletext-Patch im [http://www.vdr-portal.de/index.php?page=Thread&postID=1041355 VDR-Portal]. Devzero war so frei das Paket komplett mit scaletext-Patch für mipsel und mips zu bauen. Thnx nochmal an ihn, hat mir viel Arbeit gespart.
 
Schlußendlich die Binary (in dem Fall lcd4linux-mipsel-linux-svn-1165-scaletext-freetz) auf den USB-Stick kopieren.
Lcd4linux muß natürlich für die antsprechende Architektur mit DPF-Support gebaut werden.
<pre style="height: 300px;  overflow: scroll">LCD4Linux 0.11.0-SVN-1158
Copyright (C) 2005, 2006, 2007, 2008, 2009 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
 
available display drivers:
  DPF                &nbsp;: generic hacked photo frame
  Image              &nbsp;: PNG
 
available plugins:
  cfg, math, string, test, time, apm, asterisk, button_exec, cpuinfo, diskstats, dvb, exec, event, fifo, file, hddtemp, huawei, i2c_sensors, imon, isdn, kvv, loadavg, meminfo, netdev, pop3, ppp, proc_stat, sample, seti, statfs, uname, uptime, w1retap, wireless, xmms
</pre>
Dann die Binary und config auf den USB-Stick kopieren.


== Konfiguration ==
== Konfiguration ==


Selbst wenn das lcd4linux schon auf bzw an der Box ist, läuft es noch lange nicht *gg*. Die lcd4linux.conf sollte außerdem Permissions 600 haben sonst gibts nur Meckerei, also chmod 600 ... nicht vergessen! Ich hab vorerst alles nach /var/tmp kopiert und sichere nur auf USB-Stick von Hand (die conf) oder via cron (die daten, falls man längere statistiken machen will)
Selbst wenn das lcd4linux schon auf bzw an der Box ist, läuft es noch lange nicht *gg*. Die lcd4linux.conf sollte außerdem Permissions 600 haben , also chmod 600
Natürlich muß man dazu in freetz cron gebaut haben und aktivieren/laufen haben)
Hier mal meine aktuelle


=== crontab ===
=== crontab ===
 
<pre style="height: 300px; overflow: scroll"> */2 * * * * for i in ds_attenuation ds_margin dsl_ds_rate dsl_us_rate ds_attainable us_attainable ds_delay modem_ShowtimeSecs; do ctlmgr_ctl r sar status/$i > /var/tmp/$i; done
<pre style="height: 300px; overflow: scroll;">
*/2 * * * * for i in ds_attenuation ds_margin dsl_ds_rate dsl_us_rate ds_attainable us_attainable ds_delay modem_ShowtimeSecs; do ctlmgr_ctl r sar status/$i > /var/tmp/$i; done
  5 * * * * ctlmgr_ctl r sar status/StatMinSNR | tr ',' '\n'|awk '{ i=i+1; printf("\%05d \%s\n", i,$0); }' | sort -r | cut -b 7- > /var/tmp/StatMinSNR
  5 * * * * ctlmgr_ctl r sar status/StatMinSNR | tr ',' '\n'|awk '{ i=i+1; printf("\%05d \%s\n", i,$0); }' | sort -r | cut -b 7- > /var/tmp/StatMinSNR
  */5 * * * * ctlmgr_ctl r sar status/StatCRC | tr ',' '\n' > /var/tmp/StatCRC
  */5 * * * * ctlmgr_ctl r sar status/StatCRC | tr ',' '\n' > /var/tmp/StatCRC
Zeile 43: Zeile 134:
  15 23 * * * cp /var/tmp/onlinezeiten /var/media/ftp/uStor01; tail /var/tmp/onlinezeiten > /var/tmp/onlinezeiten2
  15 23 * * * cp /var/tmp/onlinezeiten /var/media/ftp/uStor01; tail /var/tmp/onlinezeiten > /var/tmp/onlinezeiten2
</pre>
</pre>
StatMinSNR ist hier mal mit Sortierung gemacht, braucht man nicht wirklich wenn man in der lcd4linux.conf die Reihenfolge der Zeilen berücksichtigt (aktuellster Wert ist letzte Zeile) und die aktuellen Werte mit ''tail'' unten abfischt. Einfacher scheint es nicht zu gehen mit Sortieren, da alles nur ''busybox'' ist und nicht die vollen Optionen der Originaltools zur Verfügung stehen.
StatMinSNR ist hier mal mit Sortierung gemacht, braucht man nicht wirklich wenn man in der lcd4linux.conf die Reihenfolge der Zeilen berücksichtigt (aktuellster Wert ist letzte Zeile) und die aktuellen Werte mit ''tail'' unten abfischt. Einfacher scheint es nicht zu gehen mit Sortieren, da alles nur ''busybox'' ist und nicht die vollen Optionen der Originaltools zur Verfügung stehen. Viele werden sich fragen, "warum nicht alles via dem exec-plugin von lcd4linux?" - ganz einfach: die 7170 ist da viel zu Leistungssschwach für (CPU und auch RAM)
Viele werden sich fragen, "warum nicht alles via dem exec-plugin von lcd4linux?" - ganz einfach: die 7170 ist da viel zu Leistungssschwach für (CPU und auch RAM)


=== lcd4linux.conf ===
=== lcd4linux.conf ===
 
<pre style="height: 300px; overflow: scroll">#Display 'Image'                                                                                                       
Hier die im obigen Bild genutzte lcd4linux.conf. Einige Sachen sind noch nicht im fertigen Zustand, andere irgendwie noch Buggy vom lcd4linux her.
 
<pre style="height: 300px; overflow: scroll;">
#Display 'Image'                                                                                                       
Display 'dpf'                                                                                                           
Display 'dpf'                                                                                                           


Zeile 384: Zeile 470:
Widget wlanBar {                                                                                                                         
Widget wlanBar {                                                                                                                         
     class 'Bar'                                                                                                                         
     class 'Bar'                                                                                                                         
     expression  (Display == 'dpf') ? (netdev::fast('tiwlan0', 'Rx_bytes', 1000)/1024) : '1800'
     expression  (Display == 'dpf')&nbsp;? (netdev::fast('tiwlan0', 'Rx_bytes', 1000)/1024)&nbsp;: '1800'
     expression2 (Display == 'dpf') ? (netdev::fast('tiwlan0', 'Tx_bytes', 1000)/1024) : '900'
     expression2 (Display == 'dpf')&nbsp;? (netdev::fast('tiwlan0', 'Tx_bytes', 1000)/1024)&nbsp;: '900'
#    expression 1800
#    expression 1800
#    expression2 900
#    expression2 900
Zeile 457: Zeile 543:
Widget CRCNull {                                                                             
Widget CRCNull {                                                                             
     class 'Text'                                                                                       
     class 'Text'                                                                                       
     expression a=file::readline('/var/tmp/StatCRC', 1);(a == 0 ? '_0' : '' )
     expression a=file::readline('/var/tmp/StatCRC', 1);(a == 0&nbsp;? '_0'&nbsp;: '' )
     width 2                                             
     width 2                                             
     Foreground '22ff22'                                                                               
     Foreground '22ff22'                                                                               
Zeile 561: Zeile 647:
Widget CRCBarNow {                                                               
Widget CRCBarNow {                                                               
     class 'Bar'                                                                 
     class 'Bar'                                                                 
     expression2  a=file::readline('/var/tmp/StatCRC', 1);a == 1 ? '0.2' : log(a)
     expression2  a=file::readline('/var/tmp/StatCRC', 1);a == 1&nbsp;? '0.2'&nbsp;: log(a)
     expression b=file::readline('/var/tmp/StatCRC', 2);b == 1 ? '0.2' : log(b)
     expression b=file::readline('/var/tmp/StatCRC', 2);b == 1&nbsp;? '0.2'&nbsp;: log(b)
     max 5                                                                       
     max 5                                                                       
     length 5                                                                   
     length 5                                                                   
Zeile 576: Zeile 662:
Widget CRCBar1 {                                                 
Widget CRCBar1 {                                                 
     class 'Bar'                                           
     class 'Bar'                                           
     expression2  a=file::readline('/var/tmp/StatCRC', 3);a == 0 ? '0.1' : log(a)
     expression2  a=file::readline('/var/tmp/StatCRC', 3);a == 0&nbsp;? '0.1'&nbsp;: log(a)
     expression b=file::readline('/var/tmp/StatCRC', 4);b == 0 ? '0.1' : log(b)
     expression b=file::readline('/var/tmp/StatCRC', 4);b == 0&nbsp;? '0.1'&nbsp;: log(b)
     max 5                                                       
     max 5                                                       
     length 5                                                                                     
     length 5                                                                                     
Zeile 589: Zeile 675:
Widget CRCBar2 {                                                                                 
Widget CRCBar2 {                                                                                 
     class 'Bar'                                                                               
     class 'Bar'                                                                               
     expression2  a=file::readline('/var/tmp/StatCRC', 5);a == 0 ? '0.1' : log(a)
     expression2  a=file::readline('/var/tmp/StatCRC', 5);a == 0&nbsp;? '0.1'&nbsp;: log(a)
     expression b=file::readline('/var/tmp/StatCRC', 6);b == 0 ? '0.1' : log(b)
     expression b=file::readline('/var/tmp/StatCRC', 6);b == 0&nbsp;? '0.1'&nbsp;: log(b)
     max 5                                                                                         
     max 5                                                                                         
     length 5                                                                                   
     length 5                                                                                   
Zeile 602: Zeile 688:
Widget CRCBar3 {                                                                                 
Widget CRCBar3 {                                                                                 
     class 'Bar'                                                                               
     class 'Bar'                                                                               
     expression2  a=file::readline('/var/tmp/StatCRC', 7);a == 0 ? '0.1' : log(a)
     expression2  a=file::readline('/var/tmp/StatCRC', 7);a == 0&nbsp;? '0.1'&nbsp;: log(a)
     expression b=file::readline('/var/tmp/StatCRC', 8);b == 0 ? '0.1' : log(b)
     expression b=file::readline('/var/tmp/StatCRC', 8);b == 0&nbsp;? '0.1'&nbsp;: log(b)
     max 5                                                                                         
     max 5                                                                                         
     length 5                                                                                   
     length 5                                                                                   
Zeile 615: Zeile 701:
Widget CRCBar4 {                                                                   
Widget CRCBar4 {                                                                   
     class 'Bar'                                                                   
     class 'Bar'                                                                   
     expression2  a=file::readline('/var/tmp/StatCRC', 9);a == 0 ? '0.1' : log(a)   
     expression2  a=file::readline('/var/tmp/StatCRC', 9);a == 0&nbsp;? '0.1'&nbsp;: log(a)   
     expression b=file::readline('/var/tmp/StatCRC', 10);b == 0 ? '0.1' : log(b)     
     expression b=file::readline('/var/tmp/StatCRC', 10);b == 0&nbsp;? '0.1'&nbsp;: log(b)     
     max 5                                                                                     
     max 5                                                                                     
     length 5                                                                       
     length 5                                                                       
Zeile 628: Zeile 714:
Widget CRCBar5 {                                                                   
Widget CRCBar5 {                                                                   
     class 'Bar'                                                                   
     class 'Bar'                                                                   
     expression2  a=file::readline('/var/tmp/StatCRC', 11);a == 0 ? '0.1' : log(a)   
     expression2  a=file::readline('/var/tmp/StatCRC', 11);a == 0&nbsp;? '0.1'&nbsp;: log(a)   
     expression b=file::readline('/var/tmp/StatCRC', 12);b == 0 ? '0.1' : log(b)     
     expression b=file::readline('/var/tmp/StatCRC', 12);b == 0&nbsp;? '0.1'&nbsp;: log(b)     
     max 5                                                                                     
     max 5                                                                                     
     length 5                                                                       
     length 5                                                                       
Zeile 641: Zeile 727:
Widget CRCBar6 {                                                                   
Widget CRCBar6 {                                                                   
     class 'Bar'                                                                   
     class 'Bar'                                                                   
     expression2  a=file::readline('/var/tmp/StatCRC', 13);a == 0 ? '0.1' : log(a)   
     expression2  a=file::readline('/var/tmp/StatCRC', 13);a == 0&nbsp;? '0.1'&nbsp;: log(a)   
     expression b=file::readline('/var/tmp/StatCRC', 14);b == 0 ? '0.1' : log(b)     
     expression b=file::readline('/var/tmp/StatCRC', 14);b == 0&nbsp;? '0.1'&nbsp;: log(b)     
     max 5                                                                                     
     max 5                                                                                     
     length 5                                                                       
     length 5                                                                       
Zeile 655: Zeile 741:
Widget CRCBar7 {                                                                                           
Widget CRCBar7 {                                                                                           
     class 'Bar'                                                                                             
     class 'Bar'                                                                                             
     expression2  a=file::readline('/var/tmp/StatCRC', 15);a == 0 ? '0.1' : log(a)                           
     expression2  a=file::readline('/var/tmp/StatCRC', 15);a == 0&nbsp;? '0.1'&nbsp;: log(a)                           
     expression b=file::readline('/var/tmp/StatCRC', 16);b == 0 ? '0.1' : log(b)                             
     expression b=file::readline('/var/tmp/StatCRC', 16);b == 0&nbsp;? '0.1'&nbsp;: log(b)                             
     max 5                                                                                                   
     max 5                                                                                                   
     length 5                                                                                               
     length 5                                                                                               
Zeile 668: Zeile 754:
Widget CRCBar8 {                                                                                           
Widget CRCBar8 {                                                                                           
     class 'Bar'                                                                                             
     class 'Bar'                                                                                             
     expression2  a=file::readline('/var/tmp/StatCRC', 17);a == 0 ? '0.1' : log(a)                           
     expression2  a=file::readline('/var/tmp/StatCRC', 17);a == 0&nbsp;? '0.1'&nbsp;: log(a)                           
     expression b=file::readline('/var/tmp/StatCRC', 18);b == 0 ? '0.1' : log(b)                             
     expression b=file::readline('/var/tmp/StatCRC', 18);b == 0&nbsp;? '0.1'&nbsp;: log(b)                             
     max 5                                                                                                   
     max 5                                                                                                   
     length 5                                                                                               
     length 5                                                                                               
Zeile 681: Zeile 767:
Widget CRCBar9 {                                                                                           
Widget CRCBar9 {                                                                                           
     class 'Bar'                                                                                             
     class 'Bar'                                                                                             
     expression2  a=file::readline('/var/tmp/StatCRC', 19);a == 0 ? '0.1' : log(a)                           
     expression2  a=file::readline('/var/tmp/StatCRC', 19);a == 0&nbsp;? '0.1'&nbsp;: log(a)                           
     expression b=file::readline('/var/tmp/StatCRC', 20);b == 0 ? '0.1' : log(b)                             
     expression b=file::readline('/var/tmp/StatCRC', 20);b == 0&nbsp;? '0.1'&nbsp;: log(b)                             
     max 5                                                                                                   
     max 5                                                                                                   
     length 5                                                                                               
     length 5                                                                                               
Zeile 695: Zeile 781:
Widget CRCBar10 {                                                                             
Widget CRCBar10 {                                                                             
     class 'Bar'                                                                               
     class 'Bar'                                                                               
     expression2  a=file::readline('/var/tmp/StatCRC', 21);a == 0 ? '0.1' : log(a)
     expression2  a=file::readline('/var/tmp/StatCRC', 21);a == 0&nbsp;? '0.1'&nbsp;: log(a)
     expression b=file::readline('/var/tmp/StatCRC', 22);b == 0 ? '0.1' : log(b)   
     expression b=file::readline('/var/tmp/StatCRC', 22);b == 0&nbsp;? '0.1'&nbsp;: log(b)   
     max 5                                                                                                   
     max 5                                                                                                   
     length 5                                                                     
     length 5                                                                     
Zeile 708: Zeile 794:
Widget CRCBar11 {                                                                             
Widget CRCBar11 {                                                                             
     class 'Bar'                                                                               
     class 'Bar'                                                                               
     expression2  a=file::readline('/var/tmp/StatCRC', 23);a == 0 ? '0.1' : log(a)
     expression2  a=file::readline('/var/tmp/StatCRC', 23);a == 0&nbsp;? '0.1'&nbsp;: log(a)
     expression b=file::readline('/var/tmp/StatCRC', 24);b == 0 ? '0.1' : log(b)   
     expression b=file::readline('/var/tmp/StatCRC', 24);b == 0&nbsp;? '0.1'&nbsp;: log(b)   
     max 5                                                                                                   
     max 5                                                                                                   
     length 5                                                                     
     length 5                                                                     
Zeile 1.081: Zeile 1.167:
Layout 'mylayout'
Layout 'mylayout'
</pre>
</pre>
=== onlinechanged ===
=== onlinechanged ===


Für die Onlinezeit-Statistiken benötigt man außerdem noch hilfe via onlinechanged bzw /var/tmp/onlinechanged
Für die Onlinezeit-Statistiken benötigt man außerdem noch hilfe via onlinechanged bzw /var/tmp/onlinechanged
<pre style="height: 300px; overflow: scroll;">
<pre style="height: 300px; overflow: scroll"> #!/bin/sh
#!/bin/sh
  case "$1" in
  case "$1" in
   
   
  online )
  online )
     date +%s > /tmp/gone_online
     date +%s > /tmp/gone_online
    ;;
    &nbsp;;;
   offline )
   offline )
     ONLINE=$(cat /tmp/gone_online)
     ONLINE=$(cat /tmp/gone_online)
     OFFLINE=$(date +%s)
     OFFLINE=$(date +%s)
     echo $ONLINE $(($OFFLINE-$ONLINE)) >> /tmp/onlinezeiten
     echo $ONLINE $(($OFFLINE-$ONLINE)) >> /tmp/onlinezeiten
    ;;
    &nbsp;;;
  esac
  esac
</pre>
</pre>
<br/>Dazu gibt es auch ein addon , näheres dazu ist hier zu finden [http://www.zebradem.com/49910-infos-zu-addons#post421209 http://www.zebradem.com/49910-infos-zu-addons#post421209]
=== DPF Hack Display unter Windows flashen ===
hier eine Anleitung wie man das Ganze alternativ unter Windows machen kann. Selbst gebrickte DPFs kann man damit wieder zum Leben erwecken!
*Was brauch ihr?
Ein Pearl-DPF, also das hier oder das hier. Sind beides die Gleichen. Vom 1. bekommt man nur eins pro Bestellung, vom 2. soviel man Geld hat. Ein gutes USB-Kabel. Nehmt NICHT das Billigst-Kabel das dem Display beiliegt. Für den Betrieb mag das zur Not noch reichen Pearl_DPF_hackfin_firmware_bootflasher.zip -- getestet mit Windows XP und Windows 7.
Los gehts:
*Verbindet das Display NOCH NICHT mit dem Rechner!
*Entpackt erstmal die Pearl_DPF_hackfin_firmware_bootflasher.zip.
*Wechselt in das Verzeichnis "Pearl_DPF_hackfin_firmware_bootflasher" und startet dort das Program ProgSPI.exe.
*Geht zuerst auf "Settings" und überprüft, dass "Program" gewählt und "Reset" angekreuzt ist.
*Jetzt auf "Browse" und die Firmware auswählen. Im Archiv sind drei Firmware-Dateien mit dabei:
"*Pearl DPF unmodified firmware.bin" - das ist die Original-Firmware des Pearl DPF. "*Pearl DPF hackfin landscape 0.12devel firmware.bin" - das ist die gehackte Firmware, Querformat-Anzeige. "*Pearl DPF hackfin portrait 0.12devel firmware.bin" - das ist die gehackte Firmware, Hochformat-Anzeige.
*Für den Betrieb mit graphlcd empfehle ich die Landscape-Variante (Nummer 2).
ACHTUNG! Der Firmware ist nur für das oben angegebene Pearl-DPF geeignet! Alle anderen Displays verwandeln sich damit mit ziemlicher Sicherheit in Briefbeschwerer!
*Display an USB anstecken.
*DRÜCKT NICHT MENÜ! WÄHLT NICHT DEN MENÜPUNKT "Mit PC verbinden" (erster Menüpunkt)!
*Jetzt kommt der Trick: drückt die RESET-Taste am Display (kleines Loch auf der Rückseite oben links, am besten ne Büroklammer rein bis es "klick" macht), haltet die Taste gedrückt und jetzt MENÜ dazu drücken, RESET loslassen, MENÜ loslassen.
*Wenn die Reihenfolge gestimmt hat, sollte das Display jetzt schwarz sein und im Flasher wird das Kästchen hinter "Channel 1" grün.
*Jetzt "Execute" drücken. Im Flash-Auswahlfenster wählt Ihr den ersten Punkt "Winbond 25P16".
*Mit Doppelklick bestätigen jetzt bitte etwas Geduld - das Programmieren dauert jetzt ca. 2-3 Minütchen...
*Danach macht das Display automatisch einen Reset und zeigt seine umwerfende Diashow.
*Jetzt zur Sicherheit noch mal den RESET Knopf mit der Büroklammer bearbeiten.
*Wenn Ihr eine der gehackten Firmwares programmiert habt, könnt Ihr jetzt für ca. 2 Sekunden die MENÜ-Taste drücken und es sollte der BSOH ("Blue Screen of Hack") erscheinen.
Fertig.
== Liste geeigneter Displays ==
*Beckmann+Egle MiniTerminals and CompactTerminals
*BWCT USB-to-HD44780 interface
*Crystalfontz serial and USB displays
*Curses (Text) for testing and debugging
*CwLinux character and graphical displays
*4D Systems Display Graphics Modules
*DPF Digital Photo Frame
*Electronic Assembly RS232 Graphic serial graphic units
*EFN and EUG 100 EFN LED modules connected to an ethernet to serial converter
*Allnet FW8888 Firewall Appliance
*G-15 / Z-10 / Dell M1730 Logitech combined keyboard/LCD screen, speaker/LCD and Dell M1730 with Logitech gaming LCD
*Hitachi HD44780 probably the most common LCD controller out there!
*Image driver to get pictures out of LCD4Linux
*IRLCD DIY HD44780 / IR receiver to USB 1.1 interface, with ATtiny2313 (based on AVRUSB AVRUSB homepage)
*LCD2USB DIY HD44780 to USB interface LCD2USB homepage
*LCD-Linux HD44780 kernel device driver
*LCDTerm serial-to-HD44780 interface
*LEDMatrix DIY ethernet LED matrix display LEDMATRIX homepage
*LPH7508 display by Pollin
*LUI LCD-USB-Interface by Wallbraun Electronics
*LW_ABP Logic Way appliance control panel ABP08, ABP09 Logic Way GmbH
*Mitsubishi M50530 similar to HD44780, but for larger displays
*MatrixOrbital serial and USB displays
*MatrixOrbitalGX GX Series USB LCD displays
*Milford Instruments serial displays
*Newhaven driver for various I2C and serial displays by Newhaven
*Noritake driver for various displays by Noritake
*Null driver for testing purposes
*Palm Pilot emulating a MatrixOrbital display
*Pertelian serial over usb LCD device Pertelian
*PHAnderson serial-to-HD44780 controller PHAnderson homepage
*picoLCD true USB hid LCD device with keypad, gpo and infrared receiver picoLCD homepage
*RouterBoard driver to connect a HD44780 on their LCD header
*SamsungSPF Samsung digital picture frames, models spf-75h, spf-85h, spf-107h
*SimpleLCD Simple serial terminal display, supports an optional and limited vt-100 mode
*Skyper display module of an NEC 21a pager
*st2205 st2205 based displays, check the picframe project
*SureElectronics LCD Display Board with USB (as part of MatrixOrbital driver)
*Toshiba T6963 Controller for large graphical LCD's
*TREFON USB LCD text and graphic displays
*ULA 200 USB-to-HD44780 interface from ELV
*USBHUB Driver for the port status indicator LEDs on an USB HUB
*USBLCD USB-to-HD44780 interface
*VNC driver VNC Server
*WincorNixdorf BA63 & BA66 serial cashier displays
*X11 driver simulating displays of any size
== Quellenangaben ==
*[http://www.wehavemorefun.de/fritzbox/index.php/Lcd4linux http://www.wehavemorefun.de/fritzbox/index.php/Lcd4linux]
*[http://geekparadise.de/tag/dpfhack/ http://geekparadise.de/tag/dpfhack/]
*[http://tech.section5.ch/news/?p=68 http://tech.section5.ch/news/?p=68]
*[http://tech.section5.ch/news/?p=77 http://tech.section5.ch/news/?p=77]
*[http://www.mikrocontroller.net/topic/220658 http://www.mikrocontroller.net/topic/220658]
*[http://www.vdr-portal.de/board18-vdr-hardware/board11-lcds/109196-howto-pearl-dpf-easy-hacking/ http://www.vdr-portal.de/board18-vdr-hardware/board11-lcds/109196-howto-pearl-dpf-easy-hacking/]
*[http://ssl.bulix.org/projects/lcd4linux/ http://ssl.bulix.org/projects/lcd4linux/]
*[[FRITZ!Box|Zurück zu Fritzbox]]
*[[Hauptseite|Zurück zu Hauptseite]]
</div></div>
[[Category:Fritzbox]]

Aktuelle Version vom 7. März 2014, 17:25 Uhr


Das Board mit Freiheiten





----

Zebradem Fritzbox Wiki >> Lcd4linux Magyar, Nederlands, Italiano, English
Community Modelle Freetz Fritzbox Tipps & Tricks

Einführung Freetz Pakete Freetz Addons Freetz Tipps Freetz chroot Freetz Images Freetz Faqs

PEARL HPM-1184.jpg Pearl-lcd-Pack.jpeg

Pearl HPM1184 (PX-1184-675), Digitaler Bilderrahmen mit AX206 Chip


Samsung spf-87h.jpg

  • Samsung Displays
SPF-72H | SPF-75H | SPF-83H | SPF-85H | SPF-85P | SPF-87H | SPF-105P | SPF-107H | SPF-700T

Neue Methode: http://www.zebradem.com/wiki/index.php?title=Lcd4linux_DPF_Easy_Hacking_-_TNG

Bilderrahmen patchen

Der pearl Birlderrahmen muss dazu erst gepatched werden.

Am einfachsten geht es am PC unter LInux bzw Linux in virtueller Umgebung

cd lcd4linux
cd ../src
sudo python hackit.py /dev/sg0

vorher mit dmesg überprüfen auf welchem port das Gerät liegt , meisst sg0 oder sg1 Gerät anschliessen und Menue drücken und mit PC verbinden mit ja bestätigen

Wenn alles glatt gelaufen ist erscheint am Ende

Patching at offset 000002b9, chunk size 1
Read 503 bytes
Analyzing module 37...
Module already patched

Now disconnect the DPF from USB.
To activate the 'developer mode':

Press and hold MENU while USB is plugged in.
If successful, you will get the 'USB connect' message and the device
will appear as non-USB storage device

To put the device back into (almost) original state working
as USB storage, press the RESET button.
zebra@zebra:~/lcd2/dpf/src$ 

Wenn folgende Fehlermeldung kommt...

Opening generic SCSI device '/dev/sg2'
Reading flash...
done
]No DPF found. Create a record or look for one
('20090504', 'Mar 27 2010\xff\xff\xff\xff\xff', 'ProcTbl5')[/CODE]
...muss noch die Datei profiles.py angepasst werden.

Original:

[ ('20090504', 'Mar 26 2010\xff\xff\xff\xff\xff', 'ProcTbl5' ),
"pearl",
"http://www.pearl.de/a-HPM1184-5618.shtml",
{ },
[ 0, 0x200000, patch_320x240 ]
],

Modifiziert:

[ ('20090504', 'Mar 27 2010\xff\xff\xff\xff\xff', 'ProcTbl5' ),
"pearl",
"http://www.pearl.de/a-HPM1184-5618.shtml",
{ },
[ 0, 0x200000, patch_320x240 ]
],


Neuer Versuch, hier wird es auch als Perl-Display erkannt:

Patching at offset 000002b9, chunk size 1
Read 503 bytes
Analyzing module 37...
Module already patched

Now disconnect the DPF from USB.
To activate the 'developer mode':

Press and hold MENU while USB is plugged in.
If successful, you will get the 'USB connect' message and the device
will appear as non-USB storage device

To put the device back into (almost) original state working
as USB storage, press the RESET button.
zebra@zebra:~/lcd2/dpf/src$ 

Jetzt das DPF abstecken und wieder an der Fritzbox anstecken. In den Developer-Mode gehen (Menü-Taste länger gedrückt halten).

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 14 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs=  1
P:  Vendor=1908 ProdID=0102 Rev= 2.00
S:  Manufacturer=hackfin
S:  Product=USB-Display
S:  SerialNumber=0000
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I:  If#= 0 alt=" 0" #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=usbfs
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms


Hinweis: Das Gerät kann durch einfaches Reset wieder auf Werkseinstellungen zurück gesetzt werden

Links : [url]http://www.zebradem.com/61688-fb-7270v3-cccam-monitor-mit-pearl-2-90-display-und-lcd4linux#post440387[/url]

lcd4linux

Lcd4linux muß natürlich für die antsprechende Architektur mit DPF-Support gebaut werden.

LCD4Linux 0.11.0-SVN-1158
Copyright (C) 2005, 2006, 2007, 2008, 2009 The LCD4Linux Team <[email protected]>

available display drivers:
   DPF                 : generic hacked photo frame
   Image               : PNG

available plugins:
  cfg, math, string, test, time, apm, asterisk, button_exec, cpuinfo, diskstats, dvb, exec, event, fifo, file, hddtemp, huawei, i2c_sensors, imon, isdn, kvv, loadavg, meminfo, netdev, pop3, ppp, proc_stat, sample, seti, statfs, uname, uptime, w1retap, wireless, xmms

Dann die Binary und config auf den USB-Stick kopieren.

Konfiguration

Selbst wenn das lcd4linux schon auf bzw an der Box ist, läuft es noch lange nicht *gg*. Die lcd4linux.conf sollte außerdem Permissions 600 haben , also chmod 600

crontab

 */2 * * * * for i in ds_attenuation ds_margin dsl_ds_rate dsl_us_rate ds_attainable us_attainable ds_delay modem_ShowtimeSecs; do ctlmgr_ctl r sar status/$i > /var/tmp/$i; done
 5 * * * * ctlmgr_ctl r sar status/StatMinSNR | tr ',' '\n'|awk '{ i=i+1; printf("\%05d \%s\n", i,$0); }' | sort -r | cut -b 7- > /var/tmp/StatMinSNR
 */5 * * * * ctlmgr_ctl r sar status/StatCRC | tr ',' '\n' > /var/tmp/StatCRC
 */5 * * * * ctlmgr_ctl r sar status/StatVolume | tr ',' '\n' > /var/tmp/StatVolume
 15 23 * * * cp /var/tmp/onlinezeiten /var/media/ftp/uStor01; tail /var/tmp/onlinezeiten > /var/tmp/onlinezeiten2

StatMinSNR ist hier mal mit Sortierung gemacht, braucht man nicht wirklich wenn man in der lcd4linux.conf die Reihenfolge der Zeilen berücksichtigt (aktuellster Wert ist letzte Zeile) und die aktuellen Werte mit tail unten abfischt. Einfacher scheint es nicht zu gehen mit Sortieren, da alles nur busybox ist und nicht die vollen Optionen der Originaltools zur Verfügung stehen. Viele werden sich fragen, "warum nicht alles via dem exec-plugin von lcd4linux?" - ganz einfach: die 7170 ist da viel zu Leistungssschwach für (CPU und auch RAM)

lcd4linux.conf

#Display 'Image'                                                                                                       
Display 'dpf'                                                                                                          

Variables {                                                                                                                                             
# update-zeiten
    tick 2000                                                                                 
    tack 500                                                                                  
    minute 60000                                                                                 
    _10min 600000                                                                                                                                                                            
    stunde 3600000                                                                                                                                      
# farbdefinitionen
	gn '22ff22'
	rt 'ff9999'
	bl '5f5fff'
	hbl '9999ff'
	rtbusy 'ff6060'
	gnbusy '227722'

# farbensettings
#	C_SNRBar	bl
#	C_SNRBarNow	hbl
#	C_CRCBar
#	C_CRCBarNow
C_Busy 'ff6060'
C_BusyBG '227722'
C_OnBar '777777'
C_OnBarNow '999999'
}  
 
Display Image {
    Driver     'Image'
    Format     'PNG'
    Size       '320x240'
    Pixel      '1+0'
    Gap        '0x0' 
    Font       '8x10'
    Foreground 'ffffff'
    Background '000000'
    Basecolor  '000000'
}

Display dpf {
  Driver     'DPF'                                                                                 
  Port       'usb0'                                                                                                       
# Font       '6x8'
 Font       '8x10'
  Foreground 'ffffff'                                                                          
  Background '222222'                                                                                
  Basecolor  '222222'                                                                                
}


Widget RAM {
    class  'Text'
    expression  meminfo('MemFree')
    prefix 'RAM '
    postfix 'k'
    precision 0
    width 10 
    align  'L'
    update tack
    Background '225522'
}

Widget dslspeed {                                                                               
    class 'Text'                                                                           
    expression 'Dn/Up '.file::readline('/var/tmp/dsl_ds_rate', 1).' / '.file::readline('/var/tmp/dsl_us_rate', 1).'kBit'
    width 39                                                                                                
    align 'L'
    update minute
}

Widget IPaddy {                                           
    class 'Text'                                                                                                       
    expression exec('get_ip', 60000)
#expression '127.0.0.1'
    width 15                                                
    align 'L'                                                                                          
    update minute                                                                                
}                                                                                                                                                                                            

Widget ltg {             
    class 'Text'                             
    expression file::readline('/var/tmp/ds_attainable', 1).' / '.file::readline('/var/tmp/us_attainable', 1).'kBit   LD '.file::readline('/var/tmp/ds_attenuation', 1).' dB'
    Prefix 'Ltng. '
    width 35                                                                                                           
    align 'L'                                                                                                          
    update minute
}                                              


Widget BusyText {
    class 'Text'
    prefix 'CPU            Load '
    expression loadavg(1)
    align 'L'
    width 23
    precision 1
    Foreground 'ffffff'
    Background 'ffffff00'
    update tick
}

Widget BusyBar {
    class 'Bar'
    expression  proc_stat::cpu('busy',   500)
#    expression 30
    length 10
    max 100
    direction 'E'
    update tick
    style 'H'
    Foreground C_Busy
    Background C_BusyBG
    BarColor0 C_Busy
    BarColor1 C_Busy
}


Widget SNRBar1 {                              
    class 'Bar'                              
    expression  file::readline('/var/tmp/StatMinSNR', 1)                                      
    expression2  file::readline('/var/tmp/StatMinSNR', 2)
    max 15           
    length 5            
    direction 'N'      
    update _10min
    Foreground '5f5fff'
    BarColor0 '5f5fff'                                                                                                       
    BarColor1 '5f5fff'
}
                                       
Widget SNRBar2 {                              
    class 'Bar'                                                                                        
    expression  file::readline('/var/tmp/StatMinSNR', 3)                                               
    expression2  file::readline('/var/tmp/StatMinSNR', 4)                                                                    
    max 15                                               
    length 5                                             
    direction 'N'                                        
    update _10min
    Foreground '5f5fff'                                      
    BarColor0 '5f5fff'                                   
    BarColor1 '5f5fff'                                   
} 

Widget SNRBar3 {                              
    class 'Bar'                                                                                                              
    expression  file::readline('/var/tmp/StatMinSNR', 5) 
    expression2  file::readline('/var/tmp/StatMinSNR', 6)
    max 15               
    length 5           
    direction 'N'                                     
    update _10min
    Foreground '5f5fff'                                  
    BarColor0 '5f5fff'                                                                                                                  
    BarColor1 '5f5fff'   
}

Widget SNRBar4 {                              
    class 'Bar'                                                                              
    expression  file::readline('/var/tmp/StatMinSNR', 7) 
    expression2  file::readline('/var/tmp/StatMinSNR', 8)
    max 15                                               
    length 5                                             
    direction 'N'                                        
    update _10min
    Foreground '5f5fff'                                  
    BarColor0 '5f5fff'                                   
    BarColor1 '5f5fff'                                                                                 
 } 

Widget SNRBar5 {                              
    class 'Bar'                                          
    expression  file::readline('/var/tmp/StatMinSNR', 9) 
    expression2  file::readline('/var/tmp/StatMinSNR', 10)
    max 15                                               
    length 5                                                                                           
    direction 'N'                                        
    update _10min
    Foreground '5f5fff'                                  
    BarColor0 '5f5fff'                                   
    BarColor1 '5f5fff'                                   
 }

Widget SNRBar6 {                              
    class 'Bar'        
    expression  file::readline('/var/tmp/StatMinSNR', 11)
    expression2  file::readline('/var/tmp/StatMinSNR', 12)
    max 15                                                                                   
    length 5           
    direction 'N'        
    update _10min
    Foreground '5f5fff'                                  
    BarColor0 '5f5fff' 
    BarColor1 '5f5fff'                                                                                                       
}  

Widget SNRBar7 {                              
    class 'Bar'                                                                              
    expression  file::readline('/var/tmp/StatMinSNR', 13)
    expression2  file::readline('/var/tmp/StatMinSNR', 14)
    max 15                                                
    length 5                                              
    direction 'N'                                         
    update _10min
    Foreground '5f5fff'                                   
    BarColor0 '5f5fff'                                    
    BarColor1 '5f5fff'                                    
}
                                            
Widget SNRBar8 {                              
    class 'Bar'                                                                                        
    expression  file::readline('/var/tmp/StatMinSNR', 15)                                              
    expression2  file::readline('/var/tmp/StatMinSNR', 16)                                             
    max 15                                                                                             
    length 5                                                                                           
    direction 'N'                                                                                      
    update _10min
    Foreground '5f5fff'                                                                                
    BarColor0 '5f5fff'                                                                                 
    BarColor1 '5f5fff'                                                                                                       
 }

Widget SNRBar9 {                              
    class 'Bar'                                                                                        
    expression  file::readline('/var/tmp/StatMinSNR', 17)                                              
    expression2  file::readline('/var/tmp/StatMinSNR', 18)                                             
    max 15                                                                                             
    length 5                                                                                           
    direction 'N'                                                                                      
    update _10min                                                                                      
    Foreground '5f5fff'                                                                                
    BarColor0 '5f5fff'                                                                                 
    BarColor1 '5f5fff'                                                                                                       
 }

Widget SNRBar10 {                              
    class 'Bar'                                           
    expression  file::readline('/var/tmp/StatMinSNR', 19) 
    expression2  file::readline('/var/tmp/StatMinSNR', 20)
    max 15                                                
    length 5                                              
    direction 'N'                                                                            
    update _10min                                          
    Foreground '5f5fff'                                   
    BarColor0 '5f5fff'                                    
    BarColor1 '5f5fff'                                    
}                                                        

Widget SNRBar11 {                              
    class 'Bar'                                           
    expression  file::readline('/var/tmp/StatMinSNR', 21) 
    expression2  file::readline('/var/tmp/StatMinSNR', 22)
    max 15                                                
    length 5                                              
    direction 'N'                                                                            
    update _10min                                          
    Foreground '5f5fff'                                   
    BarColor0 '5f5fff'                                    
    BarColor1 '5f5fff'                                    
}                                                        
                                                                                  
Widget SNRBar12 {                              
    class 'Bar'                                           
    expression  file::readline('/var/tmp/StatMinSNR', 23) 
    expression2  file::readline('/var/tmp/StatMinSNR', 24)
    max 15                                                
    length 5                                              
    direction 'N'                                                                            
    update _10min                                         
    Foreground '5f5fff'                                   
    BarColor0 '5f5fff'                                    
    BarColor1 '5f5fff'                                    
 }                                                        
                                         
Widget SNRBarNow {                              
    class 'Bar'                                           
        expression  file::readline('/var/tmp/ds_margin', 1)
        max 15                                               
        length 5                                              
        direction 'N'                                                                                
        update minute                                                                                                             
        style 'H'                                                 
        Foreground '9999ff'                                         
        BarColor0 '9999ff'                                  
        BarColor1 '9999ff'                                   
 }  

Widget wlanText {
    class 'Text'
    expression ((netdev::fast('tiwlan0', 'Rx_bytes', 1000) + netdev('tiwlan0', 'Tx_bytes', 1000))/1024)
#expression 2700
    prefix 'wlan '
    width 21
    precision 0
    align 'L'
    update tick
    Foreground 'ffffff'
    Background '00000000'
}

Widget adslText {                                         
    class 'Text'       
    expression ((netdev::fast('adsl', 'Rx_bytes', 1000) + netdev('adsl', 'Tx_bytes', 1000))/1024)                                                                                            
#    expression 2700                                                                          
    prefix 'adsl '
    width 21             
    precision 0                              
    align 'L'                                
    update tick                                                                              
    Foreground 'ffffff'                      
    Background '00000000'
 }

Widget adslBar {
    class 'Bar'
    expression  (netdev::fast('adsl', 'Rx_bytes', 1000)/1024)
    expression2 (netdev::fast('adsl', 'Tx_bytes', 1000)/1024)
#    expression 1800                                                                          
#   expression2 900                                                                                                                                                        
 
    length 18
    direction 'E'
    update tack
    max 1800
    Foreground 'ffffff'
    Background '00000000'
    BarColor0 '5f5fff'
    BarColor1 'ff5f5f'
}

Widget wlanBar {                                                                                                                        
    class 'Bar'                                                                                                                         
    expression  (Display == 'dpf') ? (netdev::fast('tiwlan0', 'Rx_bytes', 1000)/1024) : '1800'
    expression2 (Display == 'dpf') ? (netdev::fast('tiwlan0', 'Tx_bytes', 1000)/1024) : '900'
#    expression 1800
#    expression2 900
    length 18                                                                               
    direction 'E'                                                                           
    update tack                                                                             
    max 1800
    Foreground 'ffffff'                                                                     
    Background '00000000'                                                                   
    BarColor0 '5f5fff'                                                                      
    BarColor1 'ff5f5f'                                                                                    
}                                                     

Widget lanBar {                                                                                    
    class 'Bar'                                                                                  
    expression  (netdev::fast('eth0', 'Tx_bytes', 1000)/1024)
    expression2 (netdev::fast('eth0', 'Rx_bytes', 1000)/1024)                                                                           
#        expression 1800                                                                               
#       expression2 900                                          
    length 37
    direction 'E'                                            
    update tack                                              
    max 1800                                                 
    Foreground 'ffffff'                                      
    Background '00000000'                                                                     
    BarColor0 '5f5fff'                                                                        
    BarColor1 'ff5f5f'                                                                        
}

Widget lanText {                                                                                           
    class 'Text'                                                                                       
    expression ((netdev::fast('eth0', 'Rx_bytes', 1000) + netdev('eth0', 'Tx_bytes', 1000))/1024)
# expression 2700
    max 1800
    precision 0
    prefix 'LAN '                                                                                
    width 30                                                                                     
    align 'L'                                                                                  
    update tick                                                                                  
    Foreground 'ffffff'                                                                          
    Background 'FFFFFF00'                                                                        
 } 

Widget SNRBarTextOben {                                                
    class 'Text'                                                
    expression '15        _10000'
    width 13                                                                                     
    align 'L'                                                                                    
    Foreground 'ffffff'                                                                                                      
    Background 'FFFFFF00'                                    
}

Widget SNRWert {                                                                            
    class 'Text'                                                                                       
    expression file::readline('/var/tmp/ds_margin', 1).' dB'
    width 5                                             
    align 'R'                                                                                                                
    Foreground 'ffffff'                                                                              
    Background 'FFFFFF00'                                                                            
}

Widget SNRBarTextUnten {                                                                  
    class 'Text'                                                                                                       
    expression '0              _1'
    width 17                                                                
    Foreground 'ffffff'                                                                                                                                                                      
    Background '222222'
    update minute
}
                     
Widget CRCNull {                                                                            
    class 'Text'                                                                                       
    expression a=file::readline('/var/tmp/StatCRC', 1);(a == 0 ? '_0' : '' )
    width 2                                             
    Foreground '22ff22'                                                                              
    Background '000000ff'                                                                            
    update minute
} 
# ----------Online Bars------------------

Widget OnBar1 {                                                                                                                      
    class 'Bar'                                                                  
    expression  log(substr(file::readline('/var/tmp/onlinezeiten2', 1),11))
    expression2 log(substr(file::readline('/var/tmp/onlinezeiten2', 2),11))
    max 5                                                                       
    length 5                                                                     
    direction 'N'                                                               
    update stunde                                                               
    Foreground C_OnBar
    BarColor0 C_OnBar                                                          
    BarColor1 C_OnBar                                                                                                               
} 

Widget OnBar2 {                                                            
    class 'Bar'                                                            
    expression  log(substr(file::readline('/var/tmp/onlinezeiten2', 3),11))
    expression2 log(substr(file::readline('/var/tmp/onlinezeiten2', 4),11))
    max 5                
    length 5                       
    direction 'N'                                       
    update stunde                                                                                
    Foreground C_OnBar
    BarColor0 C_OnBar                                      
    BarColor1 C_OnBar
} 

Widget OnBar3 {                           
    class 'Bar'                                                                  
    expression  log(substr(file::readline('/var/tmp/onlinezeiten2', 5),11))                   
    expression2 log(substr(file::readline('/var/tmp/onlinezeiten2', 6),11))                                                                             
    max 5                                                                       
    length 5                                                                   
    direction 'N'                                                               
    update stunde                                                               
    Foreground C_OnBar                                                         
    BarColor0 C_OnBar                                                           
    BarColor1 C_OnBar                                                           
}

Widget OnBar4 {                           
    class 'Bar'                                                                  
    expression  log(substr(file::readline('/var/tmp/onlinezeiten2', 7),11))                   
    expression2 log(substr(file::readline('/var/tmp/onlinezeiten2', 8),11))                                                                             
    max 5                                                                       
    length 5                                                                   
    direction 'N'                                                               
    update stunde                                                               
    Foreground C_OnBar                                                         
    BarColor0 C_OnBar                                                         
    BarColor1 C_OnBar                                                           
}

Widget OnBar5 {                                                                               
    class 'Bar'                                                            
    expression  log(substr(file::readline('/var/tmp/onlinezeiten2', 9),11))
    expression2 log(substr(file::readline('/var/tmp/onlinezeiten2', 10),11))
    max 5                                                                                                                                               
    length 5                                                               
    direction 'N'                                                          
    update stunde                                                          
    Foreground C_OnBar                                                    
    BarColor0 C_OnBar                                                     
    BarColor1 C_OnBar                                                     
} 

Widget OnBar6 {                                                                               
    class 'Bar'                                                            
    expression  log(substr(file::readline('/var/tmp/onlinezeiten2', 11),11))   
    expression2 log(substr(file::readline('/var/tmp/onlinezeiten2', 12),11))
    max 5                                                                                                                                               
    length 5                                                               
    direction 'N'                                                          
    update stunde                                                          
    Foreground C_OnBar
    BarColor0 C_OnBar                                                     
    BarColor1 C_OnBar                                                     
} 

Widget OnBar7 {                                                                               
    class 'Bar'                                                            
    expression  log(substr(file::readline('/var/tmp/onlinezeiten2', 13),11))   
    expression2 log(substr(file::readline('/var/tmp/onlinezeiten2', 14),11))
    max 5                                                                                                                                               
    length 5                                                               
    direction 'N'                                                          
    update stunde                                                          
    style 'H'                                                                                                          
    Foreground C_OnBarNow                                                    
    BarColor0 C_OnBarNow                                                  
    BarColor1 C_OnBarNow                                                   
} 

# ----------Online Bars Ende-------------
# ----------CRC Bars----------------------
Widget CRCBarNow {                                                               
    class 'Bar'                                                                
    expression2  a=file::readline('/var/tmp/StatCRC', 1);a == 1 ? '0.2' : log(a)
    expression b=file::readline('/var/tmp/StatCRC', 2);b == 1 ? '0.2' : log(b)
    max 5                                                                      
    length 5                                                                   
    direction 'N'                                                              
    update minute                                                              
    style 'H'
    Foreground 'ff9999'
    BarColor0 'ff9999'
    BarColor1 'ff9999'
}                                                                                                                                                                                            
                                            

Widget CRCBar1 {                                                
    class 'Bar'                                          
    expression2  a=file::readline('/var/tmp/StatCRC', 3);a == 0 ? '0.1' : log(a)
    expression b=file::readline('/var/tmp/StatCRC', 4);b == 0 ? '0.1' : log(b)
    max 5                                                      
    length 5                                                                                     
    direction 'N'                                         
    update minute                                                                                      
    Foreground 'ff5f5f'                                                                       
    BarColor0 'ff5f5f'                                      
    BarColor1 'ff5f5f'                                   
}

Widget CRCBar2 {                                                                                 
    class 'Bar'                                                                               
    expression2  a=file::readline('/var/tmp/StatCRC', 5);a == 0 ? '0.1' : log(a)
    expression b=file::readline('/var/tmp/StatCRC', 6);b == 0 ? '0.1' : log(b)
    max 5                                                                                        
    length 5                                                                                  
    direction 'N'                                                                                      
    update minute                                                                                      
    Foreground 'ff5f5f'                                                                                
    BarColor0 'ff5f5f'                                                                                 
    BarColor1 'ff5f5f'                                                                                 
}

Widget CRCBar3 {                                                                                 
    class 'Bar'                                                                               
    expression2  a=file::readline('/var/tmp/StatCRC', 7);a == 0 ? '0.1' : log(a)
    expression b=file::readline('/var/tmp/StatCRC', 8);b == 0 ? '0.1' : log(b)
    max 5                                                                                        
    length 5                                                                                  
    direction 'N'                                                                                      
    update minute                                                                                      
    Foreground 'ff5f5f'                                                                                
    BarColor0 'ff5f5f'                                                                                 
    BarColor1 'ff5f5f'                                                                                 
}

Widget CRCBar4 {                                                                  
    class 'Bar'                                                                   
    expression2  a=file::readline('/var/tmp/StatCRC', 9);a == 0 ? '0.1' : log(a)  
    expression b=file::readline('/var/tmp/StatCRC', 10);b == 0 ? '0.1' : log(b)    
    max 5                                                                                    
    length 5                                                                      
    direction 'N'                                                                 
    update minute                                                                 
    Foreground 'ff5f5f'                                                           
    BarColor0 'ff5f5f'                                                            
    BarColor1 'ff5f5f'                                                            
}

Widget CRCBar5 {                                                                  
    class 'Bar'                                                                   
    expression2  a=file::readline('/var/tmp/StatCRC', 11);a == 0 ? '0.1' : log(a)  
    expression b=file::readline('/var/tmp/StatCRC', 12);b == 0 ? '0.1' : log(b)    
    max 5                                                                                    
    length 5                                                                      
    direction 'N'                                                                 
    update minute                                                                 
    Foreground 'ff5f5f'                                                           
    BarColor0 'ff5f5f'                                                            
    BarColor1 'ff5f5f'                                                            
 }

Widget CRCBar6 {                                                                  
    class 'Bar'                                                                   
    expression2  a=file::readline('/var/tmp/StatCRC', 13);a == 0 ? '0.1' : log(a)  
    expression b=file::readline('/var/tmp/StatCRC', 14);b == 0 ? '0.1' : log(b)    
    max 5                                                                                    
    length 5                                                                      
    direction 'N'                                                                 
    update minute                                                                 
    Foreground 'ff5f5f'                                                           
    BarColor0 'ff5f5f'                                                            
    BarColor1 'ff5f5f'                                                            
}


Widget CRCBar7 {                                                                                           
    class 'Bar'                                                                                            
    expression2  a=file::readline('/var/tmp/StatCRC', 15);a == 0 ? '0.1' : log(a)                          
    expression b=file::readline('/var/tmp/StatCRC', 16);b == 0 ? '0.1' : log(b)                            
    max 5                                                                                                  
    length 5                                                                                               
    direction 'N'                                                                                          
    update minute                                                                                          
    Foreground 'ff5f5f'                                                                                    
    BarColor0 'ff5f5f'                                                                                     
    BarColor1 'ff5f5f'                                                                                     
} 

Widget CRCBar8 {                                                                                           
    class 'Bar'                                                                                            
    expression2  a=file::readline('/var/tmp/StatCRC', 17);a == 0 ? '0.1' : log(a)                          
    expression b=file::readline('/var/tmp/StatCRC', 18);b == 0 ? '0.1' : log(b)                            
    max 5                                                                                                  
    length 5                                                                                               
    direction 'N'                                                                                          
    update minute                                                                                          
    Foreground 'ff5f5f'                                                                                    
    BarColor0 'ff5f5f'                                                                                     
    BarColor1 'ff5f5f'                                                                                     
} 

Widget CRCBar9 {                                                                                           
    class 'Bar'                                                                                            
    expression2  a=file::readline('/var/tmp/StatCRC', 19);a == 0 ? '0.1' : log(a)                          
    expression b=file::readline('/var/tmp/StatCRC', 20);b == 0 ? '0.1' : log(b)                            
    max 5                                                                                                  
    length 5                                                                                               
    direction 'N'                                                                                          
    update minute                                                                                          
    Foreground 'ff5f5f'                                                                                    
    BarColor0 'ff5f5f'                                                                                     
    BarColor1 'ff5f5f'                                                                                     
} 


Widget CRCBar10 {                                                                             
    class 'Bar'                                                                               
    expression2  a=file::readline('/var/tmp/StatCRC', 21);a == 0 ? '0.1' : log(a)
    expression b=file::readline('/var/tmp/StatCRC', 22);b == 0 ? '0.1' : log(b)  
    max 5                                                                                                  
    length 5                                                                     
    direction 'N'                                                                
    update minute                                                                
    Foreground 'ff5f5f'                                                         
    BarColor0 'ff5f5f'                                                                                     
    BarColor1 'ff5f5f'                                                                                     
}

Widget CRCBar11 {                                                                             
    class 'Bar'                                                                               
    expression2  a=file::readline('/var/tmp/StatCRC', 23);a == 0 ? '0.1' : log(a)
    expression b=file::readline('/var/tmp/StatCRC', 24);b == 0 ? '0.1' : log(b)  
    max 5                                                                                                  
    length 5                                                                     
    direction 'N'                                                                
    update minute                                                                
    Foreground 'ff5f5f'                                                         
    BarColor0 'ff5f5f'                                                                                     
    BarColor1 'ff5f5f'                                                                                     
}
# ---------------------CRC Bars Ende--------------------------

Widget VolBarNow {                                                          
    class 'Bar'                                                             
    expression2  log(file::readline('/var/tmp/StatVolume', 1))
    expression log(file::readline('/var/tmp/StatVolume', 2))
#expression2 log(10)
#expression log(1000)
    max 3.8                                                                       
    length 4                                                                    
    direction 'N'                                                               
    update minute                                                               
    style 'H'                                                                   
    Foreground 'fdee00'                                                         
    BarColor0 'fdee00'                                                          
    BarColor1 'fdee00'                                                          
}                                                                               
                                                                                
                                                                                
Widget VolBar1 {                                                                
    class 'Bar'                                                                                            
    expression2  log(file::readline('/var/tmp/StatVolume', 3))
    expression log(file::readline('/var/tmp/StatVolume', 4))
    max 3.8                                                                   
    length 4                                                                    
    direction 'N'                                                               
    update minute                                                               
    Foreground 'ff7e00'                                                         
    BarColor0 'ff7e00'                                                          
    BarColor1 'ff7e00'                                                                           
}   


Widget VolBar2 {                                                                              
    class 'Bar'                                                                                            
    expression2  log(file::readline('/var/tmp/StatVolume', 5))                                
    expression log(file::readline('/var/tmp/StatVolume', 6))                                  
    max 3.8                                                                                     
    length 4                                                                                  
    direction 'N'                                                                             
    update minute                                                                             
    Foreground 'ff7e00'                                                                       
    BarColor0 'ff7e00'                                                                        
    BarColor1 'ff7e00'                                                                           
}  

Widget VolBar3 {                                                                              
    class 'Bar'                                                                                            
    expression2  log(file::readline('/var/tmp/StatVolume', 7))                                
    expression log(file::readline('/var/tmp/StatVolume', 8))                                  
    max 3.8                                                                                     
    length 4                                                                                  
    direction 'N'                                                                             
    update minute                                                                             
    Foreground 'ff7e00'                                                                       
    BarColor0 'ff7e00'                                                                        
    BarColor1 'ff7e00'                                                                           
}  

Widget VolBar4 {                                                                
    class 'Bar'                                                               
    expression2  log(file::readline('/var/tmp/StatVolume', 9))                                
    expression log(file::readline('/var/tmp/StatVolume', 10))  
    max 3.8                                                   
    length 4                                                  
    direction 'N'                                                                
    update minute                                                              
    Foreground 'ff7e00'                                                                          
    BarColor0 'ff7e00'                                        
    BarColor1 'ff7e00'                                                                                     
}   

Widget VolBar5 {                                                                
    class 'Bar'                                                               
    expression2  log(file::readline('/var/tmp/StatVolume', 11))                                
    expression log(file::readline('/var/tmp/StatVolume', 12))  
    max 3.8                                                   
    length 4                                                
    direction 'N'                                                                
    update minute                                                              
    Foreground 'ff7e00'                                                                          
    BarColor0 'ff7e00'                                        
    BarColor1 'ff7e00'                                                                                     
}   

Widget VolBar6 {                                                                                                                      
    class 'Bar'                                                                                                                       
    expression2  log(file::readline('/var/tmp/StatVolume', 13))                                                                        
    expression log(file::readline('/var/tmp/StatVolume', 14))                                                                         
    max 3.8                                                                                                                             
    length 4                                                                                                                          
    direction 'N'                                                                                                                     
    update minute                                                                                                                     
    Foreground 'ff7e00'                                                                                                               
    BarColor0 'ff7e00'                                                                                                                
    BarColor1 'ff7e00'                                                                                                                
}                                                                                                                                     
                                                                                                                                      
Widget VolBar7 {                                                                                                                      
    class 'Bar'                                                                                                                       
    expression2  log(file::readline('/var/tmp/StatVolume', 15))                                                                       
    expression log(file::readline('/var/tmp/StatVolume', 16))                                                                         
    max 3.8                                                                                                                           
    length 4                                                                                                                          
    direction 'N'                                                                                                                     
    update minute                                                                                                                     
    Foreground 'ff7e00'                                                                                                               
    BarColor0 'ff7e00'                                                                                                                
    BarColor1 'ff7e00'                                                                                                                
}         

Widget VolBar8 {                 
    class 'Bar'           
    expression2  log(file::readline('/var/tmp/StatVolume', 17))
    expression log(file::readline('/var/tmp/StatVolume', 18))
    max 3.8                                                                        
    length 4                                                                   
    direction 'N'                                                               
    update minute                                                                                
    Foreground 'ff7e00'                                     
    BarColor0 'ff7e00'                                       
    BarColor1 'ff7e00'                                                           
}                                                                              
                                                                              
Widget VolBar9 {                                                                
    class 'Bar'                                                                                                                       
    expression2  log(file::readline('/var/tmp/StatVolume', 19))
    expression log(file::readline('/var/tmp/StatVolume', 20))
    max 3.8                                                                      
    length 4                                                                   
    direction 'N'                                                               
    update minute                                                              
    Foreground 'ff7e00'
    BarColor0 'ff7e00' 
    BarColor1 'ff7e00'                                                                           
}                                                                                                                                 
 
Widget VolBar10 {                                                                                                                      
    class 'Bar'                                                                                                                       
    expression2  log(file::readline('/var/tmp/StatVolume', 21))                                                                       
    expression log(file::readline('/var/tmp/StatVolume', 22))                                                                         
    max 3.8                                                                                                                           
    length 4                                                                                                                          
    direction 'N'                                                                                                                     
    update minute                                                                                                                     
    Foreground 'ff7e00'                                                                                                               
    BarColor0 'ff7e00'                                                                                                                
    BarColor1 'ff7e00'                                                                                                                
}                                                                                                                                     
                                                                                                                                      
Widget VolBar11 {                                                                                                                      
    class 'Bar'                                                                                                                       
    expression2  log(file::readline('/var/tmp/StatVolume', 23))                                                                       
    expression log(file::readline('/var/tmp/StatVolume', 24))                                                                         
    max 3.8                                                                                                                           
    length 4                                                                                                                          
    direction 'N'                                                                                                                     
    update minute                                                                                                                     
    Foreground 'ff7e00'                                                                                                               
    BarColor0 'ff7e00'                                                                                                                
    BarColor1 'ff7e00'                                                                                                                
}   

# ------------- Ende VolumeBars------------------------------


Widget SNRText {                                                                                                        
    class 'Text'                                                                                       
    expression '1d SNR Marge'           
    width 13
    Foreground '8888ff'                                             
}  

Widget CRCText {                                         
    class 'Text'                                          
    expression 'CRC-Errors'                                    
    width 10
    Foreground 'ff5f5f'                                                                                                
}                                                                                                      

Widget OnText {                                                                 
    class 'Text'                                                               
    expression 'Onlinezeit'                                                
    width 10                                                                    
    Foreground '999999'                                                       
}
                 
Widget CRCBarTextMitte {
    class 'Text'                                             
    expression '_100'                                                                         
    width 4                                             
    Foreground 'ffffff'                                         
}  

Widget CRCBarText10 {                                                                                                                                
    class 'Text'                                        
    expression '_10 Err/h'                                                           
    width 9                                                                   
    Foreground 'ffffff'                                                        
}

Widget CRCBarText1000 {                                                                                                                                
    class 'Text'                                        
    expression '_1000'                                                           
    width 5                                                                   
    Foreground 'ffffff'                                                        
}

Widget VolText1 {                                                            
    class 'Text'                                                               
    expression ' 7    MB/h'                                                            
    width 10                                                                    
    Foreground 'ffffff'                                        
    Background '00000000'
} 

Widget VolText10 {                                          
    class 'Text'                                                                                 
    expression ' 0,24h  ___________ _70'                                                                                       
    width 23                                                                                                
    Foreground 'ffffff'                                                                       
    Background '00000000'
} 

Widget VolText100 {                                          
    class 'Text'                                                                                 
    expression '_2,4h   ___________ _700'                                                                                       
    width 24                                                                                                
    Foreground 'ffffff'                                                                       
    Background '00000000'
} 

Widget VolText1000 {                                          
    class 'Text'                                                                                 
    expression '_       ___________ _'                                                                                       
    width 21                                                                                                
    Foreground 'ffffff'                                                                       
    Background '00000000' 
} 

Widget VolTextFull {                                                                                                   
    class 'Text'                                                                                                       
    expression '_24h    ___________ _7000'                                                                                       
    width 25                                                                                                           
    Foreground 'ffffff'                                                                                                
    Background '00000000'                                                                                                            
}

Widget VolBarText {                                                           
    class 'Text'                                                                                                       
    expression 'Traffic'                                               
    width 7                                                 
    Foreground 'ff7e00'                                                         
    Background '00000000'                                                       
}  

Widget Uptime {
    class 'Text'
    expression uptime('%dd%H:%M').'       Online '.strftime('%H:%M',(time()-file::readline('/var/tmp/gone_online', 1)))
    width 31
    align 'L'
    prefix 'Up '
    update minute
}


Layout mylayout {
  Layer 0 {
    Row02.Col16 'BusyText'
    Row07.Col03 'wlanText'                                                                                                   
    Row07.Col25 'adslText'
    Row08.Col03 'lanText'
    Row10.Col30 'CRCBarText1000'
    Row11.Col30 'CRCBarTextMitte'
    Row12.Col30 'CRCBarText10'
    Row13.Col30 'CRCNull'
    Row10.Col09 'SNRWert'
    Row18.Col09 'VolText10'
    Row17.Col09 'VolText100'                                                                     
    Row16.Col09 'VolText1000'                                                 
    Row15.Col09 'VolTextFull'
  }

# (Layer 1)  1. zeile oben frei
    Row02.Col02 'RAM'
    Row03.Col02 'ltg'
    Row04.Col02 'dslspeed'
    Row05.Col02 'IPaddy'
    Row02.Col19 'BusyBar'
# 
    Row07.Col02 'wlanBar'
    Row07.Col21 'adslBar'
    Row08.Col02 'lanBar'
#
    Row09.Col15 'SNRBarTextOben'
    Row09.Col02 'SNRBar1'
    Row09.Col03 'SNRBar2' 
    Row09.Col04 'SNRBar3'
    Row09.Col05 'SNRBar4'
    Row09.Col06 'SNRBar5'
    Row09.Col07 'SNRBar6'
    Row09.Col08 'SNRBar7'
    Row09.Col09 'SNRBar8'
    Row09.Col10 'SNRBar9'
    Row09.Col11 'SNRBar10'
    Row09.Col12 'SNRBar11'
    Row09.Col13 'SNRBar12'
    Row09.Col14 'SNRBarNow'
#
    Row09.Col18 'CRCBar11'
    Row09.Col19 'CRCBar10'
    Row09.Col20 'CRCBar9'
    Row09.Col21 'CRCBar8'
    Row09.Col22 'CRCBar7'
    Row09.Col23 'CRCBar6'
    Row09.Col24 'CRCBar5'
    Row09.Col25 'CRCBar4'
    Row09.Col26 'CRCBar3' 
    Row09.Col27 'CRCBar2'                                                                              
    Row09.Col28 'CRCBar1'                                                                              
    Row09.Col29 'CRCBarNow' 
    Row14.Col02 'SNRText'
    Row14.Col18 'CRCText'
#
    Row16.Col02 'OnBar1' 
    Row16.Col03 'OnBar2'
    Row16.Col04 'OnBar3'
    Row16.Col05 'OnBar4'
    Row16.Col06 'OnBar5'
    Row16.Col07 'OnBar6'
    Row16.Col08 'OnBar7'
#    Row16.Col08 'OnBar8'
#    Row16.Col08 'OnBar9'
#    Row16.Col08 'OnBar10'
#    Row16.Col08 'OnBar11'
#
    Row16.Col17 'VolBar11'
    Row16.Col18 'VolBar10'
    Row16.Col19 'VolBar9'
    Row16.Col20 'VolBar8'
    Row16.Col21 'VolBar7' 
    Row16.Col22 'VolBar6' 
    Row16.Col23 'VolBar5'
    Row16.Col24 'VolBar4'
    Row16.Col25 'VolBar3'
    Row16.Col26 'VolBar2'
    Row16.Col27 'VolBar1'
    Row16.Col28 'VolBarNow'
    Row19.Col29 'VolText1'
    Row20.Col21 'VolBarText'
#
    Row21.Col02 'OnText'
#
    Row23.Col02 'Uptime'
# leerzeile ganz unten

  Layer 2 {
     Row13.Col15 'SNRBarTextUnten'
  }
}

Layout 'mylayout'

onlinechanged

Für die Onlinezeit-Statistiken benötigt man außerdem noch hilfe via onlinechanged bzw /var/tmp/onlinechanged

 #!/bin/sh
 case "$1" in
 
 online )
     date +%s > /tmp/gone_online
     ;;
  offline )
     ONLINE=$(cat /tmp/gone_online)
     OFFLINE=$(date +%s)
     echo $ONLINE $(($OFFLINE-$ONLINE)) >> /tmp/onlinezeiten
     ;;
 esac


Dazu gibt es auch ein addon , näheres dazu ist hier zu finden http://www.zebradem.com/49910-infos-zu-addons#post421209

DPF Hack Display unter Windows flashen

hier eine Anleitung wie man das Ganze alternativ unter Windows machen kann. Selbst gebrickte DPFs kann man damit wieder zum Leben erwecken!

  • Was brauch ihr?

Ein Pearl-DPF, also das hier oder das hier. Sind beides die Gleichen. Vom 1. bekommt man nur eins pro Bestellung, vom 2. soviel man Geld hat. Ein gutes USB-Kabel. Nehmt NICHT das Billigst-Kabel das dem Display beiliegt. Für den Betrieb mag das zur Not noch reichen Pearl_DPF_hackfin_firmware_bootflasher.zip -- getestet mit Windows XP und Windows 7.

Los gehts:

  • Verbindet das Display NOCH NICHT mit dem Rechner!
  • Entpackt erstmal die Pearl_DPF_hackfin_firmware_bootflasher.zip.
  • Wechselt in das Verzeichnis "Pearl_DPF_hackfin_firmware_bootflasher" und startet dort das Program ProgSPI.exe.
  • Geht zuerst auf "Settings" und überprüft, dass "Program" gewählt und "Reset" angekreuzt ist.
  • Jetzt auf "Browse" und die Firmware auswählen. Im Archiv sind drei Firmware-Dateien mit dabei:

"*Pearl DPF unmodified firmware.bin" - das ist die Original-Firmware des Pearl DPF. "*Pearl DPF hackfin landscape 0.12devel firmware.bin" - das ist die gehackte Firmware, Querformat-Anzeige. "*Pearl DPF hackfin portrait 0.12devel firmware.bin" - das ist die gehackte Firmware, Hochformat-Anzeige.

  • Für den Betrieb mit graphlcd empfehle ich die Landscape-Variante (Nummer 2).

ACHTUNG! Der Firmware ist nur für das oben angegebene Pearl-DPF geeignet! Alle anderen Displays verwandeln sich damit mit ziemlicher Sicherheit in Briefbeschwerer!

  • Display an USB anstecken.
  • DRÜCKT NICHT MENÜ! WÄHLT NICHT DEN MENÜPUNKT "Mit PC verbinden" (erster Menüpunkt)!
  • Jetzt kommt der Trick: drückt die RESET-Taste am Display (kleines Loch auf der Rückseite oben links, am besten ne Büroklammer rein bis es "klick" macht), haltet die Taste gedrückt und jetzt MENÜ dazu drücken, RESET loslassen, MENÜ loslassen.
  • Wenn die Reihenfolge gestimmt hat, sollte das Display jetzt schwarz sein und im Flasher wird das Kästchen hinter "Channel 1" grün.
  • Jetzt "Execute" drücken. Im Flash-Auswahlfenster wählt Ihr den ersten Punkt "Winbond 25P16".
  • Mit Doppelklick bestätigen jetzt bitte etwas Geduld - das Programmieren dauert jetzt ca. 2-3 Minütchen...
  • Danach macht das Display automatisch einen Reset und zeigt seine umwerfende Diashow.
  • Jetzt zur Sicherheit noch mal den RESET Knopf mit der Büroklammer bearbeiten.
  • Wenn Ihr eine der gehackten Firmwares programmiert habt, könnt Ihr jetzt für ca. 2 Sekunden die MENÜ-Taste drücken und es sollte der BSOH ("Blue Screen of Hack") erscheinen.

Fertig.

Liste geeigneter Displays

  • Beckmann+Egle MiniTerminals and CompactTerminals
  • BWCT USB-to-HD44780 interface
  • Crystalfontz serial and USB displays
  • Curses (Text) for testing and debugging
  • CwLinux character and graphical displays
  • 4D Systems Display Graphics Modules
  • DPF Digital Photo Frame
  • Electronic Assembly RS232 Graphic serial graphic units
  • EFN and EUG 100 EFN LED modules connected to an ethernet to serial converter
  • Allnet FW8888 Firewall Appliance
  • G-15 / Z-10 / Dell M1730 Logitech combined keyboard/LCD screen, speaker/LCD and Dell M1730 with Logitech gaming LCD
  • Hitachi HD44780 probably the most common LCD controller out there!
  • Image driver to get pictures out of LCD4Linux
  • IRLCD DIY HD44780 / IR receiver to USB 1.1 interface, with ATtiny2313 (based on AVRUSB AVRUSB homepage)
  • LCD2USB DIY HD44780 to USB interface LCD2USB homepage
  • LCD-Linux HD44780 kernel device driver
  • LCDTerm serial-to-HD44780 interface
  • LEDMatrix DIY ethernet LED matrix display LEDMATRIX homepage
  • LPH7508 display by Pollin
  • LUI LCD-USB-Interface by Wallbraun Electronics
  • LW_ABP Logic Way appliance control panel ABP08, ABP09 Logic Way GmbH
  • Mitsubishi M50530 similar to HD44780, but for larger displays
  • MatrixOrbital serial and USB displays
  • MatrixOrbitalGX GX Series USB LCD displays
  • Milford Instruments serial displays
  • Newhaven driver for various I2C and serial displays by Newhaven
  • Noritake driver for various displays by Noritake
  • Null driver for testing purposes
  • Palm Pilot emulating a MatrixOrbital display
  • Pertelian serial over usb LCD device Pertelian
  • PHAnderson serial-to-HD44780 controller PHAnderson homepage
  • picoLCD true USB hid LCD device with keypad, gpo and infrared receiver picoLCD homepage
  • RouterBoard driver to connect a HD44780 on their LCD header
  • SamsungSPF Samsung digital picture frames, models spf-75h, spf-85h, spf-107h
  • SimpleLCD Simple serial terminal display, supports an optional and limited vt-100 mode
  • Skyper display module of an NEC 21a pager
  • st2205 st2205 based displays, check the picframe project
  • SureElectronics LCD Display Board with USB (as part of MatrixOrbital driver)
  • Toshiba T6963 Controller for large graphical LCD's
  • TREFON USB LCD text and graphic displays
  • ULA 200 USB-to-HD44780 interface from ELV
  • USBHUB Driver for the port status indicator LEDs on an USB HUB
  • USBLCD USB-to-HD44780 interface
  • VNC driver VNC Server
  • WincorNixdorf BA63 & BA66 serial cashier displays
  • X11 driver simulating displays of any size

Quellenangaben