Seite 2 von 7
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Sa 30. Apr 2016, 08:57
von vanhofen
TangoCash hat geschrieben:z.B. "kann" mein lcd4linux schon Truetype schriftarten rendern

und ich hab einen daemon der den SPF erkennt, (und umschaltet) und dann ldc4linux startet bzw beendet.
Klingt gut. Ich lasse dir mal meine LCD4Linux-Patches zukommen. Dann kann man das ja vielleicht zusammenfassen.
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Sa 30. Apr 2016, 19:36
von fred_feuerstein
Das klingt sehr gut. Also das mit dem rendern der Schriften.
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: So 1. Mai 2016, 14:54
von Nadine
Wo ich kurz am lcd4linux beteiligt war, brauchte man das Tool zum Dauerhaften Umschalten des Modusses schon nicht mehr. Das wurde alles in lcd4linux integriert.
Ob der gewünschte Bilderrahmen unterstützt wird, erfährt man mit
/bin/lcd4linux -l
Code: Alles auswählen
[twin] /var # /bin/lcd4linux -l
LCD4Linux 0.11.0-SVN-1180 by NG-Team
Copyright (C) 2005, 2006, 2007, 2008, 2009 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
available display drivers:
DPF : generic hacked photo frame
SamsungSPF : SamsungSPF driver, supported models [SPF-75H, SPF-85H, SPF-107H, SPF-72H, SPF-85P, SPF-83H, SPF-87H-old, SPF-87H, SPF-107H-new, SPF-105P, SPF-1000P, SPF-700T]
available plugins:
cfg, math, string, test, time, apm, button_exec, cpuinfo, diskstats, dvb, exec, event, fifo, file, hddtemp, i2c_sensors, loadavg, meminfo, netdev, netinfo, proc_stat, statfs, uname, uptime
[twin] /var #
Dann muss die Kennung des Bilderrahmens, welche lsusb für den Samsung ausspuckt, wenn er im Wechseldatenträgermodus ist, nach
damit die 'Automatiken' auch greifen.
Von dort wird dann lcd4linux gestartet und dieses schaltet dann den Samsung Biderrahmen in den passenden Modus.
Edit:
Das Tool, welches das reine Umschalten erledigt, (er)kennt den 105er glaub ich auch nicht. Das wurde mir freundlicherweise damals im db2w für meinen Samsung kompiliert, da ich mit cross compilen auf dem Kriegsfuß stand (und noch stehe).
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: So 1. Mai 2016, 19:16
von Gorcon
Und wie soll da dann der zusätzliche Eintrag aussehen? (für die DPF Displays gibts da ja auch keinen).
Oder soll man da die antwort von /bin/lcd4linux -l eintragen?
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Mo 2. Mai 2016, 08:07
von Nadine
Code: Alles auswählen
[Neo] /etc/mdev # cat usbdev.sh
#!/bin/sh
LOG="/bin/logger -p user.info -t mdev-usb"
WARN="/bin/logger -p user.warn -t mdev-usb"
flagLCD=/tmp/.lcd-${MDEV}
# supported dpf-devices
DPF="1908:0102"
# supported spf-devices
SPFstorage="04E8:200E 04E8:2012 04E8:2027 04E8:2033 04E8:2025"
SPFmonitor="04E8:200F 04E8:2013 04E8:2028 04E8:2034 04E8:2026"
# SPFmodel: ^SPF-75H ^SPF-85H ^SPF-107H ^SPF-87H ^SPF-87Hold
SPF="${SPFstorage} ${SPFmonitor}"
DEVICES="${DPF} ${SPF}"
for DEVICE in ${DEVICES}; do
V=$(echo ${DEVICE:0:4} | sed 's/^[0]*//' | tr [:upper:] [:lower:]) # lower case vendor w/o leading zeros
P=$(echo ${DEVICE:5:4} | sed 's/^[0]*//' | tr [:upper:] [:lower:]) # lower case product w/o leading zeros
case "$ACTION" in
add|"")
#$LOG "trying to process ${DEVICE} (V:{$V} P:{$P}) on ${MDEV}"
uevent=/sys/class/usb_device/${MDEV}/device/uevent
test -e $uevent || continue
grep "^PRODUCT=${V}/${P}/*" $uevent >/dev/null || continue
$LOG "supported device (ID ${DEVICE}) on ${MDEV} found"
# dpf/spf-support
if $(echo "${DPF} ${SPF}" | grep -q "${DEVICE}"); then
$LOG "creating flagfile '$flagLCD'"
echo "${DEVICE}" > $flagLCD
if $(echo "${DPF} ${SPFstorage}" | grep -q "${DEVICE}"); then
$LOG "DPF or SPF in storage mode found"
$LOG "(re)starting lcd4linux"
service lcd4linux restart
fi
if $(echo "${SPFmonitor}" | grep -q "${DEVICE}"); then
$LOG "SPF in monitor mode found"
if [ -e /tmp/lcd4linux.pid ]; then
$LOG "do nothing"
else
$LOG "(re)starting lcd4linux"
service lcd4linux restart
fi
fi
fi
;;
remove)
#$LOG "trying to process ${DEVICE} (V:{$V} P:{$P}) on ${MDEV}"
# dpf/spf-support
if [ -e $flagLCD ]; then
grep "^${DEVICE}" $flagLCD >/dev/null || continue
$LOG "supported DPF/SPF (ID ${DEVICE}) removed from ${MDEV}"
if $(echo "${DPF} ${SPFmonitor}" | grep -q "${DEVICE}"); then
$LOG "DPF or SPF in monitor mode removed"
$LOG "stopping lcd4linux"
service lcd4linux stop
fi
if $(echo "${SPFstorage}" | grep -q "${DEVICE}"); then
$LOG "SPF in storage mode removed"
$LOG "do nothing"
fi
$LOG "removing flagfile '$flagLCD'"
rm -f $flagLCD
fi
;;
esac
done
So sieht es bei mir aus. Wie man sehen kann, steht das DPF einzeln drin und die Samsungs unter spf-devices. Da ist bei mir kein 105er bei. Da kommen dann in Zeilen 10 und 11 die Adressen zusätzlich rein, welche lsusb ausgibt.
Edit:
Meine Version ist schon älter, wie es im aktuellen Image aussieht, kann ich leider nicht sagen.
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Mo 2. Mai 2016, 08:15
von TangoCash
Für den 105 wäre es dann 04e8:201c (mass storage) + 04e8:201b (monitor mode) die dazu kämen.
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Mi 4. Mai 2016, 19:34
von Gorcon
Einen Monitormode gibts bei dem 105p aber nicht. (ich kenne jedenfalls keine Möglichkeit den zu aktivieren)
Aber wo sollen denn die Einträge überhaupt rein? in der lcd4linux gehts ja nicht, das ist ja eine Binär Datei und in der lcd4linux.conf gibt es solche Einträge nicht.
Irgendwie stehe ich auf dem Schlauch. :roll:
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Mi 4. Mai 2016, 19:41
von Nadine
Siehe meinen Post #23, die untere Hälfte. Das bringt aber nur etwas, wenn wie in meinem Post #23, obere Hälfte, beschrieben, der gewünschte Bilderrahmen aufgelistet wird.
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Mi 4. Mai 2016, 19:48
von vanhofen
Das LCD4Linux im heutigen Image hat einen automatischen Erkennungsmodus für SPFs. Tango hat das gebastelt.
In der lcd4linux.conf muss dazu "SPF-AUTO" eingetragen werden. Mehr kann ich aber aus Ermangelung eines SPFs nicht dazu sagen.
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Mi 4. Mai 2016, 21:22
von TangoCash
Wenn du den anschließt per minusb Buchse (Netzteil braucht man trotzdem beim 10") erscheint doch so was mit: "Connected to pc usb port" - dann lcd4linux starten,und der Rest sollte von alleine gehen...richtige conf vorausgesetzt.
am besten mal per telnet : lcd4linux -F -v
dann sieht man auch schön was gerade gemacht wird...
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Do 5. Mai 2016, 09:12
von Gorcon
Wenn du den anschließt per minusb Buchse (Netzteil braucht man trotzdem beim 10") erscheint doch so was mit: "Connected to pc usb port" - dann lcd4linux starten,und der Rest sollte von alleine gehen
Dann steht auf dem Display die Meldung das auf eine Verbindung mit dem PC gewartet wird.
In er usbdev.sh sind die Einträge ja Original schon drin.
Code: Alles auswählen
Kernel: 2.6.34.13-nevis #1 Sat Apr 2 16:48:32 CEST 2016 @armv6l
Date: Thursday, 05 May 2016, 09:10:08
NI-FLASH-000179 login: root
[NI-FLASH-000179] /var/root # lcd4linux -F -v
LCD4Linux 0.11.0-SVN-1201M by NG-Team starting
[raspi] WARNING: Plugin is not enabled! (set 'enabled 1' to enable this plugin)
dpf_ax_open: no matching USB device 'usb0' found!
dpf: cannot open dpf device usb0
Error initializing driver DPF: Exit!
[NI-FLASH-000179] /var/root #
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Do 5. Mai 2016, 09:18
von vanhofen
Das ist nicht das LCD4Linux aus unserem aktuellen Image.
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Do 5. Mai 2016, 09:22
von TangoCash
1. dein lcd4linux ist nicht aktuell genug (neustes image nutzen >= LCD4Linux 0.11.0-SVN-svn1203-20-gba1aa48)
2. deine /etc/lcd4linux.conf passt nicht zum Bilderrahmen.
In der conf sollte sowas stehen:
Code: Alles auswählen
Display Samsung {
driver 'SamsungSPF'
model 'SPF-AUTO'
port 'usb0'
font '26x40'
size '1024x600'
Basecolor '000000' # Basisfarbe
Background '000000' # Displayhintergrund
Foreground 'ffffff' # Displayvordergrund
orientation 1
backlight 7
}
Display 'Samsung'
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Do 5. Mai 2016, 09:50
von Gorcon
Ich habe jetzt die aktuelle Version geflasht.
In der lcd4linux.conf muss dazu "SPF-AUTO" eingetragen werden.
In welcher? Es gibt ja im NI Image immer zwei. Eine unter /etc/ und die zweite unter /var/etc/
Code: Alles auswählen
Kernel: 2.6.34.13-nevis #1 Sat Apr 2 16:48:32 CEST 2016 @armv6l
Date: Thursday, 05 May 2016, 09:49:10
NI-FLASH-000179 login: root
[NI-FLASH-000179] /var/root # lcd4linux -F -v
LCD4Linux 0.11.0-SVN-svn1203-23-gce385f6 starting
[raspi] WARNING: Plugin is not enabled! (set 'enabled 1' to enable this plugin)
dpf_ax_open: no matching USB device 'usb0' found!
dpf: cannot open dpf device usb0
Error initializing driver DPF: Exit!
[NI-FLASH-000179] /var/root #
Habe jetzt nochmal die SPF Display Einträge in der /etc/lcd4linux.conf eingetragen.
Das Ergebniss bleibt das gleiche.
Code: Alles auswählen
Kernel: 2.6.34.13-nevis #1 Sat Apr 2 16:48:32 CEST 2016 @armv6l
Date: Thursday, 05 May 2016, 09:53:54
NI-FLASH-000179 login: root
[NI-FLASH-000179] /var/root # lcd4linux -F -v
LCD4Linux 0.11.0-SVN-svn1203-23-gce385f6 starting
[raspi] WARNING: Plugin is not enabled! (set 'enabled 1' to enable this plugin)
dpf_ax_open: no matching USB device 'usb0' found!
dpf: cannot open dpf device usb0
Error initializing driver DPF: Exit!
[NI-FLASH-000179] /var/root #
Müssen da alle DPF Einträge dann raus?
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Do 5. Mai 2016, 11:10
von TangoCash
Ja, DPF raus, SPF rein
wenn du dir nicht sicher bist welche config er nimmt -> lcd4linux -F -v -f /etc/lcd4linux.conf
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Do 5. Mai 2016, 11:15
von Gorcon
Code: Alles auswählen
Kernel: 2.6.34.13-nevis #1 Sat Apr 2 16:48:32 CEST 2016 @armv6l
Date: Thursday, 05 May 2016, 11:13:28
NI-FLASH-000179 login: root
[NI-FLASH-000179] /var/root # lcd4linux -F -v
LCD4Linux 0.11.0-SVN-svn1203-23-gce385f6 starting
[raspi] WARNING: Plugin is not enabled! (set 'enabled 1' to enable this plugin)
missing 'Display:standard.Driver' entry in /etc/lcd4linux.conf!
[NI-FLASH-000179] /var/root #
Die lcd4linux sieht jetzt so aus:
Code: Alles auswählen
# --------------------------------------------------------------------------- #
Display Samsung {
driver 'SamsungSPF'
model 'SPF-AUTO'
port 'usb0'
font '26x40'
size '1024x600'
Basecolor '000000' # Basisfarbe
Background '000000' # Displayhintergrund
Foreground 'ffffff' # Displayvordergrund
orientation 1
backlight 7
}
# --------------------------------------------------------------------------- #
# --- general widgets (partly postfixed with _layout) --- #
Widget LOGO {
class 'Image'
file file::exist('/tmp/lcd/menu') == 1 ? ICONS . 'menu.png' : file::readline('/tmp/lcd/logo', 1)
update 3300
visible file::exist('/tmp/lcd/menu') == 1 ? 1 : file::readline('/tmp/lcd/mode_logo', 1)
reload 1
center 1
}
Widget SERVICE {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? '' : (file::readline('/tmp/lcd/mode_logo', 1) == 1 ? '' : file::readline('/tmp/lcd/service', 1))
align 'PC'
width 20
update 3300
}
Widget SERVICE_large {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? '' : (file::readline('/tmp/lcd/mode_logo', 1) == 1 ? '' : file::readline('/tmp/lcd/service', 1))
align 'PC'
width 16
update 3300
}
Widget SERVICE_small {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? '' : (file::readline('/tmp/lcd/mode_logo', 1) == 1 ? '' : file::readline('/tmp/lcd/service', 1))
align 'PC'
width 32
update 3300
}
Widget SERVICE_d-box2 {
class 'Text'
#expression file::readline('/tmp/lcd/service', 1)
expression file::exist('/tmp/lcd/menu') == 1 ? '' : (file::readline('/tmp/lcd/mode_logo', 1) == 1 ? '' : file::readline('/tmp/lcd/service', 1))
align 'PC'
width 20
update 3300
}
Widget EVENT {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? file::readline('/tmp/lcd/menu', 1) : file::readline('/tmp/lcd/event', 1)
align 'PC'
width 20
update 250
speed 325
foreground 'ee9a49'
}
Widget EVENT_large {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? file::readline('/tmp/lcd/menu', 1) : file::readline('/tmp/lcd/event', 1)
align 'PC'
width 16
update 250
speed 325
foreground 'ee9a49'
}
Widget EVENT_small {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? file::readline('/tmp/lcd/menu', 1) : file::readline('/tmp/lcd/event', 1)
align 'PC'
width 32
update 250
speed 325
foreground 'ee9a49'
}
Widget EVENT_d-box2 {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? file::readline('/tmp/lcd/menu', 1) : file::readline('/tmp/lcd/event', 1)
align 'PC'
width 20
update 250
speed 325
}
Widget PROGRESS {
class 'Bar'
expression 0
expression2 file::exist('/tmp/lcd/menu') == 1 ? 0 : file::readline('/tmp/lcd/progress', 1)
min 0
max 100
length 18
update 2600
foreground 'ee9a49aa'
barcolor0 '00000000'
}
Widget PROGRESS_large {
class 'Bar'
expression file::exist('/tmp/lcd/menu') == 1 ? 0 : file::readline('/tmp/lcd/progress', 1)
min 0
max 100
length 14
update 2600
foreground '000000aa'
}
Widget PROGRESS_small {
class 'Bar'
expression file::exist('/tmp/lcd/menu') == 1 ? 0 : file::readline('/tmp/lcd/progress', 1)
min 0
max 100
length 30
update 2600
foreground 'ee9a49aa'
}
Widget PROGRESS_d-box2 {
class 'Bar'
expression 0
expression2 file::exist('/tmp/lcd/menu') == 1 ? 0 : file::readline('/tmp/lcd/progress', 1)
min 0
max 100
length 10
update 2600
barcolor0 '00000000'
}
Widget DURATION {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? '' : file::readline('/tmp/lcd/duration', 1)
align 'R'
width 13
update 500
foreground 'ee9a49'
}
Widget VOLUME_d-box2 {
class 'Bar'
expression file::readline('/tmp/lcd/volume', 1)
expression2 0
min 0
max 100
length 10
update 1000
barcolor1 '00000000'
}
Widget TIME {
class 'Text'
expression strftime('%H:%M', time())
align 'L'
width 5
update 5000
foreground '808080'
}
Widget TIME_d-box2 {
class 'Text'
expression strftime('%H:%M', time())
align 'L'
width 5
update 5000
}
# --- system-info --- #
Widget CPU {
class 'Text'
prefix 'CPU: '
expression proc_stat::cpu('busy', 500)
postfix '%'
precision 1
align 'R'
width 11
update 1000
foreground '808080'
}
Widget CPU_BAR {
class 'Bar'
expression proc_stat::cpu('busy', 500)
min 0
max 100
length 17
style 'H'
update 500
foreground '808080'
}
Widget RAM {
class 'Text'
prefix 'RAM: '
expression 100 - ((meminfo('MemFree') * 100) / meminfo('MemTotal'))
postfix '%'
precision 1
align 'R'
width 11
update 1000
foreground '808080'
}
Widget MTD {
class 'Text'
prefix 'MTD: '
expression 100 - (statfs('/', 'bfree') * 100) / statfs('/', 'blocks')
postfix '%'
precision 1
align 'R'
width 11
update 1000
foreground '808080'
}
# --- general mode-icons --- #
Widget ICON_ECM {
class 'Image'
file ICONS . 'mode/ecm_' . file::readline('/tmp/lcd/mode_ecm', 1) . '.png'
update 10000
reload 1
}
Widget ICON_TIMER {
class 'Image'
file ICONS . 'mode/timer_' . file::readline('/tmp/lcd/mode_timer', 1) . '.png'
update 10000
reload 1
}
Widget ICON_REC {
class 'Image'
file ICONS . 'mode/rec_' . file::readline('/tmp/lcd/mode_rec', 1) . '.png'
update 10000
reload 1
}
Widget ICON_TS {
class 'Image'
file ICONS . 'mode/ts_' . file::readline('/tmp/lcd/mode_tshift', 1) . '.png'
update 10000
reload 1
}
# --- d-box2 mode-icons --- #
Widget ICON_ECM_d-box2 {
class 'Image'
file ICONS . 'mode/d-box2/ecm_' . file::readline('/tmp/lcd/mode_ecm', 1) . '.png'
update 10000
reload 1
}
Widget ICON_TIMER_d-box2 {
class 'Image'
file ICONS . 'mode/d-box2/timer_' . file::readline('/tmp/lcd/mode_timer', 1) . '.png'
update 10000
reload 1
}
Widget ICON_REC_d-box2 {
class 'Image'
file ICONS . 'mode/d-box2/rec_' . file::readline('/tmp/lcd/mode_rec', 1) . '.png'
update 10000
reload 1
}
Widget ICON_TS_d-box2 {
class 'Image'
file ICONS . 'mode/d-box2/ts_' . file::readline('/tmp/lcd/mode_tshift', 1) . '.png'
update 10000
reload 1
}
# --- the background --- #
Widget BACKGROUND {
class 'Image'
file ICONS . 'background/' . file::readline('/tmp/lcd/layout', 1) . '.png'
update 0
}
# --- the clocks for standby-mode --- #
# --- the digital clock --- #
Widget HOUR1_ {
class 'image'
file file::exist(FCLOCK) == 1 ? ICONS . 'blank.png' : ICONS . 'clock/digital/' . substr(strftime('%H', time()), 0, 1) . '.png'
update 10000
reload 1
}
Widget HOUR_1 {
class 'image'
file file::exist(FCLOCK) == 1 ? ICONS . 'blank.png' : ICONS . 'clock/digital/' . substr(strftime('%H', time()), 1) . '.png'
update 10000
reload 1
}
Widget DP {
class 'Image'
file file::exist(FCLOCK) == 1 ? ICONS . 'blank.png' : ICONS . 'clock/digital/dp.png'
update 0
}
Widget MIN1_ {
class 'image'
file file::exist(FCLOCK) == 1 ? ICONS . 'blank.png' : ICONS . 'clock/digital/' . substr(strftime('%M', time()), 0, 1) . '.png'
update 10000
reload 1
}
Widget MIN_1 {
class 'image'
file file::exist(FCLOCK) == 1 ? ICONS . 'blank.png' : ICONS . 'clock/digital/' . substr(strftime('%M', time()), 1) . '.png'
update 10000
reload 1
}
# --- the analog clock --- #
Widget DIAL_A {
class 'image'
file file::exist(FCLOCK) == 0 ? ICONS . 'blank.png' : ICONS . 'clock/analog/dial.png'
update 0
}
Widget HOUR_A {
class 'image'
file file::exist(FCLOCK) == 0 ? ICONS . 'blank.png' : ICONS . 'clock/analog/h' . ( ( (strftime('%I', time()) == 12 ? 0 : strftime('%I', time())) *5) + substr((strftime('%M', time()) / 12), 0, 1) ). '.png'
update 10000
reload 1
}
Widget MIN_A {
class 'image'
file file::exist(FCLOCK) == 0 ? ICONS . 'blank.png' : ICONS . 'clock/analog/m' . strftime('%M', time()) . '.png'
update 10000
reload 1
}
# --- the weather --- #
Widget EXEC_WEATHER-SCRIPT {
class 'Text'
expression exec('/share/lcd/scripts/weather', 900000) # 15 minutes
width 0
}
Widget ICON_WEATHER {
class 'Image'
file file::exist(FWEATHER) == 0 ? ICONS . 'weather/weather_off.png' : ICONS . 'weather/weather_on.png'
update 10000
reload 1
}
Widget WEATHERICON_CURRENT {
class 'image'
file file::exist(FWEATHER) == 0 ? ICONS . 'weather/0000.png' : ICONS . 'weather/' . file::readline('/tmp/lcd/weathericons', 1)
update 10000
reload 1
}
Widget WEATHERICON_LATER {
class 'image'
file file::exist(FWEATHER) == 0 ? ICONS . 'weather/0000.png' : ICONS . 'weather/' . file::readline('/tmp/lcd/weathericons', strftime('%H', time()) < 16 ? 2 : 3)
update 10000
reload 1
}
Widget TEMPERATURE_CURRENT {
class 'Text'
expression file::exist(FWEATHER) == 0 ? '' : file::readline('/tmp/lcd/temperatures', 1)
align 'L'
width 3
update 10000
}
Widget TEMPERATURE_LATER {
class 'Text'
expression file::exist(FWEATHER) == 0 ? '' : file::readline('/tmp/lcd/temperatures', strftime('%H', time()) < 16 ? 2 : 3)
align 'R'
width 3
update 10000
}
# --------------------------------------------------------------------------- #
Layout standard {
layer 0 {
row02.col01 'SERVICE'
row04.col01 'EVENT'
row05.col02 'PROGRESS'
row07 {
col07 'DURATION'
col02 'TIME'
}
}
layer 1 {
x008.y073 'ICON_ECM'
x008.y217 'ICON_TIMER'
x008.y258 'ICON_REC'
x008.y289 'ICON_TS'
x021.y017 'LOGO'
}
layer 2 {
x001.y001 'BACKGROUND'
}
}
Layout radio {
layer 0 {
row02.col01 'SERVICE'
row04.col01 'EVENT'
row05.col02 'PROGRESS'
row07 {
col07 'DURATION'
col02 'TIME'
}
}
layer 1 {
x008.y073 'ICON_ECM'
x008.y217 'ICON_TIMER'
x008.y258 'ICON_REC'
x008.y289 'ICON_TS'
x021.y017 'LOGO'
}
layer 2 {
x001.y001 'BACKGROUND'
}
}
Layout large {
layer 0 {
row02.col01 'SERVICE_large'
row04.col01 'EVENT_large'
row05.col02 'PROGRESS_large'
}
layer 1 {
x008.y073 'ICON_ECM'
x008.y217 'ICON_TIMER'
x008.y258 'ICON_REC'
x008.y289 'ICON_TS'
x044.y017 'LOGO'
}
layer 2 {
x001.y001 'BACKGROUND'
}
}
Layout small {
layer 0 {
row04.col01 'SERVICE_small'
row06.col01 'EVENT_small'
row08.col02 'PROGRESS_small'
row12 {
col02 'CPU'
col15 'CPU_BAR'
}
row13.col02 'RAM'
row14 {
col02 'MTD'
col27 'TIME'
}
}
layer 1 {
x008.y073 'ICON_ECM'
x008.y217 'ICON_TIMER'
x008.y258 'ICON_REC'
x008.y289 'ICON_TS'
x021.y017 'LOGO'
}
layer 2 {
x001.y001 'BACKGROUND'
}
}
Layout d-box2 {
layer 0 {
row01.col04 'PROGRESS_d-box2'
row03.col01 'SERVICE_d-box2'
row05.col01 'EVENT_d-box2'
row07 {
col04 'VOLUME_d-box2'
col15 'TIME_d-box2'
}
}
layer 1 {
x045.y073 'ICON_ECM_d-box2'
x045.y217 'ICON_TIMER_d-box2'
x045.y258 'ICON_REC_d-box2'
x045.y289 'ICON_TS_d-box2'
x060.y017 'LOGO'
}
layer 2 {
x001.y001 'BACKGROUND'
}
}
Layout standby {
layer 0 {
x020.y085 'MIN_A'
X034.Y025 'HOUR1_'
X034.Y085 'HOUR_1'
X034.Y145 'DP'
X034.Y175 'MIN1_'
X034.Y235 'MIN_1'
row01.col1 'EXEC_WEATHER-SCRIPT'
x225.y132 'ICON_WEATHER'
X168.Y017 'WEATHERICON_CURRENT'
X168.Y241 'WEATHERICON_LATER'
row07.col07 'TEMPERATURE_CURRENT'
row07.col12 'TEMPERATURE_LATER'
}
layer 1 {
x020.y085 'HOUR_A'
x008.y073 'ICON_ECM'
x008.y217 'ICON_TIMER'
x008.y258 'ICON_REC'
x008.y289 'ICON_TS'
}
layer 2 {
x020.y000 'DIAL_A'
x001.y001 'BACKGROUND'
}
}
# --------------------------------------------------------------------------- #
Variables {
ICONS '/share/lcd/icons/'
FWEATHER '/var/etc/.lcd-weather'
FCLOCK '/var/etc/.lcd-clock_a'
# color for layout "d-box2" {
#DBOX2COL 'f50204' # red
#DBOX2COL '509701' # green
#DBOX2COL '3763eb' # blue
DBOX2COL 'f0f5f5' # white
#DBOX2COL 'e6e628' # yellow
#DBOX2COL 'dc1ea0' # pink
# }
}
# --------------------------------------------------------------------------- #
Display file::readline('/tmp/lcd/layout', 1)
Layout file::readline('/tmp/lcd/layout', 1)
# --------------------------------------------------------------------------- #
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Do 5. Mai 2016, 12:03
von TangoCash
Das fehlt noch eine Zeile "Display 'Samsung'"
Du musst schon richtig kopieren aus meinem Post

Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Do 5. Mai 2016, 12:09
von Gorcon
keine Ändereung.
Code: Alles auswählen
Kernel: 2.6.34.13-nevis #1 Sat Apr 2 16:48:32 CEST 2016 @armv6l
Date: Thursday, 05 May 2016, 12:08:02
NI-FLASH-000179 login: root
[NI-FLASH-000179] /var/root # lcd4linux -F -v
LCD4Linux 0.11.0-SVN-svn1203-23-gce385f6 starting
[raspi] WARNING: Plugin is not enabled! (set 'enabled 1' to enable this plugin)
missing 'Display:user.Driver' entry in /etc/lcd4linux.conf!
[NI-FLASH-000179] /var/root #
Code: Alles auswählen
# --------------------------------------------------------------------------- #
Display Samsung {
driver 'SamsungSPF'
model 'SPF-AUTO'
port 'usb0'
font '26x40'
size '1024x600'
Basecolor '000000' # Basisfarbe
Background '000000' # Displayhintergrund
Foreground 'ffffff' # Displayvordergrund
orientation 1
backlight 7
}
Display 'Samsung'
# --------------------------------------------------------------------------- #
# --- general widgets (partly postfixed with _layout) --- #
Widget LOGO {
class 'Image'
file file::exist('/tmp/lcd/menu') == 1 ? ICONS . 'menu.png' : file::readline('/tmp/lcd/logo', 1)
update 3300
visible file::exist('/tmp/lcd/menu') == 1 ? 1 : file::readline('/tmp/lcd/mode_logo', 1)
reload 1
center 1
}
Widget SERVICE {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? '' : (file::readline('/tmp/lcd/mode_logo', 1) == 1 ? '' : file::readline('/tmp/lcd/service', 1))
align 'PC'
width 20
update 3300
}
Widget SERVICE_large {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? '' : (file::readline('/tmp/lcd/mode_logo', 1) == 1 ? '' : file::readline('/tmp/lcd/service', 1))
align 'PC'
width 16
update 3300
}
Widget SERVICE_small {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? '' : (file::readline('/tmp/lcd/mode_logo', 1) == 1 ? '' : file::readline('/tmp/lcd/service', 1))
align 'PC'
width 32
update 3300
}
Widget SERVICE_d-box2 {
class 'Text'
#expression file::readline('/tmp/lcd/service', 1)
expression file::exist('/tmp/lcd/menu') == 1 ? '' : (file::readline('/tmp/lcd/mode_logo', 1) == 1 ? '' : file::readline('/tmp/lcd/service', 1))
align 'PC'
width 20
update 3300
}
Widget EVENT {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? file::readline('/tmp/lcd/menu', 1) : file::readline('/tmp/lcd/event', 1)
align 'PC'
width 20
update 250
speed 325
foreground 'ee9a49'
}
Widget EVENT_large {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? file::readline('/tmp/lcd/menu', 1) : file::readline('/tmp/lcd/event', 1)
align 'PC'
width 16
update 250
speed 325
foreground 'ee9a49'
}
Widget EVENT_small {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? file::readline('/tmp/lcd/menu', 1) : file::readline('/tmp/lcd/event', 1)
align 'PC'
width 32
update 250
speed 325
foreground 'ee9a49'
}
Widget EVENT_d-box2 {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? file::readline('/tmp/lcd/menu', 1) : file::readline('/tmp/lcd/event', 1)
align 'PC'
width 20
update 250
speed 325
}
Widget PROGRESS {
class 'Bar'
expression 0
expression2 file::exist('/tmp/lcd/menu') == 1 ? 0 : file::readline('/tmp/lcd/progress', 1)
min 0
max 100
length 18
update 2600
foreground 'ee9a49aa'
barcolor0 '00000000'
}
Widget PROGRESS_large {
class 'Bar'
expression file::exist('/tmp/lcd/menu') == 1 ? 0 : file::readline('/tmp/lcd/progress', 1)
min 0
max 100
length 14
update 2600
foreground '000000aa'
}
Widget PROGRESS_small {
class 'Bar'
expression file::exist('/tmp/lcd/menu') == 1 ? 0 : file::readline('/tmp/lcd/progress', 1)
min 0
max 100
length 30
update 2600
foreground 'ee9a49aa'
}
Widget PROGRESS_d-box2 {
class 'Bar'
expression 0
expression2 file::exist('/tmp/lcd/menu') == 1 ? 0 : file::readline('/tmp/lcd/progress', 1)
min 0
max 100
length 10
update 2600
barcolor0 '00000000'
}
Widget DURATION {
class 'Text'
expression file::exist('/tmp/lcd/menu') == 1 ? '' : file::readline('/tmp/lcd/duration', 1)
align 'R'
width 13
update 500
foreground 'ee9a49'
}
Widget VOLUME_d-box2 {
class 'Bar'
expression file::readline('/tmp/lcd/volume', 1)
expression2 0
min 0
max 100
length 10
update 1000
barcolor1 '00000000'
}
Widget TIME {
class 'Text'
expression strftime('%H:%M', time())
align 'L'
width 5
update 5000
foreground '808080'
}
Widget TIME_d-box2 {
class 'Text'
expression strftime('%H:%M', time())
align 'L'
width 5
update 5000
}
# --- system-info --- #
Widget CPU {
class 'Text'
prefix 'CPU: '
expression proc_stat::cpu('busy', 500)
postfix '%'
precision 1
align 'R'
width 11
update 1000
foreground '808080'
}
Widget CPU_BAR {
class 'Bar'
expression proc_stat::cpu('busy', 500)
min 0
max 100
length 17
style 'H'
update 500
foreground '808080'
}
Widget RAM {
class 'Text'
prefix 'RAM: '
expression 100 - ((meminfo('MemFree') * 100) / meminfo('MemTotal'))
postfix '%'
precision 1
align 'R'
width 11
update 1000
foreground '808080'
}
Widget MTD {
class 'Text'
prefix 'MTD: '
expression 100 - (statfs('/', 'bfree') * 100) / statfs('/', 'blocks')
postfix '%'
precision 1
align 'R'
width 11
update 1000
foreground '808080'
}
# --- general mode-icons --- #
Widget ICON_ECM {
class 'Image'
file ICONS . 'mode/ecm_' . file::readline('/tmp/lcd/mode_ecm', 1) . '.png'
update 10000
reload 1
}
Widget ICON_TIMER {
class 'Image'
file ICONS . 'mode/timer_' . file::readline('/tmp/lcd/mode_timer', 1) . '.png'
update 10000
reload 1
}
Widget ICON_REC {
class 'Image'
file ICONS . 'mode/rec_' . file::readline('/tmp/lcd/mode_rec', 1) . '.png'
update 10000
reload 1
}
Widget ICON_TS {
class 'Image'
file ICONS . 'mode/ts_' . file::readline('/tmp/lcd/mode_tshift', 1) . '.png'
update 10000
reload 1
}
# --- d-box2 mode-icons --- #
Widget ICON_ECM_d-box2 {
class 'Image'
file ICONS . 'mode/d-box2/ecm_' . file::readline('/tmp/lcd/mode_ecm', 1) . '.png'
update 10000
reload 1
}
Widget ICON_TIMER_d-box2 {
class 'Image'
file ICONS . 'mode/d-box2/timer_' . file::readline('/tmp/lcd/mode_timer', 1) . '.png'
update 10000
reload 1
}
Widget ICON_REC_d-box2 {
class 'Image'
file ICONS . 'mode/d-box2/rec_' . file::readline('/tmp/lcd/mode_rec', 1) . '.png'
update 10000
reload 1
}
Widget ICON_TS_d-box2 {
class 'Image'
file ICONS . 'mode/d-box2/ts_' . file::readline('/tmp/lcd/mode_tshift', 1) . '.png'
update 10000
reload 1
}
# --- the background --- #
Widget BACKGROUND {
class 'Image'
file ICONS . 'background/' . file::readline('/tmp/lcd/layout', 1) . '.png'
update 0
}
# --- the clocks for standby-mode --- #
# --- the digital clock --- #
Widget HOUR1_ {
class 'image'
file file::exist(FCLOCK) == 1 ? ICONS . 'blank.png' : ICONS . 'clock/digital/' . substr(strftime('%H', time()), 0, 1) . '.png'
update 10000
reload 1
}
Widget HOUR_1 {
class 'image'
file file::exist(FCLOCK) == 1 ? ICONS . 'blank.png' : ICONS . 'clock/digital/' . substr(strftime('%H', time()), 1) . '.png'
update 10000
reload 1
}
Widget DP {
class 'Image'
file file::exist(FCLOCK) == 1 ? ICONS . 'blank.png' : ICONS . 'clock/digital/dp.png'
update 0
}
Widget MIN1_ {
class 'image'
file file::exist(FCLOCK) == 1 ? ICONS . 'blank.png' : ICONS . 'clock/digital/' . substr(strftime('%M', time()), 0, 1) . '.png'
update 10000
reload 1
}
Widget MIN_1 {
class 'image'
file file::exist(FCLOCK) == 1 ? ICONS . 'blank.png' : ICONS . 'clock/digital/' . substr(strftime('%M', time()), 1) . '.png'
update 10000
reload 1
}
# --- the analog clock --- #
Widget DIAL_A {
class 'image'
file file::exist(FCLOCK) == 0 ? ICONS . 'blank.png' : ICONS . 'clock/analog/dial.png'
update 0
}
Widget HOUR_A {
class 'image'
file file::exist(FCLOCK) == 0 ? ICONS . 'blank.png' : ICONS . 'clock/analog/h' . ( ( (strftime('%I', time()) == 12 ? 0 : strftime('%I', time())) *5) + substr((strftime('%M', time()) / 12), 0, 1) ). '.png'
update 10000
reload 1
}
Widget MIN_A {
class 'image'
file file::exist(FCLOCK) == 0 ? ICONS . 'blank.png' : ICONS . 'clock/analog/m' . strftime('%M', time()) . '.png'
update 10000
reload 1
}
# --- the weather --- #
Widget EXEC_WEATHER-SCRIPT {
class 'Text'
expression exec('/share/lcd/scripts/weather', 900000) # 15 minutes
width 0
}
Widget ICON_WEATHER {
class 'Image'
file file::exist(FWEATHER) == 0 ? ICONS . 'weather/weather_off.png' : ICONS . 'weather/weather_on.png'
update 10000
reload 1
}
Widget WEATHERICON_CURRENT {
class 'image'
file file::exist(FWEATHER) == 0 ? ICONS . 'weather/0000.png' : ICONS . 'weather/' . file::readline('/tmp/lcd/weathericons', 1)
update 10000
reload 1
}
Widget WEATHERICON_LATER {
class 'image'
file file::exist(FWEATHER) == 0 ? ICONS . 'weather/0000.png' : ICONS . 'weather/' . file::readline('/tmp/lcd/weathericons', strftime('%H', time()) < 16 ? 2 : 3)
update 10000
reload 1
}
Widget TEMPERATURE_CURRENT {
class 'Text'
expression file::exist(FWEATHER) == 0 ? '' : file::readline('/tmp/lcd/temperatures', 1)
align 'L'
width 3
update 10000
}
Widget TEMPERATURE_LATER {
class 'Text'
expression file::exist(FWEATHER) == 0 ? '' : file::readline('/tmp/lcd/temperatures', strftime('%H', time()) < 16 ? 2 : 3)
align 'R'
width 3
update 10000
}
# --------------------------------------------------------------------------- #
Layout standard {
layer 0 {
row02.col01 'SERVICE'
row04.col01 'EVENT'
row05.col02 'PROGRESS'
row07 {
col07 'DURATION'
col02 'TIME'
}
}
layer 1 {
x008.y073 'ICON_ECM'
x008.y217 'ICON_TIMER'
x008.y258 'ICON_REC'
x008.y289 'ICON_TS'
x021.y017 'LOGO'
}
layer 2 {
x001.y001 'BACKGROUND'
}
}
Layout radio {
layer 0 {
row02.col01 'SERVICE'
row04.col01 'EVENT'
row05.col02 'PROGRESS'
row07 {
col07 'DURATION'
col02 'TIME'
}
}
layer 1 {
x008.y073 'ICON_ECM'
x008.y217 'ICON_TIMER'
x008.y258 'ICON_REC'
x008.y289 'ICON_TS'
x021.y017 'LOGO'
}
layer 2 {
x001.y001 'BACKGROUND'
}
}
Layout large {
layer 0 {
row02.col01 'SERVICE_large'
row04.col01 'EVENT_large'
row05.col02 'PROGRESS_large'
}
layer 1 {
x008.y073 'ICON_ECM'
x008.y217 'ICON_TIMER'
x008.y258 'ICON_REC'
x008.y289 'ICON_TS'
x044.y017 'LOGO'
}
layer 2 {
x001.y001 'BACKGROUND'
}
}
Layout small {
layer 0 {
row04.col01 'SERVICE_small'
row06.col01 'EVENT_small'
row08.col02 'PROGRESS_small'
row12 {
col02 'CPU'
col15 'CPU_BAR'
}
row13.col02 'RAM'
row14 {
col02 'MTD'
col27 'TIME'
}
}
layer 1 {
x008.y073 'ICON_ECM'
x008.y217 'ICON_TIMER'
x008.y258 'ICON_REC'
x008.y289 'ICON_TS'
x021.y017 'LOGO'
}
layer 2 {
x001.y001 'BACKGROUND'
}
}
Layout d-box2 {
layer 0 {
row01.col04 'PROGRESS_d-box2'
row03.col01 'SERVICE_d-box2'
row05.col01 'EVENT_d-box2'
row07 {
col04 'VOLUME_d-box2'
col15 'TIME_d-box2'
}
}
layer 1 {
x045.y073 'ICON_ECM_d-box2'
x045.y217 'ICON_TIMER_d-box2'
x045.y258 'ICON_REC_d-box2'
x045.y289 'ICON_TS_d-box2'
x060.y017 'LOGO'
}
layer 2 {
x001.y001 'BACKGROUND'
}
}
Layout standby {
layer 0 {
x020.y085 'MIN_A'
X034.Y025 'HOUR1_'
X034.Y085 'HOUR_1'
X034.Y145 'DP'
X034.Y175 'MIN1_'
X034.Y235 'MIN_1'
row01.col1 'EXEC_WEATHER-SCRIPT'
x225.y132 'ICON_WEATHER'
X168.Y017 'WEATHERICON_CURRENT'
X168.Y241 'WEATHERICON_LATER'
row07.col07 'TEMPERATURE_CURRENT'
row07.col12 'TEMPERATURE_LATER'
}
layer 1 {
x020.y085 'HOUR_A'
x008.y073 'ICON_ECM'
x008.y217 'ICON_TIMER'
x008.y258 'ICON_REC'
x008.y289 'ICON_TS'
}
layer 2 {
x020.y000 'DIAL_A'
x001.y001 'BACKGROUND'
}
}
# --------------------------------------------------------------------------- #
Variables {
ICONS '/share/lcd/icons/'
FWEATHER '/var/etc/.lcd-weather'
FCLOCK '/var/etc/.lcd-clock_a'
# color for layout "d-box2" {
#DBOX2COL 'f50204' # red
#DBOX2COL '509701' # green
#DBOX2COL '3763eb' # blue
DBOX2COL 'f0f5f5' # white
#DBOX2COL 'e6e628' # yellow
#DBOX2COL 'dc1ea0' # pink
# }
}
# --------------------------------------------------------------------------- #
Display file::readline('/tmp/lcd/layout', 1)
Layout file::readline('/tmp/lcd/layout', 1)
# --------------------------------------------------------------------------- #
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Do 5. Mai 2016, 12:16
von Chinchilla
# --------------------------------------------------------------------------- #
Display Samsung {
driver 'SamsungSPF'
model 'SPF-AUTO'
port 'usb0'
font '26x40'
size '1024x600'
Basecolor '000000' # Basisfarbe
Background '000000' # Displayhintergrund
Foreground 'ffffff' # Displayvordergrund
orientation 1
backlight 7
}
# --------------------------------------------------------------------------- #
Display file::readline('/tmp/lcd/layout', 1)
Layout file::readline('/tmp/lcd/layout', 1)
# --------------------------------------------------------------------------- #
Du machst da gravierende Fehler. Ich hab dir das mal gelb markiert, da rot bei diesem Hintergrund nicht mehr zu sehen ist.
In deiner config unten die letzten beiden Zeilen,da wird der name des zu intitialisirenden Displays und Layout geholt. Folglich darf oben bei der Initialisierung nur entweder:
Display large ;
Display user ;
Display standard ;
Display standby auftauchen.
In der Regel reichen aber
Display user und
Display standby !
Aber vorsicht! Bei Display standby wird die lcd4linux.config aus /etc genommen.
Wärend bei Display user die lcd4linux.config aus /var/etc genommen wird.
Re: [Suche]HowTo SPF-105P für LCD4Linux
Verfasst: Do 5. Mai 2016, 12:32
von Gorcon
Du machst da gravierende Fehler
Mhhh... ich habe das so 1:1 rauskopiert!
Bei Dir fehlt jetzt aber die letzte Zeile.
Was ist nun richtig?
Aber egal ob ich da jetzt als erste Zeile
drin stehen habe es bleibt immer die gleiche Meldung. Das Display wird nicht initialisiert.
