Check out the picframe project to get more information. There is a hacked firmware available, so you digital photoframe can be used as LCD4Linux display.
Resolution: 128×128 Pixels (also 320×240)
Quite cheap
updated libst2205
You need the st2205 library and header files installed. They are available on the picframe wiki site.
Config-Example:
Display st2205u {
Driver 'st2205'
Port '/dev/sda'
Font '6x8'
Foreground 'ffffff'
Background '000000'
Basecolor '000000'
}
Widget OS {
class 'Text'
expression '*** '.uname('sysname').' '.uname('release').' - st2205 driver by Sprite ***'
width 21
align 'M'
speed 500
update tick
Background '008000'
Foreground 'ffffff'
}
Widget CPU {
class 'Text'
expression uname('machine')
prefix 'CPU '
width 9
align 'L'
update tick
Background 'FFFFFF00'
}
Widget RAM {
class 'Text'
expression meminfo('MemTotal')/1024
postfix ' MB RAM'
width 11
precision 0
align 'R'
update tick
Background 'FFFFFF00'
}
Widget Busy {
class 'Text'
expression proc_stat::cpu('busy', 500)
prefix 'Busy'
postfix '%'
width 10
precision 1
align 'R'
update tick
Foreground 'ffffff'
Background 'FFFFFF00'
}
Widget BusyBar {
class 'Bar'
expression proc_stat::cpu('busy', 500)
expression2 proc_stat::cpu('system', 500)
length 21
direction 'E'
update tack
Foreground 'ffffff'
Background '00000080'
BarColor0 '8f8fff'
BarColor1 'ff8f8f'
}
Widget Load {
class 'Text'
expression loadavg(1)
prefix 'Load'
postfix loadavg(1)>1.0?'!':' '
width 10
precision 1
align 'R'
update tick
Foreground 'ffffff'
Background 'FFFFFF00'
}
Widget LoadBar {
class 'Bar'
expression loadavg(1)
max 2.0
length 21
direction 'E'
update tack
Foreground 'ffffff'
Background '00000080'
BarColor0 '8f8fff'
BarColor1 'ff8f8f'
}
Widget Disk {
class 'Text'
# disk.[[:lcd4linux:rw]]blk return blocks, we assume a blocksize of 512
# to get the number in kB/s we would do blk*512/1024, which is blk/2
# expression (proc_stat::disk('.*', 'rblk', 500)+proc_stat::disk('.*', 'wblk', 500))/2
# with kernel 2.6, disk_io disappeared from /proc/stat but moved to /proc/diskstat
# therefore you have to use another function called 'diskstats':
expression diskstats('hd.', 'read_sectors', 500) + diskstats('hd.', 'write_sectors', 500)
prefix 'disk'
postfix ' '
width 10
precision 0
align 'R'
update tick
Foreground 'ffffff'
Background 'FFFFFF00'
}
Widget DiskBar {
class 'Bar'
#expression proc_stat::disk('.*', 'rblk', 500)
#expression2 proc_stat::disk('.*', 'wblk', 500)
# for kernel 2.6:
expression diskstats('hd.', 'read_sectors', 500)
expression2 diskstats('hd.', 'write_sectors', 500)
length 21
direction 'E'
update tack
Foreground 'ffffff'
Background '00000080'
BarColor0 '8f8fff'
BarColor1 'ff8f8f'
}
Widget Eth0 {
class 'Text'
expression (netdev('eth0', 'Rx_bytes', 500)+netdev('eth0', 'Tx_bytes', 500))/1024
prefix 'eth0'
postfix ' '
width 10
precision 0
align 'R'
update tick
Foreground 'ffffff'
Background 'FFFFFF00'
}
Widget Eth0Bar {
class 'Bar'
expression netdev('eth0', 'Rx_bytes', 500)
expression2 netdev('eth0', 'Tx_bytes', 500)
length 21
direction 'E'
update tack
Foreground 'ffffff'
Background '00000080'
BarColor0 '8f8fff'
BarColor1 'ff8f8f'
}
Widget Uptime {
class 'Text'
expression uptime('%d days %H:%M:%S')
width 20
align 'R'
prefix 'Up '
update 1000
Background 'FFFFFF00'
}
Widget Bgnd {
class 'Image'
file 'bgnd.png'
reload 0
update 0
inverted 0
visible 1
}
Display 'st2205u'
Layout mylayout {
Row01.Col01 'OS'
Row02.Col02 'CPU
Row02.Col10 'RAM
Row04.Col01 'Busy
Row05.Col01 'BusyBar
Row06.Col01 'Load'
Row07.Col01 'LoadBar'
Row08.Col01 'Disk'
Row09.Col01 'DiskBar'
Row10.Col01 'Eth0'
Row11.Col01 'Eth0Bar'
Row16.Col01 'Uptime'
Layer 2 {
X1.Y1 'Bgnd'
}
}
Layout 'mylayout'
Variables {
tick 500
tack 200
minute 60000
}