Palm Handheld als Status LCD

Status
Für weitere Antworten geschlossen.

wilddog1806

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Hoffe das ich das richtige Unterforum erwischt habe, ansonsten bitte verschieben.

So, nach einigem zusammensuchen im Forum und bei Google habe ich es endlch geschafft und mein alter Palm dient mir als LCD an der NAS :D

Hier eine kleine Anleitung wie ich es auf meiner DS211+ mit DSM 3.2 gemacht habe.

Benötigt wird:

- ein Palm Handheld (getestet mit Tungsten T3 und einem m515, m130 funzt nicht)
- das Tool PalmOrb (wird auf dem Palm installiert)
- die Kernel Module usbserial und visor (passend zu eigener Prozessorachitektur und Kernel)
- eine Software zum ansteuern des LCD z. Bsp. Lcd4Linux oder LCDProc
- module-init-tools (nicht zwingend notwendig, kann aber sehr hilfreich sein, beinhaltet 'depmod')


PalOrb auf dem Palm installieren. Mehr Info's zu PalmOrb auf der Seite des Programmierers.
http://palmorb.sourceforge.net/index.html


module-init-tools installiert

ipkg install module-init-tools



Programm zum ansteuern des LCD installiert (in meinem Fall Lcd4Linux)

ipkg install lcd4linux



Kernel Module auf die NAS kopieren, für die DS211+ mit DSM 3.2 (Kernel 2.6.32.12) musste ich sie mit dem Toolchain von Synology
selbst Compilieren und stelle diese gerne zur Verfügung.

Ich habe sie in den Ordner

/opt/lib/modules/2.6.32.12

kopiert, ansonsten meckert depmod rum falls man es ausführen muss.

Bei mir wurde das Device /dev/ttyUSB0 bzw. /dev/ttyUSB1 nicht automatisch angelegt,
also machen wir noch ein

mknod /dev/ttyUSB0 c 188 0
chmod 0660 /dev/ttyUSB0

oder
mknod /dev/ttyUSB1 c 188 1
chmod 0660 /dev/ttyUSB1


Jetzt werden die Module geladen

insmod /opt/lib/modules/2.6.32.12/usbserial.ko
insmod /opt/lib/modules/2.6.32.12/visor.ko
modprobe usbserial
modprobe visor


Jetzt kann man lcd4linux starten, fertig :-D (Die config Datei /etc/lcd4linux.conf wurde in meinem Fall nicht mit angelegt)

Hier noch die Startscripte und config Datei die ich verwende:

/opt/etc/init.d/S10usbserial
Rich (BBCode):
#! /bin/sh

insmod /opt/lib/modules/2.6.32.12/usbserial.ko
insmod /opt/lib/modules/2.6.32.12/visor.ko

sleep 5
modprobe usbserial
modprobe visor

esac

/opt/etc/init.d/S99lcd4linux

Rich (BBCode):
#! /bin/sh

case "$1" in
   start)
      # Anweisungen zum Starten hier eingeben
      /opt/bin/lcd4linux
      ;;
   stop)
      # Anweisungen zum Stoppen hier eingeben
      killall lcd4linux
      ;;
   restart)
      $0 stop
      sleep 5
      $0 start
      ;;
   *)
      echo "Usage: /opt/etc/init.d/S99lcd4linux {start|stop|restart}"
      exit 1
      ;;
esac

/etc/lcd4linux.conf

Rich (BBCode):
# Display Section
Display PalmOrb {
    Driver    'MatrixOrbital'
    Model     'LK204-25'
    Port      '/dev/ttyUSB1'
    Speed      19200
    Icons      0
}


# Widget Section
Widget RAM {
    class      'Text'
    expression  meminfo('MemTotal')/1024
    postfix    ' MB RAM'
    width      10
    precision  0
    align     'Right'
    update     tick
}

widget DateTime{
    class 'Text'
    expression strftime('%d.%m.%y %H:%M:%S',time())
    width 20
    align 'Left'
    update 1000
}

Widget BusyBar {
    class      'Bar'
    expression  proc_stat::cpu('busy',   500)
    expression2 proc_stat::cpu('system', 500)
    length      10	
    direction  'E'
    style      'H'
    update      100
    BarColor0  'ff0000'
    BarColor1  '00ff00'
}

Widget OS {
    class 'Text'
    expression uname('nodename').' '.uname('release')
    width 21
    align 'C'
    update tick
}

Widget Eth0Bar {
    class 'Bar'
    expression  netdev('eth0', 'Rx_bytes', 500)
    expression2 netdev('eth0', 'Tx_bytes', 500)
    length 10	
    direction 'E'
    update tack
}
# Layout Section


Layout Default {
    Row1 {
        Col1  'DateTime'
    }
    Row2 {
        Col1  'BusyBar'
    }
    Row3 {
        Col1  'OS'
    }

    Row4 {
        Col1  'Eth0Bar'
        Col11 'RAM'
    }    
#    Timer1 'PollFan'
#    GPO1   'ISDN_connected'
}

# Variables Section

Variables {
   tick 500
   tack 100
}

Display 'PalmOrb'
Layout  'Default'


Viel Erfolg beim testen

wilddog
 

santorial

Benutzer
Mitglied seit
21. Feb 2010
Beiträge
160
Punkte für Reaktionen
0
Punkte
0
Hi,

funktionieren die beiden Module von dir auch mit einer 110j? Ich habe noch einen Digitalen Bilderrahmen rumliegen und würde gerne mal versuchen den anzusprechen.

Gruß Marc
 

wilddog1806

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Hallo Marc,

da ich selbst kein Linux Guru bin sag ich einfach mal generell sollten diese Module auch auf der 110j funktionieren, das ist denk ich mal vor allem abhängig vom Linux Kernel der auf Deiner NAS ist. Welche DSM Version hast Du denn drauf ? Ich habe den DSM 3.2 Beta daruf also Kernel 2.6.32.12. Die Prozessorachitektur ist bei der DS110j und der DS211+ fast identisch, also Marvell Kirkwood 88F628x. Das Visor Modul braucht man soweit ich weiß nur für den Palm. Also wenn Du den selben Kernel drauf hast kann ich Dir die Module mal geben. Inwiefern willst Du denn den Bilderrahmen ansprechen ?

Gruß Harald
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Beide ARM, sollte gehen. Wäre auch interessiert an den Modulen :)
 

wilddog1806

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
52
Punkte für Reaktionen
0
Punkte
6

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Bekomme von lcd4linux nur diese Errors:

Code:
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: write(/dev/ttyUSB0) failed: Resource temporarily unavailable
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: too much errors, giving up
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: write(/dev/ttyUSB0) failed: Resource temporarily unavailable
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: too much errors, giving up
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: write(/dev/ttyUSB0) failed: Resource temporarily unavailable
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: too much errors, giving up
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: write(/dev/ttyUSB0) failed: Resource temporarily unavailable
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: too much errors, giving up
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: write(/dev/ttyUSB0) failed: Resource temporarily unavailable
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: too much errors, giving up
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: write(/dev/ttyUSB0) failed: Resource temporarily unavailable
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: too much errors, giving up
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: write(/dev/ttyUSB0) failed: Resource temporarily unavailable
Aug 29 00:38:30 LCD4Linux[19786]: MatrixOrbital: too much errors, giving up

Ist ein palm Zire72. Muss ich noch was einstellen bei Serial?

Gruss, ubuntulinux
 

wilddog1806

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
kenne mich mit den palm's net wirklich gut aus, hatte das ding noch in meinem fundus.

wird der palm denn vom system erkannt ?
was sagt das system wenn du den palm einsteckst ?
ist beim palm die verbindungseinstellung auf usb gesetzt ?
hast du mal die hotsync taste am cradle gedrückt ?
versuch auch mal /dev/ttyUSB1, bei manchen soll es probleme geben mit USB0

schau mal nach mit lsusb und dmesg.
ich hab beim testen immer noch ein zweites terminalfenster auf in dem ich tail -f /var/log/messages eingebe.

gruß wilddog
 

santorial

Benutzer
Mitglied seit
21. Feb 2010
Beiträge
160
Punkte für Reaktionen
0
Punkte
0
Hi,

ich habe auch den DSM 3.2 Beta drauf.
Ich will den Bilderrahmen als Statusanzeige nutzen. Es geht um den hier. Unter Debian läuft das Ganze auch schon. Bei der Diskstation hat es bisher noch nicht funktioniert.
 

wilddog1806

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
hallo santorial,

ich denke du brauchst dann nur das kernel-modul 'usbserial'. sag mal bescheid ob es geklappt hat, hört sich nämlich sehr interessant an.
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Naja hänge den Palm direkt per USB Kabel an die DS. Hat keine Taste ;) Werde es aber mal versuchen über die Software auszulösen, bin gerade auf Arbeit. Der Palm wird laut /var/log/messages aber erkannt.


Gruss und danke :)

ubuntulinux
 

santorial

Benutzer
Mitglied seit
21. Feb 2010
Beiträge
160
Punkte für Reaktionen
0
Punkte
0
Ich wollte grade usbserial.ko mit modprobe "laden" erhalten aber die folgende Fehlermeldung:
FATAL: Could not load /opt/lib/modules//2.6.32.12/modules.dep: No such file or directory

module-init-tools ist installiert. Ich habe auch unter /opt/lib/ das Verzeichnis modules garnicht.
Weiss zufällig jmd wo der Fehler liegt?
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
lad' das Modul mit insmod. Also /sbin/insmod usbserial.ko. Kernel-Logs kannst du mit dmesg anschauen.
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Läuft :D Das Display-Feld ist aber ein bissch klein ;)
 

wilddog1806

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
hallo ubuntulinux,

du kannst das displayfeld am palm noch einstellen. mit dem stift oben antippen dann kommst du ins menu.
da unter screen kann man die fontgröße wählen und zwischen 4 farbschemas wählen.

versuche grad lcdproc mit mpd ans laufen zu bekommen und hab da noch was entdeckt wegen hotplug, ich meld mich wieder wenn
ich es hinbekommen habe.

gruß
wilddog
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Das geht mit der anderen Version, aber die wirft nur Errors aus :confused:
 

wilddog1806

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
falls du mit andere version lcd4linux meinst, ist das genau das problem. für lcdproc gibt es auch einiges an mpd plug-ins, aber hab noch nix ans laufen bekommen weil immer irgendwas fehlt oder es sich nicht compilieren lässt. ich bräuchte ne passende libmpd als .ipk für den 2.6.32 kernel. :mad:
naja, ich probier mal weiter.

gruß wilddog
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Nein, die Software für den Palm zeigt Errors.
 

santorial

Benutzer
Mitglied seit
21. Feb 2010
Beiträge
160
Punkte für Reaktionen
0
Punkte
0
Ich weiss jetzt auch warum ich das damals aufgegeben habe mit der Diskstation und dem Bilderrahmen. :)
Ich brauche für den Bilderrahmen ein lcd4linux mit eingebundenen DPF. Das hatte schon damals nicht funktioniert.
 

wilddog1806

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
habs nun doch noch hinbekommen mit lcd4linux, zumindest auf meinem bastel laptop mit dabian hats gefunzt und meine nas gibt über ssh schon mal keine fehler aus :D
ob auch was angezeigt wird sehe ich erst wenn ich zuhause bin. hab mir lcd4linux-0.11.0-SVN heruntergeladen und selbst compiliert auf der nas bzw. aufm läppi. zu beachten ist hierbei das man die libmpdclient.c und libmpdclient.h in das source verzeichniss von lcd4linux kopieren muss, sonst wird das mpd plug-in nicht generiert.

@santorial
es sollte eigentlich kein problem sein den DPF treiber noch mit einzubinden wenn man lcd4linux eh neu compiliert.

gruß
wilddog

Nachtrag:

Heureka, es geht :D

wie oben schon angegeben lcd4linux aus der SVN selbst compilieren,
ich hab folgende befehlszeile benutzt (im source ordner von lcd4linux)

Rich (BBCode):
./configure --prefix=/usr/local --with-drivers=MatrixOrbital --with-plugins=all
make
make install

hier noch mein lcd4linux.conf

Rich (BBCode):
Plugin MPD {
    enabled 1
    server 'localhost'
    port 6600
#    password 'secret'
    minUpdateTime 500
}	    

#
# display artist and album, scrolling
#
Widget mpd-combo {
    class 'Text'
    expression mpd::artist() . '/' . mpd::title() 
    width 20
    align 'A'
    speed scroller
    update tack
}

#
# display current song id and number of total song
#
Widget mpd-posid {
    class 'Text'
    expression mpd::getMpdPlaylistGetCurrentId().' of ' .mpd::getMpdPlaylistLength()
    width 11
    align 'L'
    update tack
}

#
# display 30s the mpd uptime (ex. UP:2d03h32m) then 30s the current song id and number of total songs (ex. 267 of 734)
#
Widget mpd-toggler {
    class 'Text'
    expression ( (mpd::getMpdUptime()%60)<31 ? ('UP:'.mpd::formatTimeDDHHMM( mpd::getMpdUptime() ) ) : (mpd::getMpdPlaylistGetCurrentId().' of ' .mpd::getMpdPlaylistLength()) )
    width 11
    align 'L'
    update tack
}

#
# display playerstate (play, pause, stop, unknown)
#
Widget mpd-playerstatus {
    class 'Text'
    expression (mpd::getStateInt() == 1 ? 'PLAYING' : '').(mpd::getStateInt() == 2 ? 'PAUSED ' : '').(mpd::getStateInt() == 3 ? 'STOPPED' : '').(mpd::getStateInt() == 0 ? 'UNKNOWN' : '')
    width 7
    align 'L'
    update tack
}

#
# get repeat/random
# example: REP/RND, REP/---, ---/RND, ---/---
#
Widget mpd-reprnd {
    class  'Text'
    expression (mpd::getRepeatInt()>0 ? 'REP' : '---') . '/' . (mpd::getRandomInt()>0 ? 'RND' : '---')
    width  7
    align  'L'
    update tack
}

#
# display track position example: <00:48/04:33>
#
Widget mpd-tracktime {
    class  'Text'
    expression mpd::formatTimeMMSS( mpd::elapsedTimeSec() ).'/'.mpd::formatTimeMMSS( mpd::totalTimeSec() )
    width  11
    align  'L'
    update tack
}

#
# display uptime of mpd, example: <0d06h51m>
#
Widget mpd-uptime {
    class  'Text'
    expression 'UP:'.mpd::formatTimeDDHHMM( mpd::getMpdUptime() )
    width  11
    align  'L'
    update 10000    
}

#
# small playbar and track time
# 
Widget smallMP3Bar_part1 {
    class 'Bar'
    expression mpd::elapsedTimeSec()
    length 14
    min 0
    max mpd::totalTimeSec()
    direction 'E'
    style 'H'
    update tack
}

#
# display volume
#
Widget mpd-vol {
    class  'Text'
    expression 'VOL:'.mpd::getVolume()
    width  7
    align  'R'
    update tack
}

Widget smallMP3Bar_part2 {
    class  'Text'
    expression '/'.mpd::formatTimeMMSS( mpd::totalTimeSec() )
    width  6
    update tack
    align  'L'
}

#
# display volume
#
Widget mpd-vol {
    class  'Text'
    expression 'VOL:'.mpd::getVolume()
    width  7
    align  'R'
    update tack   
}

Widget mpd-bitrate {
    class  'Text'
    expression mpd::bitRate().'k'
    width  6
    update tack
    align  'L'
}

# example:
#   +--------------------+	+--------------------+
#   ¦ad/It's A Fire      ¦	¦ Portishead/It's A F¦
#   ¦***           /03:48¦	¦*********     /03:48¦
#   ¦REP/RND PLAYING 128k¦	¦REP/RND PLAYING 128k¦
#   ¦UP:2d03h33m  VOL:100¦	¦267 of 734   VOL:100¦
#   +--------------------+	+--------------------+

Layout L20x4 {
    Row1 {
	Col1  'mpd-combo'
    }
    Row2 {
	Col1 'smallMP3Bar_part1'
	Col15 'smallMP3Bar_part2'
    }
    Row3 {
        Col1 'mpd-reprnd'
	Col9 'mpd-playerstatus'
	Col17 'mpd-bitrate'
    }    
    Row4 {
        Col1 'mpd-toggler'
	Col14 'mpd-vol'
    }    
}

Variables {
    t_onesec 	1000
    t_500m 	500
    tack 500
    tick 100
    tacku 100
    scroller 500
}

Display PalmOrb {
    Driver    'MatrixOrbital'
    Model     'LK204-25'
    Port      '/dev/ttyUSB1'
    Speed      19200
#    Icons     <number>
}


#Display CFA634 {
#        Driver   'Crystalfontz'
#        Model    '634'
#        Port     '/dev/ttyUSB0'
#    	Speed     38400
#        Contrast  65
#        Backlight 20
#        Icons 1
#}

Display 'PalmOrb'
Layout 'L20x4'
 
Zuletzt bearbeitet:

wilddog1806

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Nun denn, nach vielem googeln, suchen und ausprobieren komme ich zu dem schluss das man am besten auf lcd4linux zurückgreift und, zumindest mit nem palm als display oder auch nem normalen textdisplay keine zu hohen erwartungen haben darf. und nach noch mehr googeln, suchen und etlichen versuchen plug-ins zu compilieren und sonstwas damit zu tun muss ich leider sagen das ich von lcdproc sehr enttäuscht bin und es auch nicht wirklich empfehlen kann.

habe mir jetzt auch den DPF bei pearl bestellt und mal schauen ob das funzt und wie sich das ding so macht.....hoffe das es morgen kommt :D

so long
wilddog
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat