PHILIPS VP5500 VoIP Telefon

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Verwandte Artikel

Features

  • Kamera-Auflösung 640x480 Pixel
  • 30 Bilder pro Sekunde
  • Kamera um 240° drehbar
  • 5,6 cm (2,2") TFT-Display, 176x220 Pixel, 65000 Farben
  • Audio-/Video-Ausgang (Cinch)
  • integrierter Li-Ion Akku, 3,7 V-/1100 mAh
  • englische und niederländische Menüsprache
  • Software Qtopia Version 2.1.0
  • Maße (LxBxH): 134x49x24 mm.

Philips VP5500.jpg

Hardware

  • MCU: Freescale MC9328MX21 (ARM9) @ 266MHz
  • PC-to-TV-Konverter-Chip: FS455LF
  • WLAN: Marvell 88w8385, als Modul von WM-G-MR-01 (VP5500) / Philips BGW211, on-board (VP6500)
  • SDRAM: 2 x K4S56163LF - 4M x 16Bit x 4 Banks
  • Flash: 2 x ws128j0pbfw00 S29WS128J/064J 128/64 Megabit (8/4 M x 16-Bit) CMOS 1.8 Volt-only Simultaneous Read/Write, Burst Mode Flash Memory
  • Kamera: dc-4626.a5 by chicony
  • Display: Samsung LTS220QC (HD66772 Controller)

System-Takte

# cat /proc/systclk
System clocks state:
    Ref clock :      32768Hz  (int, premult by 512)
    MPLL clock:  263999905Hz  (computed: 264000000Hz)
    SPLL clock:  163840000Hz  (computed: 163840000Hz)
    CPU clock :  263999905Hz  (PERSC   = 0)
    Bus clock :  132000000Hz  (BCLKDIV = 1, computed: 131999952Hz)
    CSI clock :  unknown      (cannot read register CSICR1)
    USB clock :   20480000Hz  (USB_DIV = 7)
    Wait State:  CS0U[WSC] = 10, CS0U[WSC] = 48
    loops_per_jiffy = 665058

Innenleben


Testpins

Original Liste von Tino herrunterladen.

Testpins auf der Rückseite
Frontseite: Die ICs wurden zum Messen ausgelötet.
Testpin Nr. verbunden zu Funktion
1 LED unbekannt
2 Kamera Pin 8 an CN1 unbekannt
3 Pin 4 an IC1 unbekannt
4 z.B. IC5 Pin V 18 VDDA
5 GND GND
6 NC NC
7 Pin E 16 an IC5 SAP_CLK
8 Pin 1 an CN 3 Lautsprecher
9 Pin 2 an CN 3 Lautsprecher
10 Pin an CN 4 ?
11 Pin an CN 4 ?
12 Pin an CN 4 ?
13 Pin L 16 an IC5 UART2_TXD
14 Pin C 12 an IC5 USBH1_RXDM
15 Pin H 12 an IC5 USBH1_TXDP
16 Pin B 19 an IC5 CSPI2_SS2
17 Pin B16 an IC5 SSI2_FS
18 Pin F 18 an IC5 KP_ROW0
19 Pin K 18 an IC5 KP_COL4
20 Pin L 19 an IC5 UART3_TXD
21 Pin T 14 an IC5 RESET_IN
22 geht an + des Kondensators neben IC6 unbekannt
23 Pin D 13 an IC 9 CLKOUT
24 Pin E 13 an IC 9 CLKIN_P
25 Pin A 9 an IC 9 DAC_D
26 Pin A 8 an IC 9 DAC_A
27 Pin A 7 an IC 9 DAC_B
28 Pin A 6 an IC 9 DAC_C
29 Pin L 13 an IC 5 UART1_TXD
30 Pin T 16 an IC 5 BOOT1
31 Pin K 10 an IC 5 UART1_RXD
32 Pin U 17 an IC 5 BOOT2
33 Pin 9 an IC 23 unbekannt
34 Pin D 19 an IC5 CSPI2_SCLK
35 Pin C 14 an IC5 TIN
36 Pin C 19 an IC5 CSPI2_SS1
37 Pin D 18 an IC5 CSPI2_SS0
38 Pin E 19 an IC5 CSPI2_MOSI
39 Pin H 19 an IC5 PWMO
40 Pin J 9 an IC 7 und IC 8 VDD
41 Pin J 19 an IC 5 KP_COL2
42 Pin K 16 an IC 5 KP_COL3
43 Pin J 11 an IC 5 KP_ROW2
44 Pin J 17 an IC 5 KP_COL1
45 Pin G 19 an IC 5 KP_ROW4
46 Pin G 17 an IC 5 KP_ROW3
47 Pin D 5 an IC 10 und IC 11 ACC
48 Pin G 16 an IC 5 KP_ROW1
49 Pin J 18 an IC 5 KP_COL0
50 Pin V 18 an IC 5 VDDA
51 Pin 2 an CN KB-Stecker ?
52 Pin 2 an IC 15 ?
53 Pin 4 am LCD Stecker ?
54 Pin E 17 an IC 5 CSPI2_MISO
55 Pin 1,2,3,10,13 am LCD Stecker ?
56 Pin 3 an IC 16 ?
57 Pin U 10 an IC 5 PC_PWRON
58 Pin 1 IC 18 ?
59 an Diode über IC 16 ?
60 Pin 3 an IC 25 ?
61 Ladekontakt positiv Ladegerät +
62 GND GND
63 Akku Mittelkontakt Akkustand? Temperatur?
64 Transistor unter IC 16 ?
65 Pin 2 an IC 22 ?
66 Pin 1,12,30 an IC 24 VSS
67 Kondensator + unter IC 20 ?
68 Pin 5 an IC 21 ?
69 Pin 2 an IC 4 ?
70 Pin 25 an IC24 MCLK
71 Prozessor Pin W 14 QVDD

UART

TIN muss auf low gezogen werden, um die Schnittstelle zu aktivieren. Jedoch startet dann das Telefon nicht vollständig (Fix siehe #Betrieb mit aktiverter serieller Schnittstelle)

  • Spannungs-Pegel: 3.3V
  • Baudrate: 115200kbps
  • Stopbits: 1
  • Flussteuerung: keine

VP5500

UART-Pins VP5500(Frontseite der Platine)

Die serielle Schnittstelle ist unten vom Akkufach aus zugänglich. Obiges Bild kennzeichnet die für die serielle Kommunikation benötigten Pins.

VP6500

UART-Pins VP6500

Die serielle Schnittstelle ist unter vom Akkufach aus zugänglich. Obiges Bild kennzeichnet die für die serielle Kommunikation benötigten Pins.
VCC liefert anscheinend die ungeregelte Akkuspannung, Boot-Pins nicht verifiziert.

JTAG

Jtag.jpg Belegung der JTAG-Pins (Rückseite der Platine)

Hardware Modifikationen

Zerlegen des Telefons

  1. das Akkufach muss geöffnet und die Schrauben entfernt werden
  2. hinter der rückseitigen schwarzen Blende befinden sich zwei Schrauben, die entfernt werden müssen
    • Hierzu am besten mit einem schmalen kleinen Schraubendreher von der Stirnseite aus zwischen die Plastikteile fahren und vorsichtig aufhebeln und den Schraubendreher dabei weiter unter die Blende bewegen.
  3. Nun kann einfach das rückseitige Schalenteil abgeschaubt werden
  4. das Entfernen des Frontschalenteils ist etwas tricky:
    • von oben und unten lässt sich ganz gut ein Spalt zur Seite aufweiten
    • etwas unter der Mitte hängt es aber auf beiden Seiten. Dort befinden sich kleine Plastikbügel, die recht leicht zerbrechen.
    • Mit einem sehr schmalen Schraubendreher in eine der Lücken fahren (anfange auf der Seite ohne Tasten) und den Schraubendreher nach innen drücken, so das der Druck in der Seite nach außen wirkt.
    • Mit etwas Geschick bekommt man das so ohne Bruch ab, es ist aber auch nicht kritisch, wenn der Bügel ein wenig anbricht)
  5. Die Platine zu entfernen ist nicht ganz so schwierig.
    • Zuerst die Seite auf der keine Knöpfe sind:
    • vorichtig diese Seite leicht anheben. Am unteren Ende ist auf die Kontakte zu achten
    • dann versuchen die Paltine seitlich nach oben aus dem Gehäuse zu ziehen
    • dabei auf das Lautsprecherkabel und den Kamerakonnektor achten
  6. Zusammenbau genauso, nur umgedreht ;)
    • nicht die Lautsprecher- und Kamera-Stecker vergessen

Buchse für Uart einbauen

Zunächst muss das Telefon zerlegt werden (#Zerlegen des Telefons) Um das Gehäuse nicht zu beeinträchtigen, habe ich mich dazu entschieden, alles so zu lassen wie es ist und nur kleine Buchsen einzubauen.

  1. Hierfür habe ich einreihige gedrehte IC-Sockel genutzt
  2. deren Beine abgezwickt, und etwas Lötzinn aufgetragen (mit der langen Reihe kann man die kurzen, schmalen Teile super handhaben)
  3. ebendso auf die Pads ein wenig eingezinnt
  4. ausrichten und festlöten
  5. eine Reihe
  6. die zweite Reihe
  7. bei der Gehäuseöffnung über den Pins habe ich mit einer feinen Schlüsselfeile den Rand wenig aufgeweitet. An der Gummimatte hab ich nix geändert.
  8. fertig
  9. und im Einsatz

Das VPx500 'rooten'

Um Zugang zu den Dateien auf dem Gerät zu erhalten gibt es mehrere Möglichkeiten

  1. serielle Schnittstelle
  2. telnet

telnet ist der komfortablere Weg. Um telnet zu aktivieren, wird dem Telefon ein Softwareupdate vorgegaukelt. Es versucht, auf den Updateserver von KPN zuzugreifen (den es nicht mehr gibt). Glücklicherweise geschieht dies nicht über eine feste IP, sondern über einen Hostnamen, so dass man an dieser Stelle sich durch einen eigenen DNS den Domainname auf einen eigenen Server umleiten kann. Daher ist im eignenen Netzwerk eine Umleitung des DNS erforderlich (oder ein DHCP-Server, der die Adresse des DNS bekanntgibt. Stichworte 'Static DNS', ..). Das Gerät holt sich dann ein Updatepaket, das den Telnet-Zugang aktiviert.

Dann lässt sich per Terminal (Linux. Windows: ....) die Kommandozeile des Geräts aufrufen:

telnet 123.456.789.012
# 

Passwort ist "toor". Das Ändern des root-Passwortes erfolgt mit dem Befehl passwd.

Unter Applications>Registration sind Netzwerk- und VoIP-Einstellungen zu finden.

Anleitung für Fritz-Box-Benutzer

Die Fritzboxen bieten bisher leider keine Möglichkeit, den verwendeten DNS direkt im Webinterface zu ändern, über Umwege geht es aber doch:

  • Über das Webinterface der Fritzbox die Einstellungen sichern
  • Exportdatei im Texteditor öffnen (am besten nicht Notepad, da der die Unix-Zeilenumbrüche nicht versteht - zur Not geht auch Wordpad)
  • nach overwrite_dns1 suchen (gibt es zwei mal) und da den DNS 84.38.68.30 oder 188.40.123.50 eintragen
  • am Anfang der Exportdatei VOR "**** CFGFILE:ar7.cfg" eine Zeile 'NoCheck = yes' einfügen, damit die Fritzbox die nun nicht mehr passende Checksumme ignoriert.
  • Einstellungen zurück in die Fritzbox übertragen.

Wenn die Telefone entsperrt sind, den DNS wieder entfernen (Es ist vielleicht eine ganz gute Idee, wenn man da zwei unabhängige DNS-Server einträgt, so umgeht man auch gleich providerseitige DNS-Sperren)

Voice over IP (VoIP, SIP)

Benutzer ist 103

Mit Ekiga konnte so per 103@xxx.xxx.xxx.xxx eine Sprachverbindung zum Telefon aufgebaut werden.

Software Modifikationen

Vorsicht Fallen

Es ist nicht schwer, sich den Zugang zum Telefon abzuschneiden, wenn man nicht aufpasst.

Startscripten

Die Scripten in /etc/rc.d/" müssen im Hintergrund laufen. Tut ein Script das nicht, ist an dieser Stelle Schluß mit dem Bootvorgang.

Grundlagen

Bestimmte Aktionen werden immer wieder benötigt. Diese sollen hier kurz beschrieben werden.

Es werden dennoch grundlegende Kenntnisse von Kommandozeilen vorausgesetzt.

Dateien bearbeiten mit vi

Auf dem Telefon ist der minimalistische Editor vi installiert mit dem Dateien über Telnet bearbeitet werden können. Für eine genaue Bedienung bitte Google benutzen. Die wichtigsten Bedienelemente werden hier kurz erläutert.

Datei Öffnen mit 'vi Dateipfad' vi kennt zwei Modi: Kommando- und Einfüge-Modus. i - wechselt in den Einfüge-Modus, in dem geschrieben werden kann

[Esc] wechselt zurück in den Kommandomodus. In diesem kann mittels Pfeil- und Bildlauftasten navigiert werden.

x - löscht das Zeichen an Cursor position
dd - löscht die ganze zeile
:q! - schließt ohne zu speichern
:w - speichert
:wq - speichert und beenden

Dateien auf das Telefon laden

Um Daten von einem http-Server zu laden, benutzt man

wget url

Die Datei wird dann in das aktuelle Verzeichnis geladen, weswegen vorher in das Zielverzeichnis wechseln.

Um Daten von einem ftp-Server zu laden, benutzt man ftp. Auch hier muss vorher in das zielverzeichnis gewechselt werden.

ftp hostname

dann gegebenenfalls die Zugangsdaten eingeben und mittels 'cd' und 'ls' in das Entsprechende Verzeichnis auf dem FTP-Server wechseln und anschließend mittels

get dateiname

die Datei herunterladen.

Dateien vom Telefon herunterladen

Auch hier bietet sich ein FTP an. Mittels 'ftp hostname' verbinden, Benutzerdaten eingeben, in das entsprechende FTP-Server-Verzeischnis wechseln und mittels

put localeDatei

eine Lokale Datei hochladen.

Alternative Dropbear

Wurde der dropbear-ssh server installiert #Dropbear (SSH-Server) installieren können mittels eines Programms mit SCP-Unterstützung (zB. WinSCP für Windows) sehr komfortabel Dateien ausgetauscht werden.

Mit WinSCP können auch Dateien direkt bearbeitet werden. Der Client lädt die Datei herunter, öffnet einen Editor und lädt die Datei wieder herauf, wenn diese geändert wurde.

Backup

Backup des Flash

If you want to make a backup of your root partition, you can do as follows:

<c> echo '#!/bin/sh' > /tmp/backup.sh echo 'cat /dev/mtdb2 2>/dev/null' >> /tmp/backup.sh chmod 700 /tmp/backup.sh micro_inetd 31337 /tmp/backup.sh </c>

This'll make your device listen for incoming connections on port 31337. On your host system you may then simply run

nc ip.of.your.phone 31337 > fon_rootfs

et voilà, you got your rootfs packed into a file.

Note that the backed up file is not ext2, but a jffs2 formatted filesystem. These can't be handled by a simple "mount -o loop" as you'd have thought... so here's how you mount it:

<c> modprobe jffs2 modprobe mtdram total_size=32768 erase_size=128 modprobe mtdblock mkdir /tmp/phone-root mknod /tmp/phone-mtdb2 b 31 0 dd if=/your/backup/file of=/tmp/phone-mtdb2 mount -t jffs2 /tmp/phone-mtdb2 /tmp/phone-root </c>

#Dateisystem herunterladen describes another way to dump the filesystem for closer examination.

Komplettes Backup

Die Datei http://www.mikrocontroller.net/attachment/73323/S91backup_pipe auf das Gerät laden und als ausführbar markieren.

cd /etc/rc.d/init.d
wget http://www.mikrocontroller.net/attachment/73323/S91backup_pipe
chmod +x /etc/rc.d/init.d/S91backup_pipe

Damit wird eine Art Backup-Server mit dem Boot gestartet. wenn man dies nicht möchte kann man das Skript natürlich auch an jeden beliebigen anderen Ort legen und per Hand starten.

Nun kann man von einem Rechner aus mittels nc (netcat) die Bereiche sichern:

nc 192.168.1.3 31337 > fon_rootfs
nc 192.168.1.3 31338 > fon_udata
nc 192.168.1.3 31339 > fon_usettings
nc 192.168.1.3 31340 > fon_bootld
nc 192.168.1.3 31341 > fon_kernel

Die 192.168.1.3 natürlich mit der IP des Gerätes austauschen, die fon_* Dateinamen könnt ihr natürlich auch frei vergeben.

fon_udata ist die /user_data Partition, fon_usertings dementsprechend die /user_settings Partition.

Der bootld Bereich enthält auch die Parameter. Um das später (falls überhaupt nötig) mittels blob zu restaurieren müsste die Datei noch in zwei Teile aufgeteilt werden. Der erste enthält dann den reinen Bootloader-Bereich, der zweite die Parameter. Wer's wirklich braucht für den kann ich noch ne Anleitung zum Aufteilen geben. Wirklich Sinnvoll ist das aber nicht, hat man den Bootloader erstmal mit was anderem überschrieben kann man ihn ja auch nicht mehr zum Wiederherstellen benutzen....

Zurückspielen der Backups

1) Man braucht ein (die) Backup-Image(s).

2) Serielle Verbindung zum Telefon

3) Akku abstecken, wieder anstecken.

4) Telefon einschalten und im Terminalprogram auf die Tasten kloppen, so das man im Bootloader landet. Dabei muss man recht schnell sein. Es sollte dann ein Prompt kommen:

<c> blob> </c>

5) Nun gibt man ein

  xdownload param

Wobei 'param' der Teil ist, den man wiederherstellen will:

  • blob - Bootloader (fon_bootld)
  • param - Parameter Bereich (Bootloader oder Kernel?) (fon_bootld)
  • kernel - Der Kernel (fon_kernel)
  • ramdisk - Das Root-Filesystem / (fon_rootfs)
  • ramdisk2 - Das /user_data Filesystem (fon_udata)
  • ramdisk3 - Das /user_settings Filesystem (fon_usettings)

Beim Backup ist blob + param in einer Datei, müsste man also ggf. erstmal aufsplitten.

6) Er wartet dann auf den Upload. Nun startet man im Terminalprogram den Upload des Backup-Images, dazu verwendet man das X-Modem Protokoll.

7) Kaffee trinken, auf's Klo gehen, mit Frau/Freundin/Mutter ein Gespräch anfangen.

8) Irgendwann ist der Upload fertig. Dauert halt lange. Man landet wieder am "blob>" prompt. Nun gibt man

flash param

ein.

9) Er schreibt nun das, was man hochgeladen hat, in das Flash.

10) "boot" eingeben. Da Telefon bootet nun normal.

Achtung: Wenn im Backup nicht die Änderung gemacht wurde damit das Telefon auch bei angeschlossener serieller Schnittstelle startet, kommt man nicht weiter als wie bis zur Sanduhr. Dann einfach die serielle abstecken (Also den TIN pin wieder freigeben) und das Telefon neustarten (Akku kurz ab- und wieder anstöpseln)

Dateisystem herunterladen

Zum unkomplizierten Durchsuchen des Dateisystems kann es nützlich sein, dieses vom Gerät zu kopieren.

Folgende Befehle erzeugen wie beim Backup des Flash einen kleinen Server, dessen Output auf anderer Seite mittels mittels nc abgeholt werden kann:

<c> echo '#! /bin/sh' > /tmp/backup.sh echo 'cd /' >> /tmp/backup.sh chmod 700 /tmp/backup.sh echo 'tar cf - bin boot dev etc home lib mnt opt root sbin tmp trace upgrade user_data user_settings usr var 2>/dev/null' >> /tmp/backup.sh micro_inetd 31340 /tmp/backup.sh </c>

Die lange Liste mit Unterverzeichnissen ist notwendig um /proc zu überspringen, was Probleme mit tar verursachen würde.

Auf einem anderen Linux system (oder cygwin) kann mittels <c>

 nc telefon-Ip 31340 > file.tar

</c> die Datei abgerufen werden.

Der Vorgang dauert aber ein ganz paar Minuten.

Heraus kommt ein Tar-Archiv, was alle Dateien des Gerätes enthält - inclusive der temporären Dateien der Ram-Disks.

Betrieb mit aktiverter serieller Schnittstelle

Das 5500 scheint nicht komplett zu starten wenn man TIN auf low hat und die serielle Schnittstelle benutzt. Man kann das Gerät dann nicht normal bedienen. Dies lässt sich ändern indem man in der Datei

/usr/local/startup/daemon.sh

ziemlich am Anfang das TINDETECT="TRUE" ändert auf TINDETECT="FALSE"

Danach startet er auch mit aktiver serieller Verbindung komplett durch und das Gerät ist ganz normal bedienbar.


Aktivierung WPA2 Unterstützung

Standardmäßig kann das Telefon nur WPA, dabei unterstützt es allerdings auch WPA mit AES Verschlüsselung.

Es gibt zwei verschiedene Tricks mit denen auch WPA2 aktiviert werden kann. Allerdings wurde von einigen ein Einbruch der Verbindungsgeschwindigkeit festgestellt (scheint jedoch nur bei geringem Akkuladestand aufzutreten).

Trick1

Mittels

vi /etc/marvell/wpa_supplicant.conf

den Texteditor starten. Mit PageDown (Bild runter) bis zum Ende des Files gehen. Die Zeilen

proto=WPA
pairwise=TKIP
group=TKIP

auskommentieren, indem ein # vorangestellt wird:

  • cursor auf Beginn einer Zeile
  • i drücken zum Einfügen
  • # eintippen
  • [Esc]

Sind alle Zeilen auskommentiert, dann mittels

:wq[enter]

abspeichern und Editor verlassen.

Danach neu booten.

Anmerkung: Will man sich mit dieser Änderung in einem reinen WPA2 Netz anmelden (registrieren), kann man als Verschlüsselung nur noch WEP auswählen - der Verbindungsversuch scheitert natürlich! (Hardware: Fritz!Box 7270, PHILIPS VP5500)

Also am Accesspoint WPA2 + WPA einstellen, Telefon registrieren, dann Accesspoint auf WPA2 konfigurieren.

Wichtige Info von airmack via IRC:

Um sich eine Wiederbelebung per serieller Konsole zu ersparen, ist es günstig, immer nur Einträge an die wpa_supplicant.conf hinten anzuhängen, niemals aber vorne einzufügen!

Trick2

Dieser Trick funktioniert mit Accesspoints, bei denen man auch WPA Verbindungen mit AES verschlüsseln kann. Vorteil dieses Tricks ist, dass man die wpa_supplicant.conf nicht manuell editieren muss. Allerdings unterstützt nicht jeder Accesspoint WPA mit AES (aber dd-wrt kann das).

Man konfiguriert den Accesspoint zunächst mit WPA PSK und wählt AES als Verschlüsselungsalgorithmus. Jetzt meldet man das Telefon an, das Telefon erkennt richtig, dass eine WPA Verbindung vorliegt und verbindet sich per WPA und AES mit dem Accesspoint. Anschliessend konfiguriert man den Accesspoint von WPA PSK AES nach WPA2 PSK AES. Jetzt schaltet man das VP5500/6500 aus und wieder ein. Nachdem es fertig gebootet hat, verbindet es sich automisch per WPA2 PSK und mit AES Verschlüsselung. Fertig.

Menüs

Hauptmenu

Das File

/usr/local/etc/defaultbuttons.conf

enthält unter anderm die definition des Hauptmenus.

Hierfür ist der Abschnitt Menu besonders interessant.

 [Menu]
 1 = Applications/camera.desktop
 2 = Applications/callhistory.desktop
 3 = Applications
 4 = Settings
 5 = Applications/addressbook.desktop
 6 = Settings/RingProfiles.desktop
 Columns = 3
 Default = 5
 Map = 123456789*0#
 Rows = 2

'Rows' und 'Columns' geben an, wieviel Reihen und Spalten das Hauptmenu hat. Über die Zuweisungen 1 bis (Columns * Rows) kann man dann den Menüpositionen die Menüpunkte zuweisen. Die Menupunkte sind definiert in den Verzeichnissen unter

/usr/local/apps

gibt man nur ein Verzeichnis an, dann erscheint ein Submenü, dessen Icon und Name in der .directory -Datei des entsprechenden Ordner definiert ist. direkte Menupunkte haben Dateinamen mit der Endung .desktop 'Default' bestimmten vorselektierten Eintrag.

Hier ein weiteres Beispiel für ein angepasstes Menu:

 [Menu]
 1 = Applications/addressbook.desktop
 2 = Applications/callhistory.desktop
 3 = Applications/sysinfo.desktop
 4 = Applications
 5 = Settings
 6 = Games
 7 = Applications/camera.desktop
 8 = Applications/photoedit.desktop
 9 = Applications/manualsub.desktop
 Columns = 3
 Default = 5
 Map = 123456789*0#
 Rows = 3

Der Ordner Games ist (momentan ;) leer.

Genereller Aufbau Menü-Einträge

Die Einträge für die Menüs sind im Filesystem abgelegt:

  • Settings: /usr/local/apps/Settings
  • Applications: /usr/local/apps/Applications
  • Klingeltöne: /usr/local/etc/SystemRingTones/

Die Dateien haben die Endung ".desktop" und sind normale Textdateien, die die relevanten Infos enthalten.

Ein Beispiel aus dem Settingsordner:

 [Translation]
 File=QtopiaSettings
 Context=Sound
 [Desktop Entry]
 Type=Application
 Exec=sound
 Icon=Sound
 Name[]=Sound
 CanFastload=0

Der Abschnitt 'Translation' gibt an in welchem File, die Lokalisationsdaten stehen.

Der Abschnitt 'Desktop Entry':

  • Type: Typ des Eintrages
    • Application für Anwendungen
    • audio/x-wav für Klingeltöne
  • Exec: Anwendung, die ausgeführt werden soll
  • Icon: Icon, das im Menü benutzt wird.
    • Pfad ist meist: /usr/local/pics/[Exex]/[Icon].png
    • manchmal aber auch: /usr/local/pics/icons/[14x14|16x16|22x22]/[Icon].png
  • Name[]: Name im Menü, wird über das in Translation angegebe File und Context aufgelöst. Dies wird verhindert, wenn die Klammern wegelassen werden, was das Einfügen eigener Einträge ermöglicht

Hier ein Textfile mit allen desktop-Files als Referenz: Datei:AlleDesktopFiles.txt

Versteckte Menüeinträge

in den oben genannten Ordnern existieren ein paar Dateien mit der Endung '.desktopMASK'. Benennt man diese um, werden die Einträge nach einem Neustart im Menü freigeschalten.

folgendes an der Kommandozeile eingeben:

cd /usr/local/apps/Settings
mv datetime.desktopMASK datetime.desktop
mv callforward.desktopMASK callforward.desktop
mv calloptions.desktopMASK calloptions.desktop
mv resetparam.desktopMASK resetparam.desktop
mv subkpncode.desktopMASK subkpncode.desktop

Dies aktiviert folgende Optionen:

  • Datums/Zeit-Einstellung
  • Anrufweiterleitung
  • Anrufoptionen
  • Parameter zurücksetzen
  • Number Switch


Die nützlichsten sind wohl die ersten Einträge. Bei dem "Number Switch" ist unklar, was er bewirken soll. Beim Start wird ein Code abgefragt.


Weiterhin kann im Verzeichnis /usr/local/apps/Applications eine Datei:Demomode.desktop anlegen.

Hierfür ist folgende Prozedur nötig:

  • im Terminal
                cd /usr/local/apps/Applications
                vi demomode.desktop
  • i drücken
  • folgendes Textfragment einfügen
                [Translation]
                File=QtopiaApplications
                Context=DemoMode
                [Desktop Entry]
                Exec=demomode
                Icon=Camera
                Type=Application
                Name[]=DemoMode
  • [Esc]
  • :wq [Enter]

Dies schaltet einen Demo-Modus frei.

Französisch

Es gab die Geräte wohl auch in Frankreich von der France Telekom. Zumindest sind entsprechende monitor und upgrade Referenz-Dateien vorhanden in denen das steht. Daher wohl auch die Französischen Sprachdateien, die zwar auf dem Gerät sind, allerdings in einem Unterverzeichnis, so das sie nicht auswählbar sind.

Um diese Dateien zu aktivieren:

cd /usr/local/i18n
mv NOTUSED/fr .

Nun ist auch noch französisch als Sprache verfügbar.

Grafische Anpassungen

So gut wie alle Grafiken liegen im Verzeichnis /usr/local/pics und können beliebig ausgetauscht werden (gleicher Dateityp, gleiche Größe).

Einige besonders interessante werden hier aufgeführt:

Eigene Startup/Shutdown-Animation

Die Animation beim Starten oder Herunterfahren sind normale (animierte) GIFs. Diese findet man in

/usr/local/pics/qpe

Die Links "splash.gif" und "goodbye.gif" zeigen auf die tasächlich zu verwendenen Dateien ("splash-chuck.gif", "goodby-chuck.gif"). Man kann sein eigenes animiertes GIF im Format 176x220 Pixel raufladen und die splash.gif entsprechend neu verlinken. Dazu löscht man zuerst die alte mit:

rm /usr/local/pics/qpe/splash.gif

Anschliessend erzeugt man den Link neu, dabei zeigt er dann auf die eigene Datei:

ln -s /pfad/zur/eigenedatei.gif /usr/local/pics/qpe/splash.gif

Danach wird dann bei jedem Neustart die eigene Animation angezeigt. Analog hierzu mit der goodbye.gif.


Also, man packe das Bild auf einen Webserver. Dann am Gerät über telnet anmelden und:

<c> cd /usr/local/pics/qpe/ wget Matrix5.gif rm /usr/local/pics/qpe/splash.gif ln -s Matrix5.gif splash.gif </c>

Die GIF Animation kann bis zu 176x220 Pixel groß sein. Kleinere (möglicherweise auch größere) Bilder werden zentriert.

Eigener Boot/Update-Screen

Der Boot-Screen, oder der Update-Screen liegen als Rohdaten vor.

/user_data/data/welcome.rgb565
/usr/local/startup_V4.20/update.bin

Weitere Beispielbilder:

/user_data/prod/data/lcd_test_card1.bin
/user_data/prod/data/lcd_test_card2.bin

Diese werden direkt in den Framebuffer geschrieben. Daher müssen sich diese genau ein bestimmtes Format halten:

  • Größe 240 x 220 (Das Display ist 176 x 220, der Rest ist also nicht zu sehen)
  • 16bit pro Pixel RGB565

Um solch ein Bild zu erstellen sind folgende Schritte notwendig:

  1. Ein Bild in Gimp mit 176x220 erstellen
  2. das Bild vertikal spiegeln
  3. Bild->Leinwandgröße auf 240x220 erweitern (Bilddaten ganz nach links)
  4. Datei->Kopie speichern...
  5. Als Windowsbitmap -> erweiterete Optionen -> 16bit R5G6B5
  6. BMP-Header entfernen (dies kann auch auf dem Telefon gemacht werden)
        tail -c 105600 input.bmp > output.raw


Von der Kommandozeile kann auch manuell das Bild in den Framebuffer geschrieben werden.

cat /user_data/prod/data/lcd_test_card1.bin > /dev/fb0

Wichtige Verzeichnisse

Adressdaten

  1. cat /user_data/home/Applications/addressbook/addressbook.xml
 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE Addressbook ><AddressBook>
 <Groups>
 </Groups>
 <Contacts>
   <Contact
                               Uid="-1269720893" 
                        Categories="-1269431263;-1266109093;-1266109094" 
                         FirstName="ich" 
                            FileAs="ich" 
                          JobTitle="cc" 
                        Department="dep"
                           Company="aa" 
                     BusinessPhone="55" 
                       BusinessFax="77" 
                    BusinessMobile="66" 
                         HomePhone="55"
                        HomeMobile="11" 
                            HomePc="12"
                          HomeData="13"
                           HomeFax="14"
                    BusinessStreet="street"
                      BusinessCity="city"
                     BusinessState="state"
                       BusinessZip="zip"
                   BusinessCountry="country"
                     BusinessPager="88"
                            Office="office"
                        Profession="prof"
                         Assistant="ass"
                           Manager="man"
                        HomeStreet="ptjml"
                          HomeCity="cit"
                         HomeState="stat"
                           HomeZip="zi"
                       HomeCountry="coun"
                            Spouse="spouse"
                            Gender="1"
                          Birthday="20100322"
                       Anniversary="20100429"
                          Children="child"
                             Notes="gakm"
              CompanyPronunciation="bb"
                  BUSINESS_CONTACT=""
                         photofile="ci-1269721575-0.jpg"
                  qdl-private-data=""
                              tone="/usr/local/etc/SystemRingTones/16-Tetris.desktop"
        />
   <Contact Uid="-1269554029" 
            FirstName="VoIP" 
            LastName="Phone1" 
            FileAs="VoIP Phone1" 
            HomeMobile="**621"  
            tone="/usr/local/etc/SystemRingTones/15-Techno2.desktop"  />
   <Contact Uid="-1269554032" 
            Categories="-1269431263"
            FirstName="VoIP" 
            LastName="Phone3" 
            FileAs="VoIP Phone3" 
            HomeMobile="**623"  
            BUSINESS_CONTACT="" 
            qdl-private-data="" 
            tone="/usr/local/etc/SystemRingTones/08-Celtrelax.desktop"  />
 </Contacts>
 </AddressBook>

UID ist wohl egal, solange sie nicht zweimal vorkommen.

Die Beschränkung auf 500 Adressbucheinträge kann man auch aufheben "maxEntries = 500" in der "Contacts.conf"

Die Kategorien stehen in /user_settings/Categories.xml:

 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE CategoryList>
 <Categories>
   <Category id="-1269431263" name="_Personal" />
   <Category id="-1269431262" name="_Business" />
 </Categories>

Wenn man einem Kontakt eine bestimmte Kategorie zuordnet, dann wird die ID dieser Kategorie im Attribut "Categories" des Kontakts eingetragen (s.o.). Wenn die Kategorie BUSINESS gewählt wird, steht im Attribut "BUSINESS_CONTACT" eine "1".

Ein Einrücken der Attribute mit TABs in den Dateien ist übrigens nicht erlaubt!

Die Software des Telefons wertet die XML Datei bei jedem Zugriff neu aus. Es ist also möglich, die Datei im laufendem Betrieb zu ändern (z.B. per Script).

Fotos & Videoschnappschüsse

Alle Bilder die mit der Kamera aufgenommen werden, sowie Schnappschüsse die während eines Videocalls aufgenommen wurden, befinden sich in folgendem Verzeichnis:

      /user_data/home/Documents

Die Bilder sind dabei nach folgendem Namensschema benannt:

      DD-MM-YYYY-hh:mm:ss.jpg

Tag (DD) und Monat (MM) können auch einstellig sein.

Klingeltöne

Die Klingeltöne liegen, wie oben beschrieben unter:

/usr/local/etc/SystemRingTones/

Es sind .wav Dateien mit (16Khz, 16Bit, Mono), welche sich, z.B. mit MhWaveEdit (Linux/GTK) recht komfortabel erzeugen lassen.

Zusätzlich zu den Audio Dateien müssen noch im selben Verzeichnis entsprechende *.desktop dateien angelegt werden, damit alles korrekt ins Menü integriert wird. Eine für den fiktiven 16. Klingelton erzeugte Datei "16-Tetris.desktop" könnte den folgenden Inhalt haben:

                [Desktop Entry]
                Categories =
                File =16-Tetris.wav
                Name[] =16-Tetris
                Type = audio/x-wav
                [Translation]
                File=QtopiaRingTones
                Context=16-Tetris

Nach dem Anlegen der Dateien sollte sie dann im Menü auftauchen und auswählbar sein.


Timeserver

http://www.mikrocontroller.net/topic/170483#1645101 Unter /usr/local/data steht in der monitor.cfg und monitor_ref_KPN.cfg die Adressen der Zeitserver "ntp.xs4all.nl" und "130.142.110.71". Diese könnte man z.B. auf "ptbtime1.ptb.de" und "ptbtime2.ptb.de" ändern.

(http://www.mikrocontroller.net/topic/170483#1649594) das telefon benutzt *nicht ntp* sondern das time-protokoll auf port 37 - chronos.zedat.fu-berlin.de kann man als server nehmen.

Zusätzliche Software

Dropbear (SSH-Server) installieren

  1. Mit telnet auf dem Gerät einloggen
  2. folgendes in die Kommandozeile kopieren
      cd /
      wget http://vp6500.bd8.nl/bin/dropbear.tgz
      tar -xzf dropbear.tgz
      rm dropbear.tgz
      cd /etc/rc.d/init.d
      mv dropbear S90dropbear
      ./S90dropbear start

Kommando 6 (mv ...) ist notwendig damit dropbear bei jedem Reboot automatisch gestartet wird.

Nano 2.2.3 installieren

  • Mit telnet auf dem Gerät einloggen
  • folgendes in die Kommandozeile kopieren
      cd /usr/bin
      wget http://www.mikrocontroller.net/attachment/74023/nano
  • Mit folgendem Befehl den Editor ausführbar machen:
      chmod +x /usr/bin/nano
  • Nun ist vi Geschichte ;-)

OpenVPN 2.0.9 installieren

  • Mit telnet auf dem Gerät einloggen
  • folgendes in die Kommandozeile kopieren
      cd /
      wget http://www.mikrocontroller.net/attachment/74380/openvpn.tar.gz
      tar -xzf openvpn.tar.gz
      depmod
      mknod /dev/net/tun c 10 200

OpenVPN 2.1.1 installieren

  • Mit telnet auf dem Gerät einloggen
  • folgendes in die Kommandozeile kopieren
      cd /
      wget http://www.mikrocontroller.net/attachment/74395/openvpn-2.1.1.tar.gz
      tar -xzf openvpn.tar.gz
      depmod
      mknod /dev/net/tun c 10 200

SIP Einstellungen

Einstellung für 1und1

  • SIP1:
    • Display Name: ...
    • Username: 49#VORWAHLOHNE0#NUMMER#
    • Telephone Number: 0#VORWAHLOHNE0#NUMMER#
  • Auth:
    • Auth Username: 49#VORWAHLOHNE0#NUMMER#
    • Password: *********
  • Server:
    • sip.1und1.de:5060
  • Proxy:
    • sip.1und1.de:5060
  • RTP:
    • 30000 und 30019
  • STUN:
    • stun.1und1.de
  • STUN Server Port:
    • 3478
  • SIP2:
    • UDP: 5060
    • TCP: 5060

Einstellung für Sipgate

  • SIP1
    • Display Name: Sipgate Username
    • User Name: your SIPgate-ID
    • Telephone Number: Sipgate-Telefonnummer
  • Auth
    • Authentification UserName: your SIPgate-ID
    • Password: Sipgate Passwort
  • Server
    • SIP register address:port: sipgate.de:5060
  • Proxy
    • SIP proxy1 address:port: sipgate.de:5060
  • SIP2
    • SIP Port Listen
    • for UDP: 5062
    • for TCP: 5062
    • for TCP TLS: 5053
  • STUN: [X] use rport

SIP Outbound muss leer sein.

Ein Videotelefonat von Sipgate zu Sipgate zwischen zwei VP6500 wurde erfolgreich getestet. Gegebenenfalls muss die eigene Videoübertragung noch durch Drücken der Taste Video gestartet werden.

Einstellung für Ekiga.net

  • SIP1
    • Display Name: Irgendwas
    • User Name: username
    • Telephone Number: leer
  • Auth
    • Authentication User Name: username
    • Password: password
  • Server
    • SIP register: ekiga.net:5060
    • Protocol: ( ) TCP (*) UDP
    • Expire Timer: 3600
    • Keep Alive: 0
  • Proxy
    • alle leer
  • STUN
    • ( ) use rport
    • STUN Server IP address: stun.ekiga.net
    • STUN Server port: 3478
  • SIP2
    • (*) Symmetric Mode
    • UDP: 5060
    • TCP: 5060
    • TCP TLS: 5061
  • OBproxy
    • alle leer

Nach der (kostenlosen) Registrierung bei ekiga.net und der Anmeldung des Telefons kann man unter der 500 einen Audio und Video(!) Test machen.
Weitere features: https://www.ekiga.net/index.php?page=services
Ekiga teilt keine Festnetz Rufnummern zu, daher ist ein Anruf von/zu Festnetz Telefonen nicht möglich.

Bei Ekiga.net angemeldete Geräte können aber problemlos untereinander telefonieren, sogar mit Video. Da man vom Mainscreen des VP5500/6500 aus direkt nur numerische Kontakte (herkömmliche Telefonnumern) wählen kann, Ekiga.net Telefonnummern aber aus [Benutzername]@ekiga.net bestehen, legt man über das Menü des VP5500/6500 einfach einen neuen Kontakt (Telefonbuch) an. Als Video-Rufnummer trägt man einfach [Benutzername]@ekiga.net ein, wobei [Benutzername] der Name des Ekiga-Accounts ist, den man erreichen will. Zwischen der Eingabe von Buchstaben, Zahlen und Sonderzeichen kann man dabei mit der [#]-Taste des VP5500/6500 umschalten.

Sollte bei einem Telefonat über Ekiga Video einmal nicht funktionieren, hilft eventuell die manuelle Aktivierung der Videofunktion mittels der Video-Taste auf der Tastatur des VP6500

Einstellung für Fritzbox 7170/7270 und andere mit SIP-Registrar

Die Anmeldung eines Telefons auf der Fritzbox starten (System/Ansicht/"Expertenansicht aktivieren", dann Telefonie/Telefoniegeräte/"Neues Gerät einrichten", "Telefon", "Bitte auswählen"/"LAN/WLAN (IP-Telefon)") und sich eine Nummer geben lassen,
dann in Registration auf dem VPx500 wechseln und die Einstellungen wie unten vornehmen.
Anschließend will das Telefon diese Einstellungen aktivieren, vorher noch auf der FB die Anmeldung starten.

Im Beispiel will die FB die Nummer 621 vergeben:
Reiter SIP1
Display Name: <leer lassen>
User Name: 621
Telephone Number: 621

Reiter Auth
Authentication UserName: 621
Password: [hier das gleiche, wie auf der FB eingeben]

Reiter Server
SIP register address:port
192.168.2.1:5060 (IP Bitte auf Euer Netz anpassen) oder alternativ: fritz.box:5060
Protocol: UDP
ExpireTime: 3600
Keep Alive: 300

Anmerkungen dazu:
Protokoll: UDP
Bei TCP hat das VP6500 nach Minuten oder Stunden immer wieder die Verbindung zur FB verloren.
Keep Alive: 300
Die Keep Alive Time habe ich eingestellt, weil ich die TCP Probleme umgehen
wollte. Ich denke nicht, dass es zu Problemen bzgl. Akku kommt. Da es so
aber perfekt funktioniert, habe ich es gelassen. Das UDP Protokoll kommt zudem mit weniger Netzwerk-Traffic aus.
Anmeldung:
Die Anmeldung wurde von der Fritz!Box nicht immer erfolgreich bestätigt. Einfach Weiter klicken und die restlichen Einstellungen vornehmen.
Spätestens nach einem Reboot des VPx500 funktioniert alles einwandfrei.

Falls eure Fritz!Box keine Möglichkeit bietet, ein IP-Telefon anzumelden, empfehle ich euch mal in das http://wiki.ip-phone-forum.de/skript:speedport2fritz einzulesen.
Bzw. mal im IP-Phone-Forum nach SIP-Registrar suchen.

Buildumgebung erstellen

Bislang ist die Erstellung von GUI-Applikationen (QTopia) noch nicht auf einfache Weise möglich. Das größte Problem ist, dass der Quellcode der Video-Telefon-Anwendung zum größten Teil zur Verfügung steht. Das Erstellen von Kommandozeilen-Anwendungen geht aber schon problemlos.

Windows

Die verwendete ARM-Entwicklungsumgebung basiert auf gcc. Mittels cygwin kann diese zwar auch als Win32-Anwendungen gebaut werden, dies ist aber in hohem Maß unüblich.

Am besten eine aktuelle Version von Debian oder Ubuntu in "vmware player" oder "virtual box" installieren. Wenn man die virtuelle Maschine nur zum Compilieren verwendet, reicht eine kompakte Kommandozeilen-Version (z.B. Ubuntu Server 9.10). Fertige virtuelle Machinen, im vmware-Marketing-Sprech gerne auch "virtual appliances" genannt, sind reichlich verfügbar (z.B. http://www.vmware.com/appliances/directory/70918).

Freetz-Linux

Für Fritzbox-Besitzer besonders geeignet ist das Freetz-linux, welches man im IP-Phone-Forum finden kann (-> http://www.ip-phone-forum.de/showpost.php?p=1400234&postcount=1). Dieses kann zum Erstellen von Freetz-Images einerseits und andererseits als Buildumgebung benutzt werden. So spart man sich eine zweite VM.

Die VM selbst braucht nur gestartet werden, den Rest macht man am Besten von seiner gewohnten Umgebung aus. Mittels Samba kann einfach per Windowsnetzwerk auf das Home-Verzeichnis zugriffen werden und per SSH kann einfach eine Shell (UTF als Codierung einstellen, dann stimmen auch die Sonderrzeichen) geöffnet werden. Es muss sichergestellt werden sein, dass die VM zugriff auf das lokale Netzwerk, sowie das Internet hat (am besten mit einem 'ping google.com' überprüfen). Bei mir ging es eigenartiger weise erst, als ich die virtuelle Netzwerkkarte in den VM-Settings auf NAT gestellt habe.

Benutzername und alle Kennwörter sind 'freetz'

Installation und Test der VP5500 Toolchain

Installation der Buildumgebung:

 sudo mkdir /opt/VP5500
 sudo mkdir /opt/VP5500/toolchain
 cd /opt/VP5500/toolchain
 sudo wget http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.3.2.tar.bz2
 sudo bunzip2 arm-linux-gcc-3.3.2.tar.bz2
 sudo tar -xf arm-linux-gcc-3.3.2.tar
 sudo rm arm-linux-gcc-3.3.2.tar
 sudo ln -s /opt/VP5500/toolchain/usr/local/arm /usr/local/arm

Nach einem sudo-Kommando muss eventuell das Passwort eingegeben werden, weswegen die Befehle einzeln eingegeben werden sollten (oder man öffnet am Anfang eine sudo shell, dann kann man das auch weglassen.

Test der Buildumgebung:

 cd ~
 wget http://www.mikrocontroller.net/attachment/73161/helloworld.tgz
 tar -xzf helloworld.tgz
 rm helloworld.tgz
 cd helloworld
 make

Dannach sollte im ~/helloworld verzeichnis ein neues executable liegen, was vom Hostrechner einfach via Netzwerkfreigabe (\\freetz-linux\helloworld) und via WinSCP auf das Telefon kopiert werden kann.

Freetz-Linux eigentlicher Anwendungszweck

wer das Ding auch zum Bauen von Freetz-Images zum Erweitern seiner Fritz-box benutzen will muss sich zuerst ein Freetz runterladen. Folgende Schritte machen dies:

cd ~
svn checkout  http://svn.freetz.org/trunk  freetz-trunk 

Dannach gibts im Home-Verzeichnis das aktuelle Freetz im Verzeichnis 'freetz-trunk'. Konfigurieren mit 'make menuconfig' und Image erstellen mit 'make'. Wenn alles gut geht kann man das image dann vom Hostrechner aus der Windowsfreigabe '\\freetz-linux\freetz-trunk\images' rausholen und auf die Box spielen.

Für detailiertere Infos bitte direkt bei Freetz nachschlagen: http://trac.freetz.org/

Linux

Die bisher bekannten, mit VP5500 und VP6500 ausgelieferten Software-Versionen, basieren auf einer etwas älteren "gcc 3.3.2-ARM-Toolchain". Eine passende Toolchain für ein x86-basiertes Entwicklungssystem ist unter http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.3.2.tar.bz2 zu finden.

Unter Debian-basierten Linux-Distros kann dieses Archiv z.B. nach /opt/VP5500/toolchain entpackt werden (einige der Makefiles im Forum setzen diesen Speicherort vorraus). Es ist jedoch zu beachten, dass diese Version der Toolchain auch über den Pfad /usr/local zugänglich sein sollte. Dazu kann mittels "ln -s /opt/VP5500/toolchain/usr/local/arm arm" in /usr/local ein Symlink auf den eigentlichen Speicherort gesetzt werden.

Hello World

Christian Klippel (ChrisK) hat unter http://www.mikrocontroller.net/attachment/73161/helloworld.tgz ein "Hello World" bereitgestellt, mit dem sich die Toolchain testen lässt und dessen "Makefile" und "Makefile.local" als Grundlage für eigene Versuche dienen kann.

Das Archiv wird in ein lokals Verzeichnis (z.b. ~/helloworld) entpackt und dort durch Eingabe von "make" compiliert.

Zum Testen muss das Binary natürlich auf das Zielsystem übertragen werden. Wenn auf dem Entwicklungssystem ein http-Server oder ein ssh-Server läuft, kann man das Binary einfach in ein darüber zugängliches Verzeichnis kopieren es anschließend in einer telnet-Sitzung vom Verzeichnis /tmp aus mittels wget oder scp laden. Zum Test muss die Datei mittels "chmod +x helloworld" ausführbar gemacht werden, bevor sie mit "./helloworld" ausgeführt werden kann.

Mittels eines ftpd (z.B. http://www.mikrocontroller.net/attachment/73780/troll-ftpd_1.28-cg2_arm.tgz) oder sshd (z.B. Dropbear von http://vp6500.bd8.nl/) auf dem Zielsystem, kann man das Kopieren auch vom Entwicklungssystem aus durchführen.

Anpassen kleinerer Konsolen-Tools auf Cross-Compilierung

Die Makefiles von kleineren Projekten sind häufig nicht so sauber aufgebaut wie das helloworld-Beispiel, so dass man sie leichter ersetzt, als ändert. Am Beispiel von micro_httpd (http://www.acme.com/software/micro_httpd/ , http://www.mikrocontroller.net/attachment/73175/micro_httpd.tar.gz) kann leicht nachvollzogen werden, wie man den modularen Ansatz vom "Hello World"-Beispiel übernehmen kann (Makefile -> Makefile + Makefile.local).

Hardware + Software Versionen

Listet mal eure Hardware- und Softwareversion aus dem Applications => System Info Menü auf, wenn sie hier noch nicht stehen!

VP5500

Hardware Version Date Software Version
ind5 0645 4.20
ind5 0647 4.20
ind5 0648 4.20
ind5 0649 4.20
ind5 0702 4.20

VP6500

Hardware Version Date Software Version
ind3-v2 0711 3.22
ind3-v2 0713 3.22
ind3-v2 0716 3.22

Stromaufnahme

VP5500

FIXME

VP6500

Konfiguration: VP6500 mit aktivierter serieller Konsole an Labornetzteil, Spannung 3.67V (Bei weniger bootet es anscheinend aufgrund von Stromspitzen nicht richtig und vermeldet auf der seriellen Konsole ein 'battery low' und schaltet sich danach selbst ab. Diese Spannung sollte noch so gerade 'safe' sein, geht man davon aus, daß da ein Step-Up im Innern am werkeln ist und noch ein geringer Abfall über die Schottky-Diode einzurechnen ist).

Messungen

  • Booten: bis zu 420mA
  • Einbuchen: ca. 400mA
  • mit abgeschaltetem Display, aber eingebucht und laufend (idle): ca. 80mA
  • mit angeschaltetem Display, eingebucht und idle: ca. 190mA
  • mit 100% Prozessor-Last (von serieller Konsole ausgeführt: "while true; do true; done"): ca. 60mA mehr als idle (Scheint aber auch größere Sprünge für andere CPU-Last zu geben)
  • im 'Deep Sleep' (wird ein paar Minuten nach Einschalten erreicht): <10mA (!), mit kurzen Wachphasen mit erheblichem Stromverbrauch (>100mA). Beachte: Die serielle Konsole ist in diesem Modus auch nicht mehr aktiv, das Telefon ist aber nicht abgestürzt (Tastendruck aktiviert die Konsole wieder).

Ladegerät

  • Phone nicht in der Ladeschale: < 0.2W
  • Phone wird geladen: ca 4W