Lcd4linux: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 7: | Zeile 7: | ||
<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;"> | <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 /> | <br /> | ||
{{Navi-Sektion}} | |||
{{Navi-Freetz-Sektion}} | {{Navi-Freetz-Sektion}} | ||
[[Datei:PEARL HPM-1184.jpg|498x265px|]] | [[Datei:PEARL HPM-1184.jpg|498x265px|]] | ||
Version vom 20. März 2012, 18:26 Uhr

| 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 HPM1184 Digitaler Bilderrahmen mit AX206 Chip
- Samsung Displays SPF-107H und SPF-87H lcd4linux geeignet
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 [COLOR="#FFFF00"]S: Manufacturer=hackfin S: Product=USB-Display[/COLOR] 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 <lcd4linux-devel@users.sourceforge.net> 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.
