PHILIPS VP5500 VoIP Telefon: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
(When do you want me to start? http://www.cfnmtoob.com/profile/acihuresota/ lola tgp top 100 I'm pretty sure that's Nadia Styles. She got fake tits a long time ago, so this video must be pretty old.)
 
(41 dazwischenliegende Versionen von 28 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= Verwandte Artikel =
= Verwandte Artikel =
* Konfiguration: http://www.mikrocontroller.net/topic/170483#new
* Konfiguration: http://www.mikrocontroller.net/topic/170483#new
Zeile 5: Zeile 6:
* (Hack) http://spritesmods.com/?art=vpx500
* (Hack) http://spritesmods.com/?art=vpx500
* http://vp6500.bd8.nl/
* http://vp6500.bd8.nl/
 
 
= Allgemeines =
= Allgemeines =
 
 
Bei den diesem Text zugrundeliegenden Geräten handelt es sich um videofähige VoIP-Phones des Herstellers Philips, die vom früheren holländischen Anbieter KPN vertrieben wurden und nach dessen Ausscheiden aus dem Markt nun günstig erhältlich sind.
Bei den diesem Text zugrundeliegenden Geräten handelt es sich um videofähige VoIP-Phones des Herstellers Philips, die vom früheren holländischen Anbieter KPN vertrieben wurden und nach dessen Ausscheiden aus dem Markt nun günstig erhältlich sind.
Ihr geringer Preis, die SoC-Architektur und das darauf laufende OS macht sie dabei für all jene interessant, die ihre eigenen Ideen und Projekte auf der Basis eines solchen Gerätes verwirklichen wollen, und gibt den oft fabrikneuen Exemplaren eine Art zweite Chance.
Ihr geringer Preis, die SoC-Architektur und das darauf laufende OS macht sie dabei für all jene interessant, die ihre eigenen Ideen und Projekte auf der Basis eines solchen Gerätes verwirklichen wollen, und gibt den oft fabrikneuen Exemplaren eine Art zweite Chance.
 
 
== Features ==
== Features ==
 
 
=== VP5500 ===
=== VP5500 ===
* Kamera-Auflösung 640x480 Pixel
* Kamera-Auflösung 640x480 Pixel
Zeile 23: Zeile 24:
* Software Qtopia Version 2.1.0
* Software Qtopia Version 2.1.0
* Maße (LxBxH): 134x49x24 mm.
* Maße (LxBxH): 134x49x24 mm.
 
 
[[Datei:Philips_VP5500.jpg]]
[[Datei:Philips_VP5500.jpg]]
 
 
=== VP6500 ===
=== VP6500 ===
 
 
* Kamera-Auflösung 640x480 Pixel
* Kamera-Auflösung 640x480 Pixel
* 30 Bilder pro Sekunde
* 30 Bilder pro Sekunde
Zeile 39: Zeile 40:
* Gewicht Mobilteil: 170 g (inkl. 2 NiMH-Akkus AA)
* Gewicht Mobilteil: 170 g (inkl. 2 NiMH-Akkus AA)
[[Bild:VP6500_kl.jpg]]
[[Bild:VP6500_kl.jpg]]
 


= Das VPx500 'rooten' =
= Das VPx500 'rooten' =
 
 
Um vollen Zugang zum System auf dem Gerät zu erhalten gibt es mehrere Möglichkeiten.
Um vollen Zugang zum System auf dem Gerät zu erhalten gibt es mehrere Möglichkeiten.
 
 
== per telnet ==
== per telnet ==
Sobald das Telefon im Netzwerk angemeldet ist (egal ob DHCP oder statisch) kann über irgendein Terminal vom Netzwerk aus via telnet und der Telefon-IP auf das Gerät zugegriffen werden.
Sobald das Telefon im Netzwerk angemeldet ist (egal ob DHCP oder statisch) kann über irgendein Terminal vom Netzwerk aus via telnet und der Telefon-IP auf das Gerät zugegriffen werden.
User: root / PW: toor
User: root / PW: toor
 
 
== per serieller Schnittstelle ==
== per serieller Schnittstelle ==
Dazu muß der [[#UART]] angeschlossen werden. Während des Bootvorgangs drückt man immer wieder ziellos irgendwelche Tasten bis man am Prompt des [http://www.lartmaker.nl/lartware/blob/ blob-Bootloaders] ist.
Dazu muß der [[#UART]] angeschlossen werden. Während des Bootvorgangs drückt man immer wieder ziellos irgendwelche Tasten bis man am Prompt des [http://www.lartmaker.nl/lartware/blob/ blob-Bootloaders] ist.
Dann kann man  
Dann kann man
boot root=/dev/mtdblock2 init=/bin/sh
boot root=/dev/mtdblock2 init=/bin/sh
eingeben, um an eine minimale Shell zu kommen.
eingeben, um an eine minimale Shell zu kommen.
 
 
In dieser setzt man dann mit  
In dieser setzt man dann mit
passwd
passwd
das Passwort für ''root''. Danach kann man sich als ''root'' mit dem gesetzten Passwort einloggen.
das Passwort für ''root''. Danach kann man sich als ''root'' mit dem gesetzten Passwort einloggen.
 
 
== per DNS-Hack ==
== per DNS-Hack ==
Um den Rootzugriff 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 eigenen Netzwerk eine Umleitung des DNS erforderlich (oder ein DHCP-Server, der die Adresse des DNS bekanntgibt. Stichworte 'Static DNS', ..).
Um den Rootzugriff 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 eigenen 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.
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:
Dann lässt sich per Terminal (Linux. Windows: ....) die Kommandozeile des Geräts aufrufen:
 
 
telnet 123.456.789.012
telnet 123.456.789.012
 
 
Passwort ist "toor".
Passwort ist "toor".
Das Ändern des root-Passwortes erfolgt mit dem Befehl passwd.
Das Ändern des root-Passwortes erfolgt mit dem Befehl passwd.
 
 
Unter Applications>Registration sind Netzwerk- und VoIP-Einstellungen zu finden.
Unter Applications>Registration sind Netzwerk- und VoIP-Einstellungen zu finden.
 
 
=== Anleitung für Fritz-Box-Benutzer ===
=== Anleitung für Fritz-Box-Benutzer ===
Die Fritzboxen bieten bisher leider keine Möglichkeit, den verwendeten DNS
Die Fritzboxen bieten bisher leider keine Möglichkeit, den verwendeten DNS
Zeile 79: Zeile 81:
* am Anfang der Exportdatei VOR "**** CFGFILE:ar7.cfg" eine Zeile 'NoChecks = yes' einfügen, damit die Fritzbox die nun nicht mehr passende Checksumme ignoriert.
* am Anfang der Exportdatei VOR "**** CFGFILE:ar7.cfg" eine Zeile 'NoChecks = yes' einfügen, damit die Fritzbox die nun nicht mehr passende Checksumme ignoriert.
* Einstellungen zurück in die Fritzbox übertragen.
* Einstellungen zurück in die Fritzbox übertragen.
 
 
Wenn die Telefone entsperrt sind, den DNS wieder entfernen (Es ist
Wenn die Telefone entsperrt sind, den DNS wieder entfernen (Es ist
vielleicht eine ganz gute Idee, wenn man da zwei unabhängige DNS-Server
vielleicht eine ganz gute Idee, wenn man da zwei unabhängige DNS-Server
einträgt, so umgeht man auch gleich providerseitige DNS-Sperren)
einträgt, so umgeht man auch gleich providerseitige DNS-Sperren)
 
 
==== Alternative ====
==== Alternative ====
Wer sich den nicht ganz ungefährlichen Weg mit den anpassungen an der Fritzbox erspahren will, wechselt seine Fritzbox in den Expertenmodus. Danach kann man unter System - Netzwerk bei dem Punkt "IP adresse der Fritzbox ändern" bei vielen modellen den internen DHCP abschalten. Dann unter windows z.B. tftpd32 (http://tftpd32.jounin.net/) starten, in dessen DHCP-Server die Fritzbox als Gateway und den entsprechenden "modding-dns" eintragen und das Telefon neustarten.
Wer sich den nicht ganz ungefährlichen Weg mit den anpassungen an der Fritzbox erspahren will, wechselt seine Fritzbox in den Expertenmodus. Danach kann man unter System - Netzwerk bei dem Punkt "IP adresse der Fritzbox ändern" bei vielen modellen den internen DHCP abschalten. Dann unter windows z.B. tftpd32 (http://tftpd32.jounin.net/) starten, in dessen DHCP-Server die Fritzbox als Gateway und den entsprechenden "modding-dns" eintragen und das Telefon neustarten.
 
 
War das Telefon schonmal angemeldet, versucht es die selbe IP vom neuen DHCP zu erzwingen, was tftpd32 nicht wirklich mag. Daher im tftpd32 die lease-ip bei 2 beginnen lassen und eine range von 250 eintragen, damit die vom Telefon verlangte IP auch im Adresspool des dhcp servers vorhanden ist.
War das Telefon schonmal angemeldet, versucht es die selbe IP vom neuen DHCP zu erzwingen, was tftpd32 nicht wirklich mag. Daher im tftpd32 die lease-ip bei 2 beginnen lassen und eine range von 250 eintragen, damit die vom Telefon verlangte IP auch im Adresspool des dhcp servers vorhanden ist.
 
 
=== Anleitung fli4l ===
=== Anleitung fli4l ===
Mit dem [http://www.fli4l.de fli4l] ist das ganze ganz einfach.
Mit dem [http://www.fli4l.de fli4l] ist das ganze ganz einfach.
 
 
In der Datei config/dns_dhcp.txt den DNS  Redirect für die zwei DNS-Name Konfigurieren.
In der Datei config/dns_dhcp.txt den DNS  Redirect für die zwei DNS-Name Konfigurieren.
 
 
<file>
<file>
    DNS_REDIRECT_N='2'               # number of redirected domains
    DNS_REDIRECT_N='2'                # number of redirected domains
    DNS_REDIRECT_1='ntp.xs4all.nl'   # 1st redirected domain
    DNS_REDIRECT_1='ntp.xs4all.nl'    # 1st redirected domain
    DNS_REDIRECT_1_IP='188.40.123.50' # IP of redirected domain
    DNS_REDIRECT_1_IP='188.40.123.50' # IP of redirected domain
 
 
    DNS_REDIRECT_2='vpcm-001.cust.kpn.net'  
    DNS_REDIRECT_2='vpcm-001.cust.kpn.net'
    DNS_REDIRECT_2_IP='188.40.123.50'  
    DNS_REDIRECT_2_IP='188.40.123.50'
</file>
</file>
 
 
 
 
= Hardware =
= Hardware =
 
 
== verwendete Komponenten ==
== verwendete Komponenten ==
 
 
* MCU: [http://www.mikrocontroller.net/attachment/72258/datasheet.pdf Freescale MC9328MX21] (ARM9) @ 266MHz ([http://en.wikipedia.org/wiki/I.MX21 Wikipedia_englisch])  
* MCU: [http://www.mikrocontroller.net/attachment/72258/datasheet.pdf Freescale MC9328MX21] (ARM9) @ 266MHz ([http://en.wikipedia.org/wiki/I.MX21 Wikipedia_englisch])
** gehört zur ARM9E-Familie: ARMv5TEJ -"IntructionSet" (ARM926EJ-S)
** gehört zur ARM9E-Familie: ARMv5TEJ -"IntructionSet" (ARM926EJ-S)
** [http://www.freescale.com/files/32bit/doc/ref_manual/MC9328MX21RM.pdf MC9328MX21 Applications Processor Reference Manual]
** [http://www.freescale.com/files/32bit/doc/ref_manual/MC9328MX21RM.pdf MC9328MX21 Applications Processor Reference Manual]
Zeile 119: Zeile 121:
* Kamera: dc-4626.a5 by chicony
* Kamera: dc-4626.a5 by chicony
* Display: Samsung LTS220QC (HD66772 Controller)
* Display: Samsung LTS220QC (HD66772 Controller)
 
 
== Messungen ==
== Messungen ==
 
 
=== Stromaufnahme ===
=== Stromaufnahme ===
 
 
==== VP5500 ====
==== VP5500 ====
FIXME  
FIXME
 
 
==== VP6500 ====
==== 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).  
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).
 
 
===== Telefon =====
===== Telefon =====
* Booten: bis zu 420mA
* Booten: bis zu 420mA
Zeile 140: Zeile 142:
* Telefonieren ca 500mA
* Telefonieren ca 500mA
* Telefonieren mit Webcam ca 550mA
* Telefonieren mit Webcam ca 550mA
 
 
===== Ladegerät =====
===== Ladegerät =====
* Phone nicht in der Ladeschale: < 0.2W
* Phone nicht in der Ladeschale: < 0.2W
* Phone wird geladen: ca 4W
* Phone wird geladen: ca 4W
 


== System-Takte ==
== System-Takte ==
# cat /proc/systclk
# cat /proc/systclk
System clocks state:
System clocks state:
    Ref clock :     32768Hz  (int, premult by 512)
    Ref clock :      32768Hz  (int, premult by 512)
    MPLL clock: 263999905Hz  (computed: 264000000Hz)
    MPLL clock:  263999905Hz  (computed: 264000000Hz)
    SPLL clock: 163840000Hz  (computed: 163840000Hz)
    SPLL clock:  163840000Hz  (computed: 163840000Hz)
    CPU clock : 263999905Hz  (PERSC  = 0)
    CPU clock :  263999905Hz  (PERSC  = 0)
    Bus clock : 132000000Hz  (BCLKDIV = 1, computed: 131999952Hz)
    Bus clock :  132000000Hz  (BCLKDIV = 1, computed: 131999952Hz)
    CSI clock : unknown      (cannot read register CSICR1)
    CSI clock :  unknown      (cannot read register CSICR1)
    USB clock :   20480000Hz  (USB_DIV = 7)
    USB clock :  20480000Hz  (USB_DIV = 7)
    Wait State: CS0U[WSC] = 10, CS0U[WSC] = 48
    Wait State:  CS0U[WSC] = 10, CS0U[WSC] = 48
    loops_per_jiffy = 665058
    loops_per_jiffy = 665058
 
 
== Innenleben ==
== Innenleben ==
 
 
=== Zerlegen des VP5500 ===
=== Zerlegen des VP5500 ===
<gallery>
<gallery>
Zeile 169: Zeile 172:
Datei:06_Elektronik_entfernt.JPG|6. entfernte Elektronik
Datei:06_Elektronik_entfernt.JPG|6. entfernte Elektronik
</gallery>
</gallery>
 
 
# das Akkufach muss geöffnet und die Schrauben entfernt werden
# das Akkufach muss geöffnet und die Schrauben entfernt werden
# hinter der rückseitigen schwarzen Blende befinden sich zwei Schrauben, die entfernt werden müssen
# hinter der rückseitigen schwarzen Blende befinden sich zwei Schrauben, die entfernt werden müssen
Zeile 181: Zeile 184:
# Die Platine zu entfernen ist nicht ganz so schwierig.
# Die Platine zu entfernen ist nicht ganz so schwierig.
#* Zuerst die Seite auf der keine Knöpfe sind:
#* Zuerst die Seite auf der keine Knöpfe sind:
#* vorsichtig diese Seite leicht anheben. Am unteren Ende ist auf die Kontakte zu achten  
#* vorsichtig diese Seite leicht anheben. Am unteren Ende ist auf die Kontakte zu achten
#* dann versuchen die Platine seitlich nach oben aus dem Gehäuse zu ziehen
#* dann versuchen die Platine seitlich nach oben aus dem Gehäuse zu ziehen
#* dabei auf das Lautsprecherkabel und den Kamerakonnektor achten
#* dabei auf das Lautsprecherkabel und den Kamerakonnektor achten
# Zusammenbau genauso, nur umgedreht ;)
# Zusammenbau genauso, nur umgedreht ;)
#* nicht die Lautsprecher- und Kamera-Stecker vergessen
#* nicht die Lautsprecher- und Kamera-Stecker vergessen
 
 
=== Bilder vom VP5500 Innenleben ===
=== Bilder vom VP5500 Innenleben ===
<gallery widths="240" >
<gallery widths="240" >
 
 
Datei:Oberseite.jpg | Ansicht der Oberseite
Datei:Oberseite.jpg | Ansicht der Oberseite
Datei:Oberseite_beschriftet.jpg | Oberseite mit Beschriftung der Bauteile
Datei:Oberseite_beschriftet.jpg | Oberseite mit Beschriftung der Bauteile
Datei:Drumherum.jpg | Übersicht über die Komponenten
Datei:Drumherum.jpg | Übersicht über die Komponenten
</gallery>
</gallery>
 
 
<gallery widths="240" >
<gallery widths="240" >
Datei:Kontakte_Oberseite.jpg | UART-Schnittstelle Oberseite
Datei:Kontakte_Oberseite.jpg | UART-Schnittstelle Oberseite
Datei:Kontakte_Unterseite.jpg | JTAG-Schnittstelle Unterseite
Datei:Kontakte_Unterseite.jpg | JTAG-Schnittstelle Unterseite
</gallery>
</gallery>
 
 
=== Testpins am VP5500 ===
=== Testpins am VP5500 ===
Original Liste von [http://www.mikrocontroller.net/topic/170483#1646514 Tino] [[Media:Philips vp5500 Liste Testpins.pdf|herrunterladen]].
Original Liste von [http://www.mikrocontroller.net/topic/170483#1646514 Tino] [[Media:Philips vp5500 Liste Testpins.pdf|herrunterladen]].
 
 
[[Bild:Philips vp5500 testpins 1.jpg|thumb| Testpins auf der Rückseite]]
[[Bild:Philips vp5500 testpins 1.jpg|thumb| Testpins auf der Rückseite]]
[[Bild:Philips vp5500 testpins 2.jpg|thumb| Frontseite: Die ICs wurden zum Messen ausgelötet.]]
[[Bild:Philips vp5500 testpins 2.jpg|thumb| Frontseite: Die ICs wurden zum Messen ausgelötet.]]
 
 
{| class="wikitable"
{| class="wikitable"
! Testpin Nr. !!   verbunden zu !! Funktion
! Testpin Nr.  !!    verbunden zu !! Funktion
|-
|-
|   1      ||                 LED || unbekannt
|  1      ||                  LED || unbekannt
|-
|-
|   2    ||           Kamera Pin 8 an CN1 || unbekannt
|    2    ||            Kamera Pin 8 an CN1 || unbekannt
|-
|-
|   3    ||                 Pin 4 an IC1 || unbekannt
|    3    ||                  Pin 4 an IC1 || unbekannt
|-
|-
|   4    ||               z.B. IC5 Pin V 18 || VDDA
|    4    ||                z.B. IC5 Pin V 18 || VDDA
|-
|-
|   5    ||                       GND || GND
|    5    ||                      GND || GND
|-
|-
|   6    ||                       NC || NC
|    6    ||                      NC || NC
|-
|-
|   7    ||               Pin E 16 an IC5 || SAP_CLK
|    7    ||                Pin E 16 an IC5 || SAP_CLK
|-
|-
|   8    ||                 Pin 1 an CN 3 || Lautsprecher
|    8    ||                Pin 1 an CN 3 || Lautsprecher
|-
|-
|   9    ||                 Pin 2 an CN 3 || Lautsprecher
|    9    ||                Pin 2 an CN 3 || Lautsprecher
|-
|-
|   10    ||                 Pin an CN 4 || ?
|    10    ||                  Pin an CN 4 || ?
|-
|-
|   11    ||                 Pin an CN 4 || ?
|    11    ||                Pin an CN 4 || ?
|-
|-
|   12    ||                 Pin an CN 4 || ?
|    12    ||                  Pin an CN 4 || ?
|-
|-
|   13    ||               Pin L 16 an IC5 || UART2_TXD
|    13    ||                Pin L 16 an IC5 || UART2_TXD
|-
|-
|   14    ||               Pin C 12 an IC5 || USBH1_RXDM
|    14    ||              Pin C 12 an IC5 || USBH1_RXDM
|-
|-
|   15  ||                 Pin H 12 an IC5 || USBH1_TXDP
|    15  ||                Pin H 12 an IC5 || USBH1_TXDP
|-
|-
|   16    ||               Pin B 19 an IC5 || CSPI2_SS2
|    16    ||              Pin B 19 an IC5 || CSPI2_SS2
|-
|-
|   17  ||                 Pin B16 an IC5 || SSI2_FS
|    17  ||                Pin B16 an IC5 || SSI2_FS
|-
|-
|   18    ||               Pin F 18 an IC5 || KP_ROW0
|    18    ||              Pin F 18 an IC5 || KP_ROW0
|-
|-
|   19    ||               Pin K 18 an IC5 || KP_COL4
|    19    ||                Pin K 18 an IC5 || KP_COL4
|-
|-
|   20    ||               Pin L 19 an IC5 || UART3_TXD
|    20    ||                Pin L 19 an IC5 || UART3_TXD
|-
|-
|   21    ||               Pin T 14 an IC5 || RESET_IN
|    21    ||              Pin T 14 an IC5 || RESET_IN
|-
|-
|   22    ||   geht an + des Kondensators neben IC6 || unbekannt
|    22    ||    geht an + des Kondensators neben IC6 || unbekannt
|-
|-
|   23  ||               Pin D 13 an IC 9 || CLKOUT
|    23  ||                Pin D 13 an IC 9 || CLKOUT
|-
|-
|   24      ||             Pin E 13 an IC 9 || CLKIN_P
|    24      ||            Pin E 13 an IC 9 || CLKIN_P
|-
|-
|   25    ||               Pin A 9 an IC 9 || DAC_D
|    25    ||                Pin A 9 an IC 9 || DAC_D
|-
|-
|   26    ||               Pin A 8 an IC 9 || DAC_A
|    26    ||                Pin A 8 an IC 9 || DAC_A
|-
|-
|   27    ||               Pin A 7 an IC 9 || DAC_B
|    27    ||                Pin A 7 an IC 9 || DAC_B
|-
|-
|   28    ||               Pin A 6 an IC 9 || DAC_C
|    28    ||              Pin A 6 an IC 9 || DAC_C
|-
|-
|   29      ||             Pin L 13 an IC 5 || UART1_TXD
|    29      ||            Pin L 13 an IC 5 || UART1_TXD
|-
|-
|   30    ||             Pin T 16 an IC 5 || BOOT1
|    30    ||              Pin T 16 an IC 5 || BOOT1
|-
|-
|   31  ||                 Pin K 10 an IC 5 || UART1_RXD
|    31  ||                Pin K 10 an IC 5 || UART1_RXD
|-
|-
|   32    ||               Pin U 17 an IC 5 || BOOT2
|    32    ||              Pin U 17 an IC 5 || BOOT2
|-
|-
|   33    ||                 Pin 9 an IC 23 || unbekannt
|    33    ||                Pin 9 an IC 23 || unbekannt
|-
|-
|   34    ||               Pin D 19 an IC5 || CSPI2_SCLK
|    34    ||                Pin D 19 an IC5 || CSPI2_SCLK
|-
|-
|   35    ||             Pin C 14 an IC5 || TIN
|    35    ||              Pin C 14 an IC5 || TIN
|-
|-
|   36    ||               Pin C 19 an IC5 || CSPI2_SS1
|    36    ||                Pin C 19 an IC5 || CSPI2_SS1
|-
|-
|   37  ||                 Pin D 18 an IC5 || CSPI2_SS0
|    37  ||                Pin D 18 an IC5 || CSPI2_SS0
|-
|-
|   38    ||               Pin E 19 an IC5 || CSPI2_MOSI
|    38    ||              Pin E 19 an IC5 || CSPI2_MOSI
|-
|-
|   39    ||               Pin H 19 an IC5 || PWMO
|    39    ||              Pin H 19 an IC5 || PWMO
|-
|-
|   40  ||           Pin J 9 an IC 7 und IC 8 || VDD
|    40  ||            Pin J 9 an IC 7 und IC 8 || VDD
|-
|-
|   41  ||                 Pin J 19 an IC 5 || KP_COL2
|    41  ||                Pin J 19 an IC 5 || KP_COL2
|-
|-
|   42  ||               Pin K 16 an IC 5 || KP_COL3
|    42  ||                Pin K 16 an IC 5 || KP_COL3
|-
|-
|   43  ||                 Pin J 11 an IC 5 || KP_ROW2
|    43  ||                Pin J 11 an IC 5 || KP_ROW2
|-
|-
|44      ||     Pin J 17 an IC 5 || KP_COL1
|44      ||    Pin J 17 an IC 5 || KP_COL1
|-
|-
|45  ||         Pin G 19 an IC 5 || KP_ROW4
|45  ||        Pin G 19 an IC 5 || KP_ROW4
|-
|-
|46  ||         Pin G 17 an IC 5 || KP_ROW3
|46  ||        Pin G 17 an IC 5 || KP_ROW3
|-
|-
|47  ||   Pin D 5 an IC 10 und IC 11 || ACC
|47  ||    Pin D 5 an IC 10 und IC 11 || ACC
|-
|-
|48 ||         Pin G 16 an IC 5 || KP_ROW1
|48 ||          Pin G 16 an IC 5 || KP_ROW1
|-
|-
|49  ||       Pin J 18 an IC 5 || KP_COL0
|49  ||        Pin J 18 an IC 5 || KP_COL0
|-
|-
|50  ||         Pin V 18 an IC 5 || VDDA
|50  ||        Pin V 18 an IC 5 || VDDA
|-
|-
|51 ||     Pin 2 an CN KB-Stecker || ?
|51 ||      Pin 2 an CN KB-Stecker || ?
|-
|-
|52 ||           Pin 2 an IC 15 || ?
|52 ||          Pin 2 an IC 15 ||  ?
|-
|-
|53  ||     Pin 4 am LCD Stecker || ?
|53  ||      Pin 4 am LCD Stecker || ?
|-
|-
|54  ||         Pin E 17 an IC 5 || CSPI2_MISO
|54  ||        Pin E 17 an IC 5 || CSPI2_MISO
|-
|-
|55 || Pin 1,2,3,10,13 am LCD Stecker || ?
|55 ||  Pin 1,2,3,10,13 am LCD Stecker || ?
|-
|-
|56  ||         Pin 3 an IC 16 || ?
|56  ||          Pin 3 an IC 16 ||  ?
|-
|-
|57  ||         Pin U 10 an IC 5 || PC_PWRON
|57  ||        Pin U 10 an IC 5 || PC_PWRON
|-
|-
|58  ||           Pin 1 IC 18 || ?
|58  ||            Pin 1 IC 18 || ?
|-
|-
|59  ||       an Diode über IC 16 || ?
|59  ||      an Diode über IC 16 || ?
|-
|-
|60  ||         Pin 3 an IC 25 || ?
|60  ||          Pin 3 an IC 25 || ?
|-
|-
|61 ||         Ladekontakt positiv || Ladegerät +
|61 ||        Ladekontakt positiv || Ladegerät +
|-
|-
|62  ||               GND || GND
|62  ||              GND || GND
|-
|-
|63  ||       Akku Mittelkontakt || Akkustand? Temperatur?
|63  ||        Akku Mittelkontakt || Akkustand? Temperatur?
|-
|-
|64 ||       Transistor unter IC 16 || ?
|64 ||      Transistor unter IC 16 || ?
|-
|-
|65  ||         Pin 2 an IC 22 || ?
|65  ||          Pin 2 an IC 22 || ?
|-
|-
|66  ||     Pin 1,12,30 an IC 24 || VSS
|66  ||      Pin 1,12,30 an IC 24 || VSS
|-
|-
|67  ||   Kondensator + unter IC 20 || ?
|67  ||    Kondensator + unter IC 20 || ?
|-
|-
|68  ||         Pin 5 an IC 21 || ?
|68  ||        Pin 5 an IC 21 || ?
|-
|-
|69  ||           Pin 2 an IC 4 || ?
|69  ||          Pin 2 an IC 4 || ?
|-
|-
|70    ||       Pin 25 an IC24 || MCLK
|70    ||        Pin 25 an IC24 || MCLK
|-
|-
|71  ||       Prozessor Pin W 14 || QVDD
|71  ||      Prozessor Pin W 14 || QVDD
|}
|}
 
 
 
 
=== Testpins am VP6500 ===
=== Testpins am VP6500 ===
Original Listen von [http://www.mikrocontroller.net/topic/170483#1658720 Tino] herunterladen. [[Media:V6500_Back.xls|Rückseite]], [[Media:V6500_Front.xls|Vorderseite]].
Original Listen von [http://www.mikrocontroller.net/topic/170483#1658720 Tino] herunterladen. [[Media:V6500_Back.xls|Rückseite]], [[Media:V6500_Front.xls|Vorderseite]].
 
 
[[Bild:V6500_Back.jpg|thumb| Testpins auf der Rückseite]]
[[Bild:V6500_Back.jpg|thumb| Testpins auf der Rückseite]]
 
 
{| class="wikitable"
{| class="wikitable"
! Testpin Nr. !!   verbunden zu !! Funktion
! Testpin Nr.  !!    verbunden zu !! Funktion
|-
|-
| 1 || Pin 21 an BGW211EG || POR_N
| 1 || Pin 21 an BGW211EG || POR_N
|-
|-
| 2 || Pin A 14 an i.MX21 || TOUT
| 2 || Pin A 14 an i.MX21 || TOUT
|-
|-
| 3 || Pin 46 an BGW211EG || JTAG_TDI
| 3 || Pin 46 an BGW211EG || JTAG_TDI
|-
|-
| 4 || Pin 44 an BGW211EG || JTAG_TCLK
| 4 || Pin 44 an BGW211EG || JTAG_TCLK
|-
|-
| 5 || Pin 42 an BGW211EG || JTAG_TDO
| 5 || Pin 42 an BGW211EG || JTAG_TDO
|-
|-
| 6 || Pin 47 an BGW211EG || JTAG_TRST_N
| 6 || Pin 47 an BGW211EG || JTAG_TRST_N
|-
|-
| 7 || PIN 45 an BGW211EG || JTAG_TMS
| 7 || PIN 45 an BGW211EG || JTAG_TMS
|-
|-
| 8 || Pin 43 an BGW211EG || JTAG_RTCLK
| 8 || Pin 43 an BGW211EG || JTAG_RTCLK
|-
|-
| 9 || Pin C 14 an i.MX21 || TIN
| 9 || Pin C 14 an i.MX21 || TIN
|-
|-
| 10 || VDD || VDD
| 10 || VDD || VDD
|-
|-
| 11 || Pin K 10 an i.MX21 || UART1_RXD
| 11 || Pin K 10 an i.MX21 || UART1_RXD
|-
|-
| 12 || Pin L 13 an i.MX21 || UART1_TXD
| 12 || Pin L 13 an i.MX21 || UART1_TXD
|-
|-
| 13 || GND || GND
| 13 || GND || GND
|-
|-
| 14 || Pin U 17 an i.MX21 || BOOT2
| 14 || Pin U 17 an i.MX21 || BOOT2
|-
|-
| 15 || Pin V 16 an i.MX21 || BOOT0
| 15 || Pin V 16 an i.MX21 || BOOT0
|}
|}
 
 
[[Bild:V6500_Front.jpg|thumb| Frontseite: Die ICs wurden zum Messen ausgelötet.]]
[[Bild:V6500_Front.jpg|thumb| Frontseite: Die ICs wurden zum Messen ausgelötet.]]
 
 
{| class="wikitable"
{| class="wikitable"
! Testpin Nr. !!   verbunden zu !! Funktion
! Testpin Nr.  !!    verbunden zu !! Funktion
|-
|-
| 1 || Pin 29 von BGW211EG & F 16 an i.MX21 || RESET_N / CSPI1_SS1
| 1 || Pin 29 von BGW211EG & F 16 an i.MX21 || RESET_N / CSPI1_SS1
|-
|-
| 2 || Pin 28 an BGW211EG & J 12 an i.MX21 || SPI_DAT_MOSI / CSPI1_MOSI
| 2 || Pin 28 an BGW211EG & J 12 an i.MX21 || SPI_DAT_MOSI / CSPI1_MOSI
|-
|-
| 3 || Pin 27 an BGW211EG & F 19 an i.MX21 || SPI_SS_N / CSPI1_SS0
| 3 || Pin 27 an BGW211EG & F 19 an i.MX21 || SPI_SS_N / CSPI1_SS0
|-
|-
| 4 || Pin 26 an BGW21EG & F 17 an i.MX21 || SPI_DAT_MISO / CSPI1_MISO
| 4 || Pin 26 an BGW21EG & F 17 an i.MX21 || SPI_DAT_MISO / CSPI1_MISO
|-
|-
| 5 || Pin 25 an BGW211EG & H 10 an i.MX21 || SPI_CLK / CSPI1_SCLK
| 5 || Pin 25 an BGW211EG & H 10 an i.MX21 || SPI_CLK / CSPI1_SCLK
|-
|-
| 6 || Pin 24 an BGW211EG & H 11 an i.MX21 || SPI_EXT_INT / CSPI1_RDY
| 6 || Pin 24 an BGW211EG & H 11 an i.MX21 || SPI_EXT_INT / CSPI1_RDY
|-
|-
| 7 || Pin 41 an BGW211EG || UART_TX
| 7 || Pin 41 an BGW211EG || UART_TX
|-
|-
| 8 || Pin 40 an BGW211EG || UART_RX
| 8 || Pin 40 an BGW211EG || UART_RX
|-
|-
| 9 || Transistor unter Testpunkt || ?
| 9 || Transistor unter Testpunkt || ?
|-
|-
| 10 || GND || GND
| 10 || GND || GND
|-
|-
| 11 || LED || ?
| 11 || LED || ?
|-
|-
| 12 || Pin 8 am Kamerastecker || ?
| 12 || Pin 8 am Kamerastecker || ?
|-
|-
| 13 || Pin 18 am Kamerastecker || ?
| 13 || Pin 18 am Kamerastecker || ?
|-
|-
| 14 || Pin E 13 & H12 an FS455 || CLKIN / PREF
| 14 || Pin E 13 & H12 an FS455 || CLKIN / PREF
|-
|-
| 15 || Pin D 13 an FS455 || CLKOUT
| 15 || Pin D 13 an FS455 || CLKOUT
|-
|-
| 16 || Pin A 11 an FS455 || XTAL_OUT
| 16 || Pin A 11 an FS455 || XTAL_OUT
|-
|-
| 17 || VDD von FS455 || VDD
| 17 || VDD von FS455 || VDD
|-
|-
| 18 || Pin 15 & 16 am Displayconnector || ?
| 18 || Pin 15 & 16 am Displayconnector || ?
|-
|-
| 19 || geht an 2 Dioden links daneben || ?
| 19 || geht an 2 Dioden links daneben || ?
|-
|-
| 20 || Pin M 19 an i.MX21 || UART1_CTS
| 20 || Pin M 19 an i.MX21 || UART1_CTS
|-
|-
| 21 || Pin M 18 an i.MX21 || UART1_RTS & GND ??
| 21 || Pin M 18 an i.MX21 || UART1_RTS & GND ??
|-
|-
| 22 || VDDan i,MX21 || VDD
| 22 || VDDan i,MX21 || VDD
|-
|-
| 23 || Pin G 10 an i.MX21 || USB_BYP
| 23 || Pin G 10 an i.MX21 || USB_BYP
|-
|-
| 24 || Pin A 19 an i.MX21 || SSI3_FS
| 24 || Pin A 19 an i.MX21 || SSI3_FS
|-
|-
| 25 || Pin D 17 an i.MX21 || SSI2_CLK
| 25 || Pin D 17 an i.MX21 || SSI2_CLK
|-
|-
| 26 || VDD an i.MX21 || VDD
| 26 || VDD an i.MX21 || VDD
|-
|-
| 27 || Pin T 17 an i.MX21 || SD1_D3
| 27 || Pin T 17 an i.MX21 || SD1_D3
|-
|-
| 28 || Pin A 15 an i.MX21 || SAP_TXDAT
| 28 || Pin A 15 an i.MX21 || SAP_TXDAT
|-
|-
| 29 || GND || GND
| 29 || GND || GND
|-
|-
| 30 || Pin T 14 an i.MX21 || RESET_IN
| 30 || Pin T 14 an i.MX21 || RESET_IN
|-
|-
| 31 || Pin R 19 an i.MX21 || TRST
| 31 || Pin R 19 an i.MX21 || TRST
|-
|-
| 32 || Pin P 19 an i.MX21 || TMS
| 32 || Pin P 19 an i.MX21 || TMS
|-
|-
| 33 || Pin N 17 an i.MX21 || TCK
| 33 || Pin N 17 an i.MX21 || TCK
|-
|-
| 34 || Pin K 11 an i.MX21 || TDO
| 34 || Pin K 11 an i.MX21 || TDO
|-
|-
| 35 || Pin P 18 an i.MX21 || TDI
| 35 || Pin P 18 an i.MX21 || TDI
|-
|-
| 36 || Pin 13 an TLV320 || OUTP2
| 36 || Pin 13 an TLV320 || OUTP2
|-
|-
| 37 || Pin 14 an TLV320 || OUTMV
| 37 || Pin 14 an TLV320 || OUTMV
|-
|-
| 38 || Pin 15 an BGW211EG || VDD
| 38 || Pin 15 an BGW211EG || VDD
|-
|-
| 39 || Pin an Klinkenbuchse || ?
| 39 || Pin an Klinkenbuchse || ?
|-
|-
| 40 || Pin an Klinkenbuchse || ?
| 40 || Pin an Klinkenbuchse || ?
|-
|-
| 41 || ? || ?
| 41 || ? || ?
|-
|-
| 42 || LED Tastatur || ?
| 42 || LED Tastatur || ?
|-
|-
| 43 || LED Tastatur || ?
| 43 || LED Tastatur || ?
|-
|-
| 44 || Pin 1,8 an 20XN2512 & Key ON || PowerON
| 44 || Pin 1,8 an 20XN2512 & Key ON || PowerON
|-
|-
| 45 || Pin 7 an BDR72K || ?
| 45 || Pin 7 an BDR72K || ?
|-
|-
| 46 || Pin 2 an BDR72K || ?
| 46 || Pin 2 an BDR72K || ?
|-
|-
| 47 || Pin 6 an MRRBGB3 || ?
| 47 || Pin 6 an MRRBGB3 || ?
|-
|-
| 48 || LED Tastatur || ?
| 48 || LED Tastatur ||  ?
|-
|-
| 49 || Pin 10 an MRRBG3 || ?
| 49 || Pin 10 an MRRBG3 || ?
|-
|-
| 50 || LED Tastatur || ?
| 50 || LED Tastatur || ?
|-
|-
| 51 || geht an Widerstand auf Rückseite ? || ?
| 51 || geht an Widerstand auf Rückseite ? || ?
|-
|-
| 52 || Pin L 13 an i.MX21 || UART1_TXD
| 52 || Pin L 13 an i.MX21 || UART1_TXD
|-
|-
| 53 || geht an Diode und Kondensator auf der Rückseite || ?
| 53 || geht an Diode und Kondensator auf der Rückseite || ?
|-
|-
| 54 || Pin C 14 an i.MX21 || TIN
| 54 || Pin C 14 an i.MX21 || TIN
|-
|-
| 55 || geht an Widerstand auf der Rückseite || ?
| 55 || geht an Widerstand auf der Rückseite || ?
|-
|-
| 56 || Pin 7 an BDR72K || ?
| 56 || Pin 7 an BDR72K || ?
|-
|-
| 57 || Pin K 10 an i.MX21 || UART1_RDX
| 57 || Pin K 10 an i.MX21 || UART1_RDX
|-
|-
| 58 || Pin U 17 an i.MX21 || BOOT2
| 58 || Pin U 17 an i.MX21 || BOOT2
|-
|-
| 59 || Pin T 16 an i.MX21 || BOOT1
| 59 || Pin T 16 an i.MX21 || BOOT1
|-
|-
| 60 || geht an Widerstand auf der Rückseite || ?
| 60 || geht an Widerstand auf der Rückseite || ?
|-
|-
| 61 || Pin V 16 an i.MX21 || BOOT0
| 61 || Pin V 16 an i.MX21 || BOOT0
|-
|-
| 62 || LED Tastatur || ?
| 62 || LED Tastatur || ?
|-
|-
| 63 || LED Tastatur || ?
| 63 || LED Tastatur || ?
|-
|-
| 64 || Pin 25 an TLV320 || MLCK
| 64 || Pin 25 an TLV320 || MLCK
|-
|-
| 65 || Pin4 an 69W2440D || ?
| 65 || Pin4 an 69W2440D || ?
|-
|-
| 66 || VDD von TLV320 || VDD
| 66 || VDD von TLV320 || VDD
|-
|-
| 67 || geht an Widerstand auf der Rückseite || ?
| 67 || geht an Widerstand auf der Rückseite ||  ?
|-
|-
| 68 || geht an Widerstand auf der Rückseite || ?
| 68 || geht an Widerstand auf der Rückseite || ?
|-
|-
| 69 || Pin 65 an MRRBG3 || ?
| 69 || Pin 65 an MRRBG3 || ?
|-
|-
| 70 || GND || GND
| 70 || GND || GND
|-
|-
| 71 || LED Tastatur || ?
| 71 || LED Tastatur || ?
|-
|-
| 72 || LED Tastatur || ?
| 72 || LED Tastatur || ?
|-
|-
| 73 || Akku positiv || Plus Akku
| 73 || Akku positiv || Plus Akku
|-
|-
| 74 || Ladekontakt positiv || Ladekontakt positiv
| 74 || Ladekontakt positiv || Ladekontakt positiv
|-
|-
| 75 || Akku positiv || Plus Akku
| 75 || Akku positiv || Plus Akku
|}
|}
 
 
== UART ==
== UART ==
TIN muss auf low gezogen werden, um die Schnittstelle zu aktivieren.
TIN muss auf low gezogen werden, um die Schnittstelle zu aktivieren.
Jedoch startet dann das Telefon nicht vollständig (Fix siehe [[#Betrieb mit aktivierter serieller Schnittstelle]], zum rooten langt es jedoch, siehe [[#per serieller Schnittstelle]])
Jedoch startet dann das Telefon nicht vollständig (Fix siehe [[#Betrieb mit aktivierter serieller Schnittstelle]], zum rooten langt es jedoch, siehe [[#per serieller Schnittstelle]])
 
 
* Spannungs-Pegel: 3.3V
* Spannungs-Pegel: 3.3V
* Baudrate: 115200 bps
* Baudrate: 115200 bps
Zeile 558: Zeile 561:
=== VP5500 ===
=== VP5500 ===
[[Bild:VP5500_seriell_highlight.svg|100px|UART-Pins VP5500(Frontseite der Platine)]]
[[Bild:VP5500_seriell_highlight.svg|100px|UART-Pins VP5500(Frontseite der Platine)]]
 
 
Die serielle Schnittstelle ist unten vom Akkufach aus zugänglich.
Die serielle Schnittstelle ist unten vom Akkufach aus zugänglich.
Obiges Bild kennzeichnet die für die serielle Kommunikation benötigten Pins.
Obiges Bild kennzeichnet die für die serielle Kommunikation benötigten Pins.
 
 
=== VP6500 ===
=== VP6500 ===
[[Bild:VP5600-Serialport-Preliminary.jpg|100px|UART-Pins VP6500]]
[[Bild:VP5600-Serialport-Preliminary.jpg|100px|UART-Pins VP6500]]
 
 
Die serielle Schnittstelle ist unten vom Akkufach aus zugänglich.
Die serielle Schnittstelle ist unten vom Akkufach aus zugänglich.
Obiges Bild kennzeichnet die für die serielle Kommunikation benötigten Pins.<br>
Obiges Bild kennzeichnet die für die serielle Kommunikation benötigten Pins.<br>
VCC liefert anscheinend die ungeregelte Akkuspannung, Boot-Pins nicht verifiziert.
VCC liefert anscheinend die ungeregelte Akkuspannung, Boot-Pins nicht verifiziert.
 
 
== JTAG ==
== JTAG ==
[[Bild:jtag.jpg Belegung der JTAG-Pins (Rückseite der Platine)]]
[[Bild:jtag.jpg Belegung der JTAG-Pins (Rückseite der Platine)]]
 
 
== Hardware Modifikationen ==
== Hardware Modifikationen ==
 
 
Nachdem wir ja bereits wissen wie das [[#Zerlegen_des_Telefons]] geht, steht der Nachrüstung von Bauelementen und Schnittstellen generell nichts mehr im Wege.
Nachdem wir ja bereits wissen wie das [[#Zerlegen_des_Telefons]] geht, steht der Nachrüstung von Bauelementen und Schnittstellen generell nichts mehr im Wege.
 
 
=== Buchse für UART ins VP5500 einbauen ===
=== Buchse für UART ins VP5500 einbauen ===
<gallery>
<gallery>
Zeile 588: Zeile 591:
Datei:16_in_Aktion.JPG|9.verbundene serielle Schnittstelle
Datei:16_in_Aktion.JPG|9.verbundene serielle Schnittstelle
</gallery>
</gallery>
 
 
Zunächst muss das Telefon zerlegt werden ([[#Zerlegen des Telefons]])
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.  
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.
 
 
# Hierfür habe ich einreihige gedrehte IC-Sockel genutzt  
# Hierfür habe ich einreihige gedrehte IC-Sockel genutzt
# deren Beine abgezwickt, und etwas Lötzinn aufgetragen (mit der langen Reihe kann man die kurzen, schmalen Teile super handhaben)
# deren Beine abgezwickt, und etwas Lötzinn aufgetragen (mit der langen Reihe kann man die kurzen, schmalen Teile super handhaben)
# ebendso auf die Pads ein wenig eingezinnt
# ebendso auf die Pads ein wenig eingezinnt
Zeile 601: Zeile 604:
# fertig
# fertig
# und im Einsatz
# und im Einsatz
 
 
=== Anschluss für UART des VP6500 zugänglich machen ===
=== Anschluss für UART des VP6500 zugänglich machen ===
Vorteil beim VP6500: es muss dazu nicht zerlegt werden, da sich die Kupferpads unter den Akkus im Akkufach verstecken. Dies ermöglicht eine lötfreie Variante des seriellen Anschlusses. Die Pinbelegung ist unter [[#VP6500_2|UART]] beschrieben.
Vorteil beim VP6500: es muss dazu nicht zerlegt werden, da sich die Kupferpads unter den Akkus im Akkufach verstecken. Dies ermöglicht eine lötfreie Variante des seriellen Anschlusses. Die Pinbelegung ist unter [[#VP6500_2|UART]] beschrieben.
Zeile 621: Zeile 624:
*2./3. Ferner braucht man ein Stück Plastik mit den Maßen 4 mm mal 18 mm, welches als Träger für die Federkontakte dienen soll. Die Höhe ist nicht so entscheidend. Man kann z.B. den Clip eines Kugelschreibes passend zuschneiden und feilen.
*2./3. Ferner braucht man ein Stück Plastik mit den Maßen 4 mm mal 18 mm, welches als Träger für die Federkontakte dienen soll. Die Höhe ist nicht so entscheidend. Man kann z.B. den Clip eines Kugelschreibes passend zuschneiden und feilen.
*4. Plastikträger so weit zufeilen, dass er in die Aussparung passt (Tip: Bindfaden darum knoten um ihn wieder entfernen zu können)
*4. Plastikträger so weit zufeilen, dass er in die Aussparung passt (Tip: Bindfaden darum knoten um ihn wieder entfernen zu können)
*5. Abstände zwischen den Kontakten die kontaktiert werden müssen (TIN, GND, RX, TX : siehe [[#UART|UART]]) markieren und in die Unterseite des Trägers Führungskerben für die Federn sägen. Ebenso braucht man kleine Aussparungen um die Metallzungen von der Platine in das Batteriefach zu führen.  
*5. Abstände zwischen den Kontakten die kontaktiert werden müssen (TIN, GND, RX, TX : siehe [[#UART|UART]]) markieren und in die Unterseite des Trägers Führungskerben für die Federn sägen. Ebenso braucht man kleine Aussparungen um die Metallzungen von der Platine in das Batteriefach zu führen.
*6./7. Aus den Molex-Steckern bekommt man die Federn sehr einfach raus, indem man mit einem kleinen flachen Schraubenzieher vorsichtig in die Aussparungen sticht und hinten am Kabel zieht.
*6./7. Aus den Molex-Steckern bekommt man die Federn sehr einfach raus, indem man mit einem kleinen flachen Schraubenzieher vorsichtig in die Aussparungen sticht und hinten am Kabel zieht.
*8. Die einzelnen Metallzungen nun noch auf 90° aufbiegen.
*8. Die einzelnen Metallzungen nun noch auf 90° aufbiegen.
Zeile 629: Zeile 632:
*12. Mit etwas Schrumpfschlauch und Heißkleiber kann man dem Verrutschen der Metallzungen vorbeugen und die Kurzschlußwahrscheinlichkeit senken. Ferner dient der Heißkleber als Kraftüberträger, damit die Batterien die leicht federnden Metallzungen fest auf die Kontakte auf der Platine drücken können.
*12. Mit etwas Schrumpfschlauch und Heißkleiber kann man dem Verrutschen der Metallzungen vorbeugen und die Kurzschlußwahrscheinlichkeit senken. Ferner dient der Heißkleber als Kraftüberträger, damit die Batterien die leicht federnden Metallzungen fest auf die Kontakte auf der Platine drücken können.
*13. Batterien einsetzen. Ohne diese wird das ganze irgendwann doch wieder rausfallen und die Verbindung von Anfang an unzuverlässig sein.
*13. Batterien einsetzen. Ohne diese wird das ganze irgendwann doch wieder rausfallen und die Verbindung von Anfang an unzuverlässig sein.
 
 
Problembehandlung:
Problembehandlung:
* Kein Kontakt: (Man kann z.B. die Masse auf Durchgang prüfen.)
* Kein Kontakt: (Man kann z.B. die Masse auf Durchgang prüfen.)
Zeile 635: Zeile 638:
** Träger wird nach aussen gedrückt (Metallzungen federn ja): Mehr Heißkleber um mehr Druck durch die Batterien zu bekommen.
** Träger wird nach aussen gedrückt (Metallzungen federn ja): Mehr Heißkleber um mehr Druck durch die Batterien zu bekommen.
** Träger tief drin, aber trotzdem keine oder unzuverlässige Verbindung: Die Metallzungen auf der Unterseite haben verschiedene "Dicken", oder die Kerben sind unterschiedlich tief. Ein Tropfen Lötzinn auf die zu niedrigen Metallzungen erledigt dies. (Anmerkung: Der Autor musste überall ein wenig Lötzinn auftragen um die notwendige Dicke und sichere Verbindung zu erreichen.)
** Träger tief drin, aber trotzdem keine oder unzuverlässige Verbindung: Die Metallzungen auf der Unterseite haben verschiedene "Dicken", oder die Kerben sind unterschiedlich tief. Ein Tropfen Lötzinn auf die zu niedrigen Metallzungen erledigt dies. (Anmerkung: Der Autor musste überall ein wenig Lötzinn auftragen um die notwendige Dicke und sichere Verbindung zu erreichen.)
 
 
= Nutzung für Voice over IP (VoIP, SIP) =
= Nutzung für Voice over IP (VoIP, SIP) =
 
 
== weiterführende Links ==
== weiterführende Links ==
 
 
*http://de.wikipedia.org/wiki/IP-Telefonie
*http://de.wikipedia.org/wiki/IP-Telefonie
*http://de.wikipedia.org/wiki/Session_Initiation_Protocol
*http://de.wikipedia.org/wiki/Session_Initiation_Protocol
*http://de.wikipedia.org/wiki/H.323
*http://de.wikipedia.org/wiki/H.323
*http://de.wikipedia.org/wiki/Softphone
*http://de.wikipedia.org/wiki/Softphone
 
 
Benutzer ist 103
Benutzer ist 103
 
 
Mit [http://ekiga.org Ekiga] konnte so per 103@xxx.xxx.xxx.xxx bei ersten Tests eine Sprachverbindung zum Telefon aufgebaut werden.
Mit [http://ekiga.org Ekiga] konnte so per 103@xxx.xxx.xxx.xxx bei ersten Tests eine Sprachverbindung zum Telefon aufgebaut werden.
 
 
== SIP Einstellungen ==
== SIP Einstellungen ==
 
 
Die SIP Einstellungen können alternativ auch direkt in der Datei
Die SIP Einstellungen können alternativ auch direkt in der Datei
/user_data/data/hpr0userparam.cfg
/user_data/data/hpr0userparam.cfg
vorgenommen werden.
vorgenommen werden.
 
 
=== Einstellung für 1und1 ===
=== Einstellung für 1und1 ===
 
 
* SIP1:
* SIP1:
** Display Name: ...
** Display Name: ...
Zeile 677: Zeile 680:
** UDP: 5060
** UDP: 5060
** TCP: 5060
** TCP: 5060
 
 
=== Einstellung für Vodafone NGN (Arcor NGN) ===
=== Einstellung für Vodafone NGN (Arcor NGN) ===
 
 
* SIP1:
* SIP1:
** Display Name: ...
** Display Name: ...
Zeile 699: Zeile 702:
** TCP: 5060
** TCP: 5060
(getestet von Micha mit EasyBox 802; an EasyBox n-WLAN ausschalten)
(getestet von Micha mit EasyBox 802; an EasyBox n-WLAN ausschalten)
 
=== Einstellungen für Sipgate ===


=== Einstellung für Sipgate ===
Für den Provider Sipgate existieren mehrere funktioniernde Konfigurationen, die jedoch je nach lokaler Netzinfrastruktur getestet werden müssen.
 
Für alle Konfigurationen außer "STUN" müssen Port Forwards im jeweiligen Router eingetragen sein. Dies betrifft:
*SIP1
*SIP2
**Display Name: Sipgate Username
**SIP Port Listen
**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
*RTP Audio Channel
*RTP Audio Channel
**RTP: 22800
**RTP
**RTCP: 22801
**RTCP
*RTP Video Channel
*RTP Video Channel
**RTP: 22804
**RTP
**RTCP: 22805
**RTCP
*STUN: [X] use rport
Die Übernahme der Parameter beim Verlassen des Konfigurationsmenü ist mitunter etwas hakelig, ein Reboot des Telefons sorgt für Abhilfe. Nach dem Start ruhig 1-2 Minuten abwarten, die Registrierung dauert manchmal länger.
*SIP2
**SIP Port Listen
**for UDP: 5062
**for TCP: 5062
**for TCP TLS: 5053


Die Reiter "Audio", "Video", "Bw", "OBProxy", "QoS" und "Tags" beläßt man auf Werksvorgabe.


SIP Outbound muss leer sein.
Im Reiter "Upgrade" sollte man "Auto SW Upgrade" abschalten, da die vorgesehenen Upgrade-Server längst abgeschaltet sind.


=== Alternative Einstellung für Sipgate ===


Hinter meiner Freetzbox hat die obige Einstellung nix gebracht - incoming calls wurden nicht signalisiert. Folgendes tut dagegen:
==== Parametertabelle ====


*SIP1
{| class="wikitable"
**Display Name: Sipgate Username
|-
**User Name: your SIPgate-ID
! Parameter !! Config 1 !! Config 2 !! Config 3 !! Config 4
**Telephone Number: Sipgate-Telefonnummer
|-
*Auth
!          !! "Proxy" !!  "Freetz"  !! "2. Device" !! "STUN"
**Authentification UserName: your SIPgate-ID
|-
**Password: Sipgate Passwort
| '''SIP1''' ||  ||  ||  ||
*Server
|-
**SIP register address:port: sipgate.de:5060
| Username || SIPGATE UserID || SIPGATE UserID || SIPGATE UserID || SIPGATE UserID
*Proxy
|-
** leer
| Telephone || 0123456789 || 0123456789 || 0123456789 || 0123456789
*SIP2
|-
**Symmetric Mode [X]
| '''Auth''' ||  ||  || ||
**SIP Port Listen
|-
**for UDP: 5062
| Auth User || SIPGATE UserID || SIPGATE UserID || SIPGATE UserID || SIPGATE UserID
**for TCP: 5062
|-
**for TCP TLS: 5053
| Password || SIP Passwort || SIP Passwort || SIP Passwort || SIP Passwort
*STUN: [x] use rport
|-
 
| '''Server''' ||  ||  ||  ||
SIP Outbound muss leer sein.
|-
| SIP Registrar || sipgate.de:5060 || sipgate.de:5060 || sipgate.de:5060 || sipgate.de:5060
|-
| Protocol || UDP || UDP || UDP || UDP
|-
| Expire || 600 || 600 || 600 || 600
|-
| Keep Alive || 600 || 600 || 600 || 600
|-
| '''Proxy''' ||  ||  ||  ||
|-
| SIP Proxy 1 || sipgate.de:5060 || <leer> || <leer> || sipgate.de:5060
|-
| SIP Proxy 2 || <leer> || <leer> || <leer> || <leer>
|-
| SIP Proxy 3 || <leer> || <leer> || <leer> || <leer>
|-
| RTP ||  ||  ||  ||
|-
| Audio RTP Port || 22800 || 22800 || 5006 || 22800
|-
| Audio RTCP Port || 22801 || 22801 || 5007 || 22801
|-
| Video RTP port || 22804 || 22804 || 5008 || 22804
|-
| Video RTCP port || 22805 || 22805 || 5009 || 22805
|-
| '''STUN''' ||  ||  ||  ||
|-
| use rport || ja || ja || ja || nein
|-
| STUN server || <leer> || <leer> || <leer> || stun.sipgate.net
|-
| STUN port || <leer> || <leer> || <leer> || 10000
|-
| '''SIP2''' ||  ||  ||  ||
|-
| Symmetric || ja || ja || ja || ja
|-
| UDP Listen || 5062 || 5062 || 5062 || 5062
|-
| TCP Listen || 5062 || 5062 || 5062 || 5062
|-
| TLS Listen || 5053 || 5053 || 5053 || 5053
|-
| Beispiel || Beispiel || Beispiel || Beispiel || Beispiel
|-
| Beispiel || Beispiel || Beispiel || Beispiel || Beispiel
|-
| Beispiel || Beispiel || Beispiel || Beispiel || Beispiel
|}


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.
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.
 
Bei mir hat es nur per UDP funktioniert, aber mit starken Delays (>1s)
Bei mir hat es nur per UDP funktioniert, aber mit starken Delays (>1s)


=== Einstellung für Ekiga.net ===
=== Einstellung für Ekiga.net ===
 
 
*SIP1
*SIP1
**Display Name: Irgendwas
**Display Name: Irgendwas
Zeile 785: Zeile 826:
*OBproxy
*OBproxy
**alle leer
**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.<br>
Nach der (kostenlosen) Registrierung bei ekiga.net und der Anmeldung des Telefons kann man unter der 500 einen Audio und Video(!) Test machen.<br>
Weitere features: https://www.ekiga.net/index.php?page=services<br>
Weitere features: https://www.ekiga.net/index.php?page=services<br>
Ekiga teilt keine Festnetz Rufnummern zu, daher ist ein Anruf von/zu Festnetz Telefonen nicht möglich.<br>  
Ekiga teilt keine Festnetz Rufnummern zu, daher ist ein Anruf von/zu Festnetz Telefonen nicht möglich.<br>
<p>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 <b>einen neuen Kontakt</b> (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 <b>[#]</b>-Taste des VP5500/6500 umschalten.</p>
<p>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 <b>einen neuen Kontakt</b> (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 <b>[#]</b>-Taste des VP5500/6500 umschalten.</p>
<p>Sollte bei einem Telefonat über Ekiga Video einmal nicht funktionieren, hilft eventuell die manuelle Aktivierung der Videofunktion mittels der <b>Video-Taste</b> auf der Tastatur des VP6500</p>
<p>Sollte bei einem Telefonat über Ekiga Video einmal nicht funktionieren, hilft eventuell die manuelle Aktivierung der Videofunktion mittels der <b>Video-Taste</b> auf der Tastatur des VP6500</p>
 
 
=== Einstellung für Fritzbox 7170/7270 und andere mit SIP-Registrar ===
=== 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,<br> dann in Registration auf dem VPx500 wechseln und die Einstellungen wie unten vornehmen.<br> Anschließend will das Telefon diese Einstellungen aktivieren, vorher noch auf der FB die Anmeldung starten.<br>
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,<br> dann in Registration auf dem VPx500 wechseln und die Einstellungen wie unten vornehmen.<br> Anschließend will das Telefon diese Einstellungen aktivieren, vorher noch auf der FB die Anmeldung starten.<br>
Zeile 820: Zeile 861:
'''Anmerkungen dazu:'''<br>
'''Anmerkungen dazu:'''<br>
Protokoll: UDP<br>
Protokoll: UDP<br>
Bei TCP hat das VP6500 nach Minuten oder Stunden immer wieder die Verbindung zur FB verloren.<br>  
Bei TCP hat das VP6500 nach Minuten oder Stunden immer wieder die Verbindung zur FB verloren.<br>
Keep Alive: 300<br>
Keep Alive: 300<br>
Die Keep Alive Time habe ich eingestellt, weil ich die TCP Probleme umgehen <br>wollte. Ich denke nicht, dass es zu Problemen bzgl. Akku kommt. Da es so <br>aber perfekt funktioniert, habe ich es gelassen. Das UDP Protokoll kommt zudem mit weniger Netzwerk-Traffic aus.<br>
Die Keep Alive Time habe ich eingestellt, weil ich die TCP Probleme umgehen <br>wollte. Ich denke nicht, dass es zu Problemen bzgl. Akku kommt. Da es so <br>aber perfekt funktioniert, habe ich es gelassen. Das UDP Protokoll kommt zudem mit weniger Netzwerk-Traffic aus.<br>
Anmeldung:<br>
Anmeldung:<br>
Die Anmeldung wurde von der Fritz!Box nicht immer erfolgreich bestätigt. Einfach Weiter klicken und die restlichen Einstellungen vornehmen.<br> Spätestens nach einem Reboot des VPx500 funktioniert alles einwandfrei.<br>
Die Anmeldung wurde von der Fritz!Box nicht immer erfolgreich bestätigt. Einfach Weiter klicken und die restlichen Einstellungen vornehmen.<br> Spätestens nach einem Reboot des VPx500 funktioniert alles einwandfrei.<br>
 
 
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.<br>
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.<br>
Bzw. mal im IP-Phone-Forum nach SIP-Registrar suchen.<br>
Bzw. mal im IP-Phone-Forum nach SIP-Registrar suchen.<br>
 
 
Der SIP Listen Port 5060 hat mich viel Zeit gekostet - stand noch von sipgate direkt auf 5062 und das VP5500 hat sich dann zwar an der fritzbox registriert aber keine eingehenden Anrufe empfangen...
Der SIP Listen Port 5060 hat mich viel Zeit gekostet - stand noch von sipgate direkt auf 5062 und das VP5500 hat sich dann zwar an der fritzbox registriert aber keine eingehenden Anrufe empfangen...
 
 
=== Fritz!Box Hinweis ===
=== Fritz!Box Hinweis ===
Hinter meiner Fritz!Box konnte ich auf dem Port 5060 keine Incoming Calls bekommen, da die Box auf diesen Port für ihre eigenes System hört.
Hinter meiner Fritz!Box konnte ich auf dem Port 5060 keine Incoming Calls bekommen, da die Box auf diesen Port für ihre eigenes System hört.
Geholfen hat mit dann ein Wechsel auf Port 5061 im Reiter SIP2
Geholfen hat mit dann ein Wechsel auf Port 5061 im Reiter SIP2
 
 
 
 
== Eigener VoIP Server mit Asterisk ==
== Eigener VoIP Server mit Asterisk ==
 
 
*http://www.das-asterisk-buch.de
*http://www.das-asterisk-buch.de
 
 
===Asterisk auf einer Fritz!Box===
===Asterisk auf einer Fritz!Box===
 
 
*http://www.asterisk-kompakt.de/artikel/45-asterisk-auf-fritzbox-phone.html
*http://www.asterisk-kompakt.de/artikel/45-asterisk-auf-fritzbox-phone.html
 
 
== Videogespräche zu anderen Clients / Softphones ==
== Videogespräche zu anderen Clients / Softphones ==
=== Ekiga Softphone ===
=== Ekiga Softphone ===
 
 
Damit Videos klappen, müssen Ekiga und VP6500 über mindestens einen übereinstimmenden Videocodec verfügen, klar. Im Falle des VP6500 ist es wohl so, daß ausschließlich H.263 in verschiedenen Ausprägungen zur Verfügung steht.
Damit Videos klappen, müssen Ekiga und VP6500 über mindestens einen übereinstimmenden Videocodec verfügen, klar. Im Falle des VP6500 ist es wohl so, daß ausschließlich H.263 in verschiedenen Ausprägungen zur Verfügung steht.
 
 
Ekiga kommt jedoch zunächst unter Ubuntu 9.10 nur mit H.261 und Theora Codec. Wir müssen daher den H.263-Codec in Ekiga zusätzlich einhängen.
Ekiga kommt jedoch zunächst unter Ubuntu 9.10 nur mit H.261 und Theora Codec. Wir müssen daher den H.263-Codec in Ekiga zusätzlich einhängen.
 
 
Leider ist der H.263-Codec nicht ganz frei zugänglich, sodaß wir eine Fremdquelle benötigen, um den Codec mit dem Paketmanager installieren zu können. Daher muß Bojos Ekiga-Plugin-PPA wie in
Leider ist der H.263-Codec nicht ganz frei zugänglich, sodaß wir eine Fremdquelle benötigen, um den Codec mit dem Paketmanager installieren zu können. Daher muß Bojos Ekiga-Plugin-PPA wie in
 
 
https://launchpad.net/~bojo42/+archive/ekiga
https://launchpad.net/~bojo42/+archive/ekiga
 
 
beschrieben als Paketquelle hinzugefügt werden. Den zugehörigen Schlüssel nicht vergessen!
beschrieben als Paketquelle hinzugefügt werden. Den zugehörigen Schlüssel nicht vergessen!
Wenn die neue Quelle bekannt gemacht ist, können im Paketmanager nun die
Wenn die neue Quelle bekannt gemacht ist, können im Paketmanager nun die
 
 
; Pakete
; Pakete
: libopal3.6.1-plugins-h263-1998
: libopal3.6.1-plugins-h263-1998
: libopal3.6.1-plugins-ilbc
: libopal3.6.1-plugins-ilbc
: libavcodec-dev
: libavcodec-dev
 
 
installiert werden. Darauf achten, daß alle Abhängigkeiten sauber erfüllt sind.
installiert werden. Darauf achten, daß alle Abhängigkeiten sauber erfüllt sind.
Das H.263-Plugin läßt sich nur installieren, wenn libstdc++6 >= 4.4.0 vorhanden ist, was meines Wissens erst ab Ubuntu 9.10 der Fall ist.
Das H.263-Plugin läßt sich nur installieren, wenn libstdc++6 >= 4.4.0 vorhanden ist, was meines Wissens erst ab Ubuntu 9.10 der Fall ist.
Nach der Installation dieser Komponenten kann Ekiga neu gestartet werden. Es sollte nun unter Bearbeiten->Einstellungen->Video->Codecs zusätzlich den H.263-Codec anbieten. Durch Verschieben nach oben kann man diesen beim Handshake priorisieren.
Nach der Installation dieser Komponenten kann Ekiga neu gestartet werden. Es sollte nun unter Bearbeiten->Einstellungen->Video->Codecs zusätzlich den H.263-Codec anbieten. Durch Verschieben nach oben kann man diesen beim Handshake priorisieren.
Nach Integration des H.263-Codecs in Ekiga konnte ich mit zwei Sipgate-Accounts störungsfrei, sogar über den gleichen DSL-Anschluß, videofonieren.
Nach Integration des H.263-Codecs in Ekiga konnte ich mit zwei Sipgate-Accounts störungsfrei, sogar über den gleichen DSL-Anschluß, videofonieren.
 
 
== DEMO MODE ==
== DEMO MODE ==
 
 
Um den DEMO MODE zwischen einem VP55 und VP65 herzustellen muss man die Dateien
Um den DEMO MODE zwischen einem VP55 und VP65 herzustellen muss man die Dateien
mit den Einstellungen vom VP55 auf das VP65 übertragen. Diese liegen in
mit den Einstellungen vom VP55 auf das VP65 übertragen. Diese liegen in
/usr/local/data/demo/ und es sind vier Dateien. Danach ist die SSID und der KEY
/usr/local/data/demo/ und es sind vier Dateien. Danach ist die SSID und der KEY
bei beiden gleich eingerichtet und die beiden Geräte verbinden sich miteinander.
bei beiden gleich eingerichtet und die beiden Geräte verbinden sich miteinander.
 
 
= Software =
= Software =
 
 
== Vorsicht Fallen! ==
== Vorsicht Fallen! ==
Es ist nicht schwer, sich den Zugang zum Telefon abzuschneiden, wenn man nicht aufpasst.
Es ist nicht schwer, sich den Zugang zum Telefon abzuschneiden, wenn man nicht aufpasst.
 
 
== Betrieb mit aktivierter serieller Schnittstelle ==
== Betrieb mit aktivierter serieller Schnittstelle ==
 
 
Das 5500 und das 6500 scheint nicht komplett zu starten wenn man TIN auf low hat
Das 5500 und das 6500 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
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
/usr/local/startup/daemon.sh
 
 
ziemlich am Anfang das TINDETECT="TRUE" ändert auf TINDETECT="FALSE"
ziemlich am Anfang das TINDETECT="TRUE" ändert auf TINDETECT="FALSE"
 
 
Danach startet er auch mit aktiver serieller Verbindung komplett durch
Danach startet er auch mit aktiver serieller Verbindung komplett durch
und das Gerät ist ganz normal bedienbar.
und das Gerät ist ganz normal bedienbar.
 
 
== Grundlagen ==
== Grundlagen ==
Bestimmte Aktionen werden immer wieder benötigt.
Bestimmte Aktionen werden immer wieder benötigt.
Diese sollen hier kurz beschrieben werden.
Diese sollen hier kurz beschrieben werden.
 
 
Es werden dennoch grundlegende Kenntnisse von Kommandozeilen vorausgesetzt.
Es werden dennoch grundlegende Kenntnisse von Kommandozeilen vorausgesetzt.
 
 
==== Dateien bearbeiten mit vi ====
==== Dateien bearbeiten mit vi ====
Auf dem Telefon ist der minimalistische Editor vi installiert mit dem Dateien über Telnet bearbeitet werden können.
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.
Für eine genaue Bedienung bitte Google benutzen.
Die wichtigsten Bedienelemente werden hier kurz erläutert.
Die wichtigsten Bedienelemente werden hier kurz erläutert.
 
 
Datei Öffnen mit 'vi Dateipfad'
Datei Öffnen mit 'vi Dateipfad'
vi kennt zwei Modi: Kommando- und Einfüge-Modus.
vi kennt zwei Modi: Kommando- und Einfüge-Modus.
 
 
'''i''' - wechselt in den Einfüge-Modus, in dem geschrieben werden kann<br />
'''i''' - wechselt in den Einfüge-Modus, in dem geschrieben werden kann<br />
'''a''' - anhängen (hinter dem aktuellem Zeichen in den Einfüge-Modus)<br />
'''a''' - anhängen (hinter dem aktuellem Zeichen in den Einfüge-Modus)<br />
'''[Esc]''' wechselt zurück in den Kommandomodus.  
'''[Esc]''' wechselt zurück in den Kommandomodus.
In diesem kann mittels Pfeil- und Bildlauftasten navigiert werden.
In diesem kann mittels Pfeil- und Bildlauftasten navigiert werden.
:x - löscht das Zeichen an Cursor position
:x - löscht das Zeichen an Cursor position
Zeile 917: Zeile 958:
:<nowiki>:</nowiki>w - speichert
:<nowiki>:</nowiki>w - speichert
:<nowiki>:</nowiki>wq - speichert und beenden
:<nowiki>:</nowiki>wq - speichert und beenden
 
 
==== Dateien auf das Telefon laden ====
==== Dateien auf das Telefon laden ====
Um Daten von einem http-Server zu laden, benutzt man  
Um Daten von einem http-Server zu laden, benutzt man
wget url
wget url
Die Datei wird dann in das aktuelle Verzeichnis geladen, weswegen vorher in das Zielverzeichnis wechseln.
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.
Um Daten von einem ftp-Server zu laden, benutzt man ftp.
Auch hier muss vorher in das zielverzeichnis gewechselt werden.
Auch hier muss vorher in das zielverzeichnis gewechselt werden.
ftp hostname
ftp hostname
dann gegebenenfalls die Zugangsdaten eingeben und mittels 'cd' und 'ls' in das Entsprechende Verzeichnis auf dem FTP-Server wechseln
dann gegebenenfalls die Zugangsdaten eingeben und mittels 'cd' und 'ls' in das Entsprechende Verzeichnis auf dem FTP-Server wechseln
und anschließend mittels  
und anschließend mittels
get dateiname
get dateiname
die Datei herunterladen.
die Datei herunterladen.
==== Dateien vom Telefon herunterladen ====
==== Dateien vom Telefon herunterladen ====
Auch hier bietet sich ein FTP an.
Auch hier bietet sich ein FTP an.
Mittels 'ftp hostname' verbinden, Benutzerdaten eingeben, in das entsprechende FTP-Server-Verzeischnis wechseln und mittels
Mittels 'ftp hostname' verbinden, Benutzerdaten eingeben, in das entsprechende FTP-Server-Verzeischnis wechseln und mittels
put localeDatei
put localeDatei
eine Lokale Datei hochladen.
eine Lokale Datei hochladen.
 
 
==== Alternative: Dropbear ====
==== Alternative: Dropbear ====
 
 
Wurde der dropbear-ssh server installiert [[#Dropbear (SSH-Server) installieren]] können mittels eines Programms mit SCP-Unterstützung (zB. [http://winscp.net/eng/docs/lang:de WinSCP] für Windows) sehr komfortabel Dateien ausgetauscht werden.
Wurde der dropbear-ssh server installiert [[#Dropbear (SSH-Server) installieren]] können mittels eines Programms mit SCP-Unterstützung (zB. [http://winscp.net/eng/docs/lang:de WinSCP] für Windows) sehr komfortabel Dateien ausgetauscht werden.
 
 
Mit WinSCP können auch Dateien direkt bearbeitet 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.
Der Client lädt die Datei herunter, öffnet einen Editor und lädt die Datei wieder herauf, wenn diese geändert wurde.
 
 
== Grundkonfiguration, die das Leben erleichtert ==
== Grundkonfiguration, die das Leben erleichtert ==
=== .bashrc ===
=== .bashrc ===
Die installierte Shell ist die bash. Einstellungen bezieht sie aus der (versteckten) Datei ".bashrc". Hier kann man sinnvolle Ergänzungen vornehmen, damit sich das Telefon ein bißchen mehr wie ein gewohntes Linux-System verhält:
Die installierte Shell ist die bash. Einstellungen bezieht sie aus der (versteckten) Datei ".bashrc". Hier kann man sinnvolle Ergänzungen vornehmen, damit sich das Telefon ein bißchen mehr wie ein gewohntes Linux-System verhält:
 
 
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
alias vim=vi
alias vim=vi
PS1="[\u@\h] \w $ "
PS1="[\u@\h] \w $ "
</syntaxhighlight>
</syntaxhighlight>
 
 
== Backup ==
== Backup ==
=== Backup des Flash ===
=== Backup des Flash ===
If you want to make a backup of your root partition, you can do as
If you want to make a backup of your root partition, you can do as
follows:
follows:
 
 
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
echo '#!/bin/sh' > /tmp/backup.sh
echo '#!/bin/sh' > /tmp/backup.sh
Zeile 964: Zeile 1.004:
micro_inetd 31337 /tmp/backup.sh
micro_inetd 31337 /tmp/backup.sh
</syntaxhighlight>
</syntaxhighlight>
 
 
This'll make your device listen for incoming connections on port 31337.
This'll make your device listen for incoming connections on port 31337.
On your host system you may then simply run  
On your host system you may then simply run
nc ip.of.your.phone 31337 > fon_rootfs
nc ip.of.your.phone 31337 > fon_rootfs
et voilà, you got your rootfs packed into a file.
et voilà, you got your rootfs packed into a file.
 
 
Note that the backed up file is not ext2, but a jffs2 formatted
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
filesystem. These can't be handled by a simple "mount -o loop" as you'd
have thought... so here's how you mount it:
have thought... so here's how you mount it:
 
 
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
modprobe jffs2
modprobe jffs2
Zeile 983: Zeile 1.023:
mount -t jffs2 /tmp/phone-mtdb2 /tmp/phone-root
mount -t jffs2 /tmp/phone-mtdb2 /tmp/phone-root
</syntaxhighlight>
</syntaxhighlight>
 
 
[[#Dateisystem herunterladen]] describes another way to dump the filesystem for closer examination.
[[#Dateisystem herunterladen]] describes another way to dump the filesystem for closer examination.
 
 
=== Komplettes Backup ===
=== Komplettes Backup ===
Die Datei http://www.mikrocontroller.net/attachment/73323/S91backup_pipe auf das Gerät laden und als ausführbar markieren.
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
cd /etc/rc.d/init.d
wget http://www.mikrocontroller.net/attachment/73323/S91backup_pipe
wget http://www.mikrocontroller.net/attachment/73323/S91backup_pipe
chmod +x /etc/rc.d/init.d/S91backup_pipe
chmod +x /etc/rc.d/init.d/S91backup_pipe
 
 
Damit wird eine Art Backup-Server mit dem Boot gestartet.
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.
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:
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 31337 > fon_rootfs
nc 192.168.1.3 31338 > fon_udata
nc 192.168.1.3 31338 > fon_udata
nc 192.168.1.3 31339 > fon_usettings
nc 192.168.1.3 31339 > fon_usettings
nc 192.168.1.3 31340 > fon_bootld
nc 192.168.1.3 31340 > fon_bootld
nc 192.168.1.3 31341 > fon_kernel
nc 192.168.1.3 31341 > fon_kernel
 
 
Die 192.168.1.3 natürlich mit der IP des Gerätes austauschen, die fon_*
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.
Dateinamen könnt ihr natürlich auch frei vergeben.
 
 
fon_udata ist die /user_data Partition, fon_usertings dementsprechend
fon_udata ist die /user_data Partition, fon_usertings dementsprechend
die /user_settings Partition.
die /user_settings Partition.
 
 
Der bootld Bereich enthält auch die Parameter. Um das später (falls
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
überhaupt nötig) mittels blob zu restaurieren müsste die Datei noch in
Zeile 1.018: Zeile 1.058:
überschrieben kann man ihn ja auch nicht mehr zum Wiederherstellen
überschrieben kann man ihn ja auch nicht mehr zum Wiederherstellen
benutzen....
benutzen....
 
 
=== Zurückspielen der Backups ===
=== Zurückspielen der Backups ===
 
 
1) Man braucht ein (die) Backup-Image(s).
1) Man braucht ein (die) Backup-Image(s).
 
 
2) Serielle Verbindung zum Telefon
2) Serielle Verbindung zum Telefon
 
 
3) Akku abstecken, wieder anstecken.
3) Akku abstecken, wieder anstecken.
 
 
4) Telefon einschalten und im Terminalprogram auf die Tasten kloppen, so
4) Telefon einschalten und im Terminalprogram auf die Tasten kloppen, so
das man im Bootloader landet. Dabei muss man recht schnell sein. Es
das man im Bootloader landet. Dabei muss man recht schnell sein. Es
sollte dann ein Prompt kommen:
sollte dann ein Prompt kommen:
 
 
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
blob>
blob>
</syntaxhighlight>
</syntaxhighlight>
 
 
5) Nun gibt man ein  
5) Nun gibt man ein
  xdownload param
  xdownload param
Wobei 'param' der Teil ist, den man wiederherstellen will:
Wobei 'param' der Teil ist, den man wiederherstellen will:
* blob - Bootloader (fon_bootld)
* blob - Bootloader (fon_bootld)
Zeile 1.044: Zeile 1.084:
* ramdisk2 - Das /user_data Filesystem (fon_udata)
* ramdisk2 - Das /user_data Filesystem (fon_udata)
* ramdisk3 - Das /user_settings Filesystem (fon_usettings)
* ramdisk3 - Das /user_settings Filesystem (fon_usettings)
 
 
Beim Backup ist blob + param in einer Datei, müsste man also ggf.
Beim Backup ist blob + param in einer Datei, müsste man also ggf.
erstmal aufsplitten.
erstmal aufsplitten.
 
 
6) Er wartet dann auf den Upload. Nun startet man im Terminalprogram den
6) Er wartet dann auf den Upload. Nun startet man im Terminalprogram den
Upload des Backup-Images, dazu verwendet man das X-Modem Protokoll.
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
7) Kaffee trinken, auf's Klo gehen, mit Frau/Freundin/Mutter ein Gespräch
anfangen.
anfangen.
 
 
8) Irgendwann ist der Upload fertig. Dauert halt lange. Man landet
8) Irgendwann ist der Upload fertig. Dauert halt lange. Man landet
wieder am "blob>" prompt. Nun gibt man
wieder am "blob>" prompt. Nun gibt man
flash param
flash param
ein.
ein.
 
 
9) Er schreibt nun das, was man hochgeladen hat, in das Flash.
9) Er schreibt nun das, was man hochgeladen hat, in das Flash.
 
 
10) "boot" eingeben. Da Telefon bootet nun normal.
10) "boot" eingeben. Da Telefon bootet nun normal.
 
 
Achtung: Wenn im Backup nicht die Änderung gemacht wurde damit das
Achtung: Wenn im Backup nicht die Änderung gemacht wurde damit das
Telefon auch bei angeschlossener serieller Schnittstelle startet, kommt
Telefon auch bei angeschlossener serieller Schnittstelle startet, kommt
Zeile 1.068: Zeile 1.108:
abstecken (Also den TIN pin wieder freigeben) und das Telefon neustarten
abstecken (Also den TIN pin wieder freigeben) und das Telefon neustarten
(Akku kurz ab- und wieder anstöpseln)
(Akku kurz ab- und wieder anstöpseln)
 
 
=== Dateisystem herunterladen ===
=== Dateisystem herunterladen ===
Zum unkomplizierten Durchsuchen des Dateisystems kann es nützlich sein, dieses vom Gerät zu kopieren.
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:
Folgende Befehle erzeugen wie beim Backup des Flash einen kleinen Server, dessen Output auf anderer Seite mittels mittels nc abgeholt werden kann:
 
 
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
echo '#! /bin/sh' > /tmp/backup.sh
echo '#! /bin/sh' > /tmp/backup.sh
Zeile 1.081: Zeile 1.121:
micro_inetd 31340 /tmp/backup.sh
micro_inetd 31340 /tmp/backup.sh
</syntaxhighlight>
</syntaxhighlight>
 
 
Die lange Liste mit Unterverzeichnissen ist notwendig um /proc zu überspringen, was Probleme mit tar verursachen würde.
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
Auf einem anderen Linux system (oder cygwin) kann mittels
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
  nc telefon-Ip 31340 > file.tar
  nc telefon-Ip 31340 > file.tar
</syntaxhighlight>
</syntaxhighlight>
die Datei abgerufen werden.
die Datei abgerufen werden.
 
 
Der Vorgang dauert aber ein ganz paar Minuten.
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.
Heraus kommt ein Tar-Archiv, was alle Dateien des Gerätes enthält - inclusive der temporären Dateien der Ram-Disks.
 
 
== Erkunden des Systems mit Bordmitteln ==
== Erkunden des Systems mit Bordmitteln ==
 
 
=== Ausgabe von <b><tt>dmesg</tt></b> auf einem VP6500 ===
=== Ausgabe von <b><tt>dmesg</tt></b> auf einem VP6500 ===
<pre>
<pre>
Zeile 1.109: Zeile 1.149:
Driver FRAMEBUF-1.12 (REFERENCED)
Driver FRAMEBUF-1.12 (REFERENCED)
Driver SPI-1.20 (REFERENCED) Debug level 3
Driver SPI-1.20 (REFERENCED) Debug level 3
 
 
u32_spi1_MinLenghtForDMAInTX set to 300
u32_spi1_MinLenghtForDMAInTX set to 300
 
 
u32_spi1_MinLenghtForDMAInRX set to 300
u32_spi1_MinLenghtForDMAInRX set to 300
Driver LCD-1.20 (REFERENCED)
Driver LCD-1.20 (REFERENCED)
Zeile 1.136: Zeile 1.176:
SPI2:: drvPhase2Init :Initializing HHAL (PhgHhalInitialize)...
SPI2:: drvPhase2Init :Initializing HHAL (PhgHhalInitialize)...
Divider : 8
Divider : 8
 
 
OCR2 : e4015308 (12582912)
OCR2 : e4015308 (12582912)
Reset : 3 / 27 (c497cc00 / e401531c)
Reset : 3 / 27 (c497cc00 / e401531c)
 
 
Reset : 3 / 27 (c497cc00 / e401531c)
Reset : 3 / 27 (c497cc00 / e401531c)
GPIO: p_gpio_init_gpio_status at 1262
GPIO: p_gpio_init_gpio_status at 1262
Zeile 1.145: Zeile 1.185:
GPIO: CHARGE_IN at init
GPIO: CHARGE_IN at init
GPIO: LOW_BAT_OUT at init
GPIO: LOW_BAT_OUT at init
GPIO: No accessory plugged at init. - Set Video on jack
GPIO: No accessory plugged at init.  - Set Video on jack
GPIO: camera to front at init
GPIO: camera to front at init
**ChargeStatusPmb=========gpio_Read_ChargeStatus_Ready=1
**ChargeStatusPmb=========gpio_Read_ChargeStatus_Ready=1
Zeile 1.170: Zeile 1.210:
SPI2:: drvOpen :Disabling again netqueue
SPI2:: drvOpen :Disabling again netqueue
requested reg.domain code setting = 3
requested reg.domain code setting = 3
SPI2:: drvIoctl :set u8LinkAdaptation  : 1 Result=[0]
SPI2:: drvIoctl :set u8LinkAdaptation  : 1 Result=[0]
SPI2:: drvIoctl :changed HEOCSIWLNADPALLOWRATES: 8 allowed rate codes
SPI2:: drvIoctl :changed HEOCSIWLNADPALLOWRATES: 8 allowed rate codes
SPI2:: drvInitConnect :Req to connect to new WLAN network
SPI2:: drvInitConnect :Req to connect to new WLAN network
Zeile 1.186: Zeile 1.226:
SPI2:: drvInitParamsAndPowerOnAndConnect :Connect failed!
SPI2:: drvInitParamsAndPowerOnAndConnect :Connect failed!
Motorola CSI Linux driver ver 0.1
Motorola CSI Linux driver ver 0.1
- Copyright (C) 2004 Motorola Inc
- Copyright (C) 2004 Motorola Inc
 
 
Driver SENSOR-1.29 (REFERENCED)
Driver SENSOR-1.29 (REFERENCED)
i2c-client version : 1.9
i2c-client version : 1.9
Zeile 1.270: Zeile 1.310:
SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
</pre>
</pre>
 
 
=== Ausgabe von <b><tt>logread</tt></b> auf einem VP6500 ===
=== Ausgabe von <b><tt>logread</tt></b> auf einem VP6500 ===
<pre>
<pre>
Jan  1 00:00:00 imx21 syslog.info syslogd started: BusyBox v0.60.0 (2007.02.28-13:39+0000)
Jan  1 00:00:00 imx21 syslog.info syslogd started: BusyBox v0.60.0 (2007.02.28-13:39+0000)
Jan  1 00:00:02 imx21 daemon.emerg klogd: klogd started: BusyBox v0.60.0 (2007.02.28-13:39+0000)
Jan  1 00:00:02 imx21 daemon.emerg klogd: klogd started: BusyBox v0.60.0 (2007.02.28-13:39+0000)
Jan  1 00:00:02 imx21 daemon.warn klogd: Linux version 2.4.20-celf3 (root@wbul04) (gcc version 3.3.2) #1 Wed Feb 28 13:30:26 UTC 2007
Jan  1 00:00:02 imx21 daemon.warn klogd: Linux version 2.4.20-celf3 (root@wbul04) (gcc version 3.3.2) #1 Wed Feb 28 13:30:26 UTC 2007
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: ARM926EJ-Sid(wb) [41069264] revision 4 (ARMv?(8))
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: ARM926EJ-Sid(wb) [41069264] revision 4 (ARMv?(8))
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: D undefined 14 cache
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: D undefined 14 cache
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Jan  1 00:00:02 imx21 daemon.warn klogd: Machine: Freescale i.MX2 ADS
Jan  1 00:00:02 imx21 daemon.warn klogd: Machine: Freescale i.MX2 ADS
Jan  1 00:00:02 imx21 daemon.warn klogd: FCLK=266000 kHz  HCLK=133000 kHz  IPGCLK=66500 kHz
Jan  1 00:00:02 imx21 daemon.warn klogd: FCLK=266000 kHz  HCLK=133000 kHz  IPGCLK=66500 kHz
Jan  1 00:00:02 imx21 daemon.warn klogd: PERCLKs: 1=44333 KHz  2=33250 kHz  3=44333 kHz  4=88666 kHz
Jan  1 00:00:02 imx21 daemon.warn klogd: PERCLKs: 1=44333 KHz  2=33250 kHz  3=44333 kHz  4=88666 kHz
Jan  1 00:00:02 imx21 daemon.warn klogd: On node 0 totalpages: 16384
Jan  1 00:00:02 imx21 daemon.warn klogd: On node 0 totalpages: 16384
Jan  1 00:00:02 imx21 daemon.warn klogd: zone(0): 16384 pages.
Jan  1 00:00:02 imx21 daemon.warn klogd: zone(0): 16384 pages.
Jan  1 00:00:02 imx21 daemon.warn klogd: zone(1): 0 pages.
Jan  1 00:00:02 imx21 daemon.warn klogd: zone(1): 0 pages.
Jan  1 00:00:02 imx21 daemon.warn klogd: zone(2): 0 pages.
Jan  1 00:00:02 imx21 daemon.warn klogd: zone(2): 0 pages.
Jan  1 00:00:02 imx21 daemon.warn klogd: Kernel command line: root=/dev/mtdblock2 noinitrd ip=none mtdparts=s29gl512n:256k@0x00000000
Jan  1 00:00:02 imx21 daemon.warn klogd: Kernel command line: root=/dev/mtdblock2 noinitrd ip=none mtdparts=s29gl512n:256k@0x00000000
(bootloader)ro,896k@0x00040000(kernel)ro,50432k@0x00120000(fs#1),12800k@0x03260000(fs#2),1152k@0x03EE0000(fs#3)
(bootloader)ro,896k@0x00040000(kernel)ro,50432k@0x00120000(fs#1),12800k@0x03260000(fs#2),1152k@0x03EE0000(fs#3)
Jan  1 00:00:02 imx21 daemon.debug klogd: Relocating machine vectors to 0xffff0000
Jan  1 00:00:02 imx21 daemon.debug klogd: Relocating machine vectors to 0xffff0000
Jan  1 00:00:02 imx21 daemon.warn klogd: Console: colour dummy device 80x30
Jan  1 00:00:02 imx21 daemon.warn klogd: Console: colour dummy device 80x30
Jan  1 00:00:02 imx21 daemon.warn klogd: Calibrating delay loop (skipped)... 132.71 BogoMIPS
Jan  1 00:00:02 imx21 daemon.warn klogd: Calibrating delay loop (skipped)... 132.71 BogoMIPS
Jan  1 00:00:02 imx21 daemon.info klogd: Memory: 64MB = 64MB total
Jan  1 00:00:02 imx21 daemon.info klogd: Memory: 64MB = 64MB total
Jan  1 00:00:02 imx21 daemon.notice klogd: Memory: 63052KB available (1366K code, 299K data, 68K init)
Jan  1 00:00:02 imx21 daemon.notice klogd: Memory: 63052KB available (1366K code, 299K data, 68K init)
Jan  1 00:00:02 imx21 daemon.info klogd: Dentry cache hash table entries: 8192 (order: 4, 65536 bytes)
Jan  1 00:00:02 imx21 daemon.info klogd: Dentry cache hash table entries: 8192 (order: 4, 65536 bytes)
Jan  1 00:00:02 imx21 daemon.info klogd: Inode cache hash table entries: 4096 (order: 3, 32768 bytes)
Jan  1 00:00:02 imx21 daemon.info klogd: Inode cache hash table entries: 4096 (order: 3, 32768 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: POSIX conformance testing by UNIFIX
Jan  1 00:00:02 imx21 daemon.warn klogd: POSIX conformance testing by UNIFIX
Jan  1 00:00:02 imx21 daemon.info klogd: Linux NET4.0 for Linux 2.4
Jan  1 00:00:02 imx21 daemon.info klogd: Linux NET4.0 for Linux 2.4
Jan  1 00:00:02 imx21 daemon.info klogd: Based upon Swansea University Computer Society NET3.039
Jan  1 00:00:02 imx21 daemon.info klogd: Based upon Swansea University Computer Society NET3.039
Jan  1 00:00:02 imx21 daemon.warn klogd: Initializing RT netlink socket
Jan  1 00:00:02 imx21 daemon.warn klogd: Initializing RT netlink socket
Jan  1 00:00:02 imx21 daemon.info klogd: apm: Simulating APM BIOS version 1.2 (Driver version 1.0)
Jan  1 00:00:02 imx21 daemon.info klogd: apm: Simulating APM BIOS version 1.2 (Driver version 1.0)
Jan  1 00:00:02 imx21 daemon.warn klogd: i.MX21 Dynamic Power Management
Jan  1 00:00:02 imx21 daemon.warn klogd: i.MX21 Dynamic Power Management
Jan  1 00:00:02 imx21 daemon.warn klogd: Starting kswapd
Jan  1 00:00:02 imx21 daemon.warn klogd: Starting kswapd
Jan  1 00:00:02 imx21 daemon.warn klogd: Disabling the Out Of Memory Killer
Jan  1 00:00:02 imx21 daemon.warn klogd: Disabling the Out Of Memory Killer
Jan  1 00:00:02 imx21 daemon.notice klogd: JFFS2 version 2.1. (C) 2001, 2002 Red Hat, Inc., designed by Axis Communications AB.
Jan  1 00:00:02 imx21 daemon.notice klogd: JFFS2 version 2.1. (C) 2001, 2002 Red Hat, Inc., designed by Axis Communications AB.
Jan  1 00:00:02 imx21 daemon.info klogd: i2c-core.o: i2c core module version 2.6.2 (20011118)
Jan  1 00:00:02 imx21 daemon.info klogd: i2c-core.o: i2c core module version 2.6.2 (20011118)
Jan  1 00:00:02 imx21 daemon.warn klogd: pty: 256 Unix98 ptys configured
Jan  1 00:00:02 imx21 daemon.warn klogd: pty: 256 Unix98 ptys configured
Jan  1 00:00:02 imx21 daemon.info klogd: Serial driver version 5.05c (2001-07-08) with no serial options enabled
Jan  1 00:00:02 imx21 daemon.info klogd: Serial driver version 5.05c (2001-07-08) with no serial options enabled
Jan  1 00:00:02 imx21 daemon.warn klogd: UART driver version 0.3.6
Jan  1 00:00:02 imx21 daemon.warn klogd: UART driver version 0.3.6
Jan  1 00:00:02 imx21 daemon.warn klogd: RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Jan  1 00:00:02 imx21 daemon.warn klogd: RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Jan  1 00:00:02 imx21 daemon.warn klogd: I2C driver Feb 28 2007 / 13:31:04
Jan  1 00:00:02 imx21 daemon.warn klogd: I2C driver Feb 28 2007 / 13:31:04
Jan  1 00:00:02 imx21 daemon.info klogd: Initialize i2c-client-dbmx-codec module
Jan  1 00:00:02 imx21 daemon.info klogd: Initialize i2c-client-dbmx-codec module
Jan  1 00:00:02 imx21 daemon.notice klogd: s29gl512n: probing 16-bit flash bus
Jan  1 00:00:02 imx21 daemon.notice klogd: s29gl512n: probing 16-bit flash bus
Jan  1 00:00:02 imx21 daemon.notice klogd: Amd/Fujitsu Extended Query Table v1.3 at 0x0040
Jan  1 00:00:02 imx21 daemon.notice klogd:  Amd/Fujitsu Extended Query Table v1.3 at 0x0040
Jan  1 00:00:02 imx21 daemon.notice klogd: number of CFI chips: 1
Jan  1 00:00:02 imx21 daemon.notice klogd: number of CFI chips: 1
Jan  1 00:00:02 imx21 daemon.notice klogd: cfi_cmdset_0002: Using Write Buffer method.
Jan  1 00:00:02 imx21 daemon.notice klogd: cfi_cmdset_0002: Using Write Buffer method.
Jan  1 00:00:02 imx21 daemon.notice klogd: cfi_cmdset_0002: buffer_Write_Time = 128
Jan  1 00:00:02 imx21 daemon.notice klogd: cfi_cmdset_0002: buffer_Write_Time = 128
Jan  1 00:00:02 imx21 daemon.notice klogd: cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Jan  1 00:00:02 imx21 daemon.notice klogd: cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Jan  1 00:00:02 imx21 daemon.notice klogd: Using static partition definition
Jan  1 00:00:02 imx21 daemon.notice klogd: Using static partition definition
Jan  1 00:00:02 imx21 daemon.notice klogd: Creating 5 MTD partitions on "s29gl512n":
Jan  1 00:00:02 imx21 daemon.notice klogd: Creating 5 MTD partitions on "s29gl512n":
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x00000000-0x00040000 : "bootloader"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x00000000-0x00040000 : "bootloader"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x00040000-0x00120000 : "kernel"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x00040000-0x00120000 : "kernel"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x00120000-0x03260000 : "fs #1"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x00120000-0x03260000 : "fs #1"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x03260000-0x03ee0000 : "fs #2"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x03260000-0x03ee0000 : "fs #2"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x03ee0000-0x04000000 : "fs #3"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x03ee0000-0x04000000 : "fs #3"
Jan  1 00:00:02 imx21 daemon.info klogd: NET4: Linux TCP/IP 1.0 for NET4.0
Jan  1 00:00:02 imx21 daemon.info klogd: NET4: Linux TCP/IP 1.0 for NET4.0
Jan  1 00:00:02 imx21 daemon.info klogd: IP Protocols: ICMP, UDP, TCP
Jan  1 00:00:02 imx21 daemon.info klogd: IP Protocols: ICMP, UDP, TCP
Jan  1 00:00:02 imx21 daemon.info klogd: IP: routing cache hash table of 512 buckets, 4Kbytes
Jan  1 00:00:02 imx21 daemon.info klogd: IP: routing cache hash table of 512 buckets, 4Kbytes
Jan  1 00:00:02 imx21 daemon.info klogd: TCP: Hash tables configured (established 4096 bind 8192)
Jan  1 00:00:02 imx21 daemon.info klogd: TCP: Hash tables configured (established 4096 bind 8192)
Jan  1 00:00:02 imx21 daemon.info klogd: NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
Jan  1 00:00:02 imx21 daemon.info klogd: NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
Jan  1 00:00:02 imx21 daemon.warn klogd: NetWinder Floating Point Emulator V0.95 (c) 1998-1999 Rebel.com
Jan  1 00:00:02 imx21 daemon.warn klogd: NetWinder Floating Point Emulator V0.95 (c) 1998-1999 Rebel.com
Jan  1 00:00:02 imx21 daemon.warn klogd: VFS: Mounted root (jffs2 filesystem).
Jan  1 00:00:02 imx21 daemon.warn klogd: VFS: Mounted root (jffs2 filesystem).
Jan  1 00:00:02 imx21 daemon.info klogd: Freeing init memory: 68K
Jan  1 00:00:02 imx21 daemon.info klogd: Freeing init memory: 68K
Jan  1 00:00:02 imx21 daemon.warn klogd: PCB version: ind3 v2
Jan  1 00:00:02 imx21 daemon.warn klogd: PCB version: ind3 v2
Jan  1 00:00:02 imx21 daemon.info klogd: Driver SYSTCLK: SYSTCLK-1.12 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver SYSTCLK: SYSTCLK-1.12 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver GPIO-1.59 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver GPIO-1.59 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.warn klogd: ****p_gpio_init_low_bat****
Jan  1 00:00:02 imx21 daemon.warn klogd: ****p_gpio_init_low_bat****
Jan  1 00:00:02 imx21 daemon.warn klogd: GPIO: p_gpio_it_init at 762
Jan  1 00:00:02 imx21 daemon.warn klogd: GPIO: p_gpio_it_init at 762
Jan  1 00:00:02 imx21 daemon.info klogd: Driver FRAMEBUF-1.12 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver FRAMEBUF-1.12 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver SPI-1.20 (REFERENCED) Debug level 3
Jan  1 00:00:02 imx21 daemon.info klogd: Driver SPI-1.20 (REFERENCED) Debug level 3
Jan  1 00:00:02 imx21 daemon.warn klogd:  
Jan  1 00:00:02 imx21 daemon.warn klogd:
Jan  1 00:00:02 imx21 daemon.warn klogd: u32_spi1_MinLenghtForDMAInTX set to 300
Jan  1 00:00:02 imx21 daemon.warn klogd: u32_spi1_MinLenghtForDMAInTX set to 300
Jan  1 00:00:02 imx21 daemon.warn klogd:  
Jan  1 00:00:02 imx21 daemon.warn klogd:
Jan  1 00:00:02 imx21 daemon.warn klogd: u32_spi1_MinLenghtForDMAInRX set to 300
Jan  1 00:00:02 imx21 daemon.warn klogd: u32_spi1_MinLenghtForDMAInRX set to 300
Jan  1 00:00:02 imx21 daemon.info klogd: Driver LCD-1.20 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver LCD-1.20 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver TVLINK-1.45 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver TVLINK-1.45 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.warn klogd: Reset from Software Reset.
Jan  1 00:00:02 imx21 daemon.warn klogd: Reset from Software Reset.
Jan  1 00:00:02 imx21 daemon.warn klogd: Motorola PostProcessor Linux driver ver 0.64 - Copyright (C) 2003 Motorola Inc
Jan  1 00:00:02 imx21 daemon.warn klogd: Motorola PostProcessor Linux driver ver 0.64 - Copyright (C) 2003 Motorola Inc
Jan  1 00:00:02 imx21 daemon.warn klogd: pp: hw ver = 2
Jan  1 00:00:02 imx21 daemon.warn klogd: pp: hw ver = 2
Jan  1 00:00:03 imx21 daemon.warn klogd: prp_dbg=0
Jan  1 00:00:03 imx21 daemon.warn klogd: prp_dbg=0
Jan  1 00:00:03 imx21 daemon.warn klogd: Motorola PreProcessor Linux driver ver 0.0 - Copyright (C) 2003 Motorola Inc
Jan  1 00:00:03 imx21 daemon.warn klogd: Motorola PreProcessor Linux driver ver 0.0 - Copyright (C) 2003 Motorola Inc
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4d: base_port=0x10026800 irq=50
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4d: base_port=0x10026800 irq=50
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4d: module inserted
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4d: module inserted
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4e: base_port=0x10026c00 irq=49
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4e: base_port=0x10026c00 irq=49
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4e: Compatble HW found with ID: 0x004c1882
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4e: Compatble HW found with ID: 0x004c1882
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4e: module inserted. Major = 249
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4e: module inserted. Major = 249
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :PID of driver: 134  
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :PID of driver: 134
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :ScanList not provided. Will use the default scan list.  
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :ScanList not provided. Will use the default scan list.
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :ScanChannelList :1 6 11 14 2 7 12 3 8 13 4 9 5 10  
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :ScanChannelList :1 6 11 14 2 7 12 3 8 13 4 9 5 10
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :setting PhyType to: Rf-to-Rf
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :setting PhyType to: Rf-to-Rf
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :Ref.Clock parameter not provided
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :Ref.Clock parameter not provided
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :Configure target for a reference clock of 'default=40' Mhz.
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :Configure target for a reference clock of 'default=40' Mhz.
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drvRegEtherDev :Interface Name is: eth%d  
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drvRegEtherDev :Interface Name is: eth%d
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :HEOCSIWPOWON: Powering on...  
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :HEOCSIWPOWON: Powering on...
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drvPhase2Init :Protocol Firmware will be loaded by driver ...
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drvPhase2Init :Protocol Firmware will be loaded by driver ...
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drvPhase2Init :Initializing HHAL (PhgHhalInitialize)...
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drvPhase2Init :Initializing HHAL (PhgHhalInitialize)...
Jan  1 00:00:03 imx21 daemon.warn klogd: Divider : 8
Jan  1 00:00:03 imx21 daemon.warn klogd: Divider : 8
Jan  1 00:00:03 imx21 daemon.warn klogd:  
Jan  1 00:00:03 imx21 daemon.warn klogd:
Jan  1 00:00:03 imx21 daemon.warn klogd: OCR2 : e4015308 (12582912)
Jan  1 00:00:03 imx21 daemon.warn klogd:  OCR2 : e4015308 (12582912)
Jan  1 00:00:03 imx21 daemon.warn klogd: Reset : 3 / 27 (c497cc00 / e401531c)
Jan  1 00:00:03 imx21 daemon.warn klogd: Reset : 3 / 27 (c497cc00 / e401531c)
Jan  1 00:00:03 imx21 daemon.warn klogd:  
Jan  1 00:00:03 imx21 daemon.warn klogd:
Jan  1 00:00:03 imx21 daemon.warn klogd: Reset : 3 / 27 (c497cc00 / e401531c)
Jan  1 00:00:03 imx21 daemon.warn klogd: Reset : 3 / 27 (c497cc00 / e401531c)
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: p_gpio_init_gpio_status at 1262
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: p_gpio_init_gpio_status at 1262
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: POWER_FAIL signal NOT detected at GPIO driver init carry on !!!  
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: POWER_FAIL signal NOT detected at GPIO driver init carry on !!!
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: CHARGE_IN at init
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: CHARGE_IN at init
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: LOW_BAT_OUT at init
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: LOW_BAT_OUT at init
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: No accessory plugged at init. - Set Video on jack
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: No accessory plugged at init.  - Set Video on jack
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: camera to front at init
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: camera to front at init
Jan  1 00:00:04 imx21 daemon.warn klogd: **ChargeStatusPmb=========gpio_Read_ChargeStatus_Ready=1  
Jan  1 00:00:04 imx21 daemon.warn klogd: **ChargeStatusPmb=========gpio_Read_ChargeStatus_Ready=1
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: PhgOsal_linux_init_thread :assigning thread name and deamonize() ..  
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: PhgOsal_linux_init_thread :assigning thread name and deamonize() ..
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init :Success
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init :Success
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init : registering callbacks with HHAL..  
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init : registering callbacks with HHAL..
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_COMPLETE; setting CARRIER_ON
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_COMPLETE; setting CARRIER_ON
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init :calling PhgHhalQueueMgmtReq()!
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init :calling PhgHhalQueueMgmtReq()!
Jan  1 00:00:06 imx21 daemon.info klogd: PhgHhalQueueMgmtReq:1172:HHAL got Init message
Jan  1 00:00:06 imx21 daemon.info klogd: PhgHhalQueueMgmtReq:1172:HHAL got Init message
Jan  1 00:00:06 imx21 daemon.info klogd: PhgHhalQueueMgmtReq:1217:HHAL done Init message
Jan  1 00:00:06 imx21 daemon.info klogd: PhgHhalQueueMgmtReq:1217:HHAL done Init message
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001002, IFF_UP=0
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001002, IFF_UP=0
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already closed
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already closed
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvMgmtCfmHndler :Using MAC Address: 00:08:c6:86:8b:99
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvMgmtCfmHndler :Using MAC Address: 00:08:c6:86:8b:99
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init :init etherdev; stopping queue, setting CARRIER_OFF
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init :init etherdev; stopping queue, setting CARRIER_OFF
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drv_Init :Philips WLAN Drv - loaded - in state: 1  
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drv_Init :Philips WLAN Drv - loaded - in state: 1
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvInit :Philips WLAN Drv - loaded
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvInit :Philips WLAN Drv - loaded
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :opening net device
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :opening net device
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :Device is not associated!
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :Device is not associated!
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :Carrier flag is already set to CARRIER_OFF
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :Carrier flag is already set to CARRIER_OFF
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :Disabling again netqueue
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :Disabling again netqueue
Jan  1 00:00:07 imx21 daemon.warn klogd: requested reg.domain code setting = 3
Jan  1 00:00:07 imx21 daemon.warn klogd: requested reg.domain code setting = 3
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvIoctl :set u8LinkAdaptation  : 1 Result=[0]
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvIoctl :set u8LinkAdaptation  : 1 Result=[0]
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvIoctl :changed HEOCSIWLNADPALLOWRATES: 8 allowed rate codes
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvIoctl :changed HEOCSIWLNADPALLOWRATES: 8 allowed rate codes
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :Req to connect to new WLAN network
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :Req to connect to new WLAN network
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :Connecting To AP...
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :Connecting To AP...
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :step2
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :step2
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001003, IFF_UP=1
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001003, IFF_UP=1
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already opened; stopping queue
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already opened; stopping queue
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :step3 : u8Status 255
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :step3 : u8Status 255
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :step5
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :step5
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :TIMEDOUT
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :TIMEDOUT
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :step6
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :step6
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitParamsAndPowerOnAndConnect :Connect failed!
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitParamsAndPowerOnAndConnect :Connect failed!
Jan  1 00:00:12 imx21 daemon.warn klogd: Motorola CSI Linux driver ver 0.1
Jan  1 00:00:12 imx21 daemon.warn klogd: Motorola CSI Linux driver ver 0.1
Jan  1 00:00:12 imx21 daemon.warn klogd: - Copyright (C) 2004 Motorola Inc
Jan  1 00:00:12 imx21 daemon.warn klogd:  - Copyright (C) 2004 Motorola Inc
Jan  1 00:00:12 imx21 daemon.warn klogd:  
Jan  1 00:00:12 imx21 daemon.warn klogd:
Jan  1 00:00:12 imx21 daemon.info klogd: Driver SENSOR-1.29 (REFERENCED)
Jan  1 00:00:12 imx21 daemon.info klogd: Driver SENSOR-1.29 (REFERENCED)
Jan  1 00:00:12 imx21 daemon.info klogd: i2c-client version : 1.9
Jan  1 00:00:12 imx21 daemon.info klogd: i2c-client version : 1.9
Jan  1 00:00:12 imx21 daemon.info klogd: Initialize i2c-client-aic14 module
Jan  1 00:00:12 imx21 daemon.info klogd: Initialize i2c-client-aic14 module
Jan  1 00:00:12 imx21 daemon.info klogd: Module i2c-client-aic14 initialized
Jan  1 00:00:12 imx21 daemon.info klogd: Module i2c-client-aic14 initialized
Jan  1 00:00:12 imx21 daemon.alert klogd: Insert module aic14 (AIC14-1.0)
Jan  1 00:00:12 imx21 daemon.alert klogd: Insert module aic14 (AIC14-1.0)
Jan  1 00:00:12 imx21 daemon.warn klogd: Module AIC14 assumes CODEC MCLK already configured for 20480000Hz
Jan  1 00:00:12 imx21 daemon.warn klogd: Module AIC14 assumes CODEC MCLK already configured for 20480000Hz
Jan  1 00:00:12 imx21 daemon.info klogd: Driver KPP-1.36 (REFERENCED)
Jan  1 00:00:12 imx21 daemon.info klogd: Driver KPP-1.36 (REFERENCED)
Jan  1 00:00:13 imx21 daemon.info klogd: Driver DOZE-1.27 (REFERENCED)
Jan  1 00:00:13 imx21 daemon.info klogd: Driver DOZE-1.27 (REFERENCED)
Jan  1 00:00:14 imx21 daemon.err klogd: SPI2:: drvDoScan :Buero (bittorf)
Jan  1 00:00:14 imx21 daemon.err klogd: SPI2:: drvDoScan :Buero (bittorf)
Jan  1 00:00:15 imx21 daemon.err klogd: SPI2:: drvProcessScanCfm :Scan Confirm: Success 1 APs
Jan  1 00:00:15 imx21 daemon.err klogd: SPI2:: drvProcessScanCfm :Scan Confirm: Success 1 APs
Jan  1 00:00:15 imx21 daemon.info netsyncd[315]: creating FIFO_NETSYNC_HMON_NAME...  
Jan  1 00:00:15 imx21 daemon.info netsyncd[315]: creating FIFO_NETSYNC_HMON_NAME...
Jan  1 00:00:15 imx21 daemon.info netsyncd[315]: creating FIFO_HMON_NETSYNC_NAME...  
Jan  1 00:00:15 imx21 daemon.info netsyncd[315]: creating FIFO_HMON_NETSYNC_NAME...
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :Req to connect to new WLAN network
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :Req to connect to new WLAN network
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :Connecting To AP...
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :Connecting To AP...
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :step2
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :step2
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_CONNECT; setting CARRIER_ON
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_CONNECT; setting CARRIER_ON
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001003, IFF_UP=1
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001003, IFF_UP=1
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already opened; enabling queue
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already opened; enabling queue
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :step3 : u8Status 8
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :step3 : u8Status 8
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :step4
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :step4
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :Successful
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :Successful
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :step6
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :step6
Jan  1 00:00:19 imx21 daemon.err modprobe: modprobe: Can't locate module sound-slot-0
Jan  1 00:00:19 imx21 daemon.err modprobe: modprobe: Can't locate module sound-slot-0
Jan  1 00:00:19 imx21 daemon.err modprobe: modprobe: Can't locate module sound-service-0-0
Jan  1 00:00:19 imx21 daemon.err modprobe: modprobe: Can't locate module sound-service-0-0
Jan  1 00:00:20 imx21 local0.debug dhcpcd[337]: broadcasting DHCP_DISCOVER  
Jan  1 00:00:20 imx21 local0.debug dhcpcd[337]: broadcasting DHCP_DISCOVER
Jan  1 00:00:23 imx21 local0.debug dhcpcd[337]: DHCP_OFFER received from  (10.63.17.1)  
Jan  1 00:00:23 imx21 local0.debug dhcpcd[337]: DHCP_OFFER received from  (10.63.17.1)
Jan  1 00:00:23 imx21 local0.debug dhcpcd[337]: DHCP_ACK received from  (10.63.17.1)  
Jan  1 00:00:23 imx21 local0.debug dhcpcd[337]: DHCP_ACK received from  (10.63.17.1)
Jan  1 00:00:23 imx21 daemon.err netsyncd[314]: father received(10) eth0 up!  
Jan  1 00:00:23 imx21 daemon.err netsyncd[314]: father received(10) eth0 up!
Jan  1 00:00:23 imx21 daemon.info netsyncd[314]: Dhcp_start 337 return : 0
Jan  1 00:00:23 imx21 daemon.info netsyncd[314]: Dhcp_start 337 return : 0  
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :No state change!
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :No state change!
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :Fast PS Request
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :Fast PS Request
Jan  1 00:00:26 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P1
Jan  1 00:00:26 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P1
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Jan  1 00:00:28 imx21 daemon.info netsyncd[314]: Dhcp_stop 359 return : 0
Jan  1 00:00:28 imx21 daemon.info netsyncd[314]: Dhcp_stop 359 return : 0  
Jan  1 00:00:28 imx21 local0.debug dhcpcd[347]: sending DHCP_RELEASE for 10.63.17.5 to 10.63.17.1  
Jan  1 00:00:28 imx21 local0.debug dhcpcd[347]: sending DHCP_RELEASE for 10.63.17.5 to 10.63.17.1
Jan  1 00:00:29 imx21 local0.err dhcpcd[347]: terminating on signal 1  
Jan  1 00:00:29 imx21 local0.err dhcpcd[347]: terminating on signal 1
Jan  1 00:00:29 imx21 daemon.err netsyncd[314]: father received(12) eth0 down!  
Jan  1 00:00:29 imx21 daemon.err netsyncd[314]: father received(12) eth0 down!
Jan  1 00:00:29 imx21 daemon.err klogd: SPI2:: drvStop :Driver Stop: disable TX queue! (usage: 2)
Jan  1 00:00:29 imx21 daemon.err klogd: SPI2:: drvStop :Driver Stop: disable TX queue! (usage: 2)
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvIoctl :Deauth BSSID: 00:1d:7e:18:e3:89
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvIoctl :Deauth BSSID: 00:1d:7e:18:e3:89
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00000002, IFF_UP=0
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00000002, IFF_UP=0
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already closed
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already closed
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvOpen :opening net device
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvOpen :opening net device
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvOpen :ERROR: Associated, but Carrier flag is set to CARRIER_OFF
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvOpen :ERROR: Associated, but Carrier flag is set to CARRIER_OFF
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvDoScan :Buero (bittorf)
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvDoScan :Buero (bittorf)
Jan  1 00:00:42 imx21 daemon.err klogd: SPI2:: drvProcessScanCfm :Scan Confirm: Success 1 APs
Jan  1 00:00:42 imx21 daemon.err klogd: SPI2:: drvProcessScanCfm :Scan Confirm: Success 1 APs
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :Req to connect to new WLAN network
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :Req to connect to new WLAN network
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :Connecting To AP...
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :Connecting To AP...
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :step2
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :step2
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_CONNECT; setting CARRIER_ON
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_CONNECT; setting CARRIER_ON
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00000003, IFF_UP=1
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00000003, IFF_UP=1
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already opened; enabling queue
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already opened; enabling queue
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :step3 : u8Status 8
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :step3 : u8Status 8
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :step4
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :step4
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :Successful
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :Successful
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :step6
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :step6
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Jan  1 00:00:54 imx21 local0.debug dhcpcd[386]: broadcasting DHCP_DISCOVER  
Jan  1 00:00:54 imx21 local0.debug dhcpcd[386]: broadcasting DHCP_DISCOVER
Jan  1 00:00:57 imx21 local0.debug dhcpcd[386]: DHCP_OFFER received from  (10.63.17.1)  
Jan  1 00:00:57 imx21 local0.debug dhcpcd[386]: DHCP_OFFER received from  (10.63.17.1)
Jan  1 00:00:57 imx21 local0.debug dhcpcd[386]: DHCP_ACK received from  (10.63.17.1)  
Jan  1 00:00:57 imx21 local0.debug dhcpcd[386]: DHCP_ACK received from  (10.63.17.1)
Jan  1 00:00:57 imx21 daemon.info netsyncd[314]: Dhcp_start 386 return : 0
Jan  1 00:00:57 imx21 daemon.info netsyncd[314]: Dhcp_start 386 return : 0  
Jan  1 00:00:57 imx21 daemon.info netsyncd[314]: NTP server request on : ntp.xs4all.nl  
Jan  1 00:00:57 imx21 daemon.info netsyncd[314]: NTP server request on : ntp.xs4all.nl
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Jan  1 00:00:57 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P0
Jan  1 00:00:57 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P0
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
Jan  1 00:00:57 imx21 daemon.warn klogd: drvSetWOWFilter: Enable UNICAST: Disable ARP: Enable
Jan  1 00:00:57 imx21 daemon.warn klogd: drvSetWOWFilter: Enable UNICAST: Disable ARP: Enable
Jan  1 00:00:57 imx21 daemon.warn klogd: Ip addr = 10.63.17.5. LMP=2
Jan  1 00:00:57 imx21 daemon.warn klogd: Ip addr = 10.63.17.5. LMP=2
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :No state change!
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :No state change!
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :Fast PS Request
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :Fast PS Request
Jan  1 00:00:57 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P1
Jan  1 00:00:57 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P1
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Jan  1 00:00:57 imx21 daemon.warn klogd: Sensor driver: initialize device OV7660
Jan  1 00:00:57 imx21 daemon.warn klogd: Sensor driver: initialize device OV7660
Jan  1 00:00:57 imx21 daemon.warn klogd: Warning: Remapping obsolete /dev/fb* minor 32 to 1
Jan  1 00:00:57 imx21 daemon.warn klogd: Warning: Remapping obsolete /dev/fb* minor 32 to 1
Apr  7 09:58:16 imx21 daemon.info netsyncd[314]: NTP process return code : 0
Apr  7 09:58:16 imx21 daemon.info netsyncd[314]: NTP process return code : 0  
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Apr  7 09:58:19 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P0
Apr  7 09:58:19 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P0
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
Apr  7 09:58:19 imx21 daemon.info upgraded[312]: K_SW0_DWNLD_ACK  
Apr  7 09:58:19 imx21 daemon.info upgraded[312]: K_SW0_DWNLD_ACK
Apr  7 09:58:27 imx21 auth.info login[393]: root login  on `ttyp0' from `bittorf-AP.olsr'  
Apr  7 09:58:27 imx21 auth.info login[393]: root login  on `ttyp0' from `bittorf-AP.olsr'
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :No state change!
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :No state change!
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :Fast PS Request
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :Fast PS Request
Apr  7 09:59:50 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P1
Apr  7 09:59:50 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P1
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Apr  7 10:14:53 imx21 auth.info login[408]: root login  on `ttyp1' from `bittorf-AP.olsr'  
Apr  7 10:14:53 imx21 auth.info login[408]: root login  on `ttyp1' from `bittorf-AP.olsr'
Apr  7 10:17:18 imx21 syslog.info -- MARK --
Apr  7 10:17:18 imx21 syslog.info -- MARK --
</pre>
</pre>
 
 
=== Ausgabe von <b><tt>/proc/cpuinfo</tt></b> auf einem VP6500 ===
=== Ausgabe von <b><tt>/proc/cpuinfo</tt></b> auf einem VP6500 ===
<pre>
<pre>
# cat /proc/cpuinfo  
# cat /proc/cpuinfo
Processor      : ARM926EJ-Sid(wb) rev 4 (v5EJl)
Processor      : ARM926EJ-Sid(wb) rev 4 (v5EJl)
BogoMIPS        : 133.01
BogoMIPS        : 133.01
Features        : swp half thumb fastmult  
Features        : swp half thumb fastmult
CPU implementer : 0x41
CPU implementer : 0x41
CPU architecture: ?(8)
CPU architecture: ?(8)
CPU variant    : 0x0
CPU variant    : 0x0
CPU part        : 0x926
CPU part        : 0x926
CPU revision    : 4
CPU revision    : 4
Cache type      : undefined 14
Cache type      : undefined 14
Cache clean    : undefined 14
Cache clean    : undefined 14
Cache lockdown  : undefined 14
Cache lockdown  : undefined 14
Cache unified  : Harvard
Cache unified  : Harvard
I size          : 16384
I size          : 16384
I assoc        : 4
I assoc        : 4
I line length  : 32
I line length  : 32
I sets          : 128
I sets          : 128
D size          : 16384
D size          : 16384
D assoc        : 4
D assoc        : 4
D line length  : 32
D line length  : 32
D sets          : 128
D sets          : 128
 
 
Hardware        : Freescale i.MX2 ADS
Hardware        : Freescale i.MX2 ADS
Revision        : 0000
Revision        : 0000
Serial          : 0000000000000000
Serial          : 0000000000000000
 
 
</pre>
</pre>
 
 
== Software Modifikationen ==
== Software Modifikationen ==
 
 
=== Startscripts ===
=== Startscripts ===
Die Scripts in /etc/rc.d/" müssen im Hintergrund laufen. Tut ein Script das nicht, ist an dieser Stelle Schluß mit dem Bootvorgang.
Die Scripts in /etc/rc.d/" müssen im Hintergrund laufen. Tut ein Script das nicht, ist an dieser Stelle Schluß mit dem Bootvorgang.
 
 
Dann darf man als nächstes den Lötkolben anheizen und die serielle Schnittstelle ([[#UART]]) zugänglich machen.
Dann darf man als nächstes den Lötkolben anheizen und die serielle Schnittstelle ([[#UART]]) zugänglich machen.
 
 
=== Aktivierung WPA2 Unterstützung ===
=== Aktivierung WPA2 Unterstützung ===
<p>Standardmäßig kann das Telefon nur WPA, dabei unterstützt es allerdings auch <b>WPA mit AES</b> Verschlüsselung.</p>
<p>Standardmäßig kann das Telefon nur WPA, dabei unterstützt es allerdings auch <b>WPA mit AES</b> Verschlüsselung.</p>
<p>Es gibt zwei verschiedene Tricks mit denen auch WPA2 aktiviert werden kann.
<p>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).</p>
Allerdings wurde von einigen ein Einbruch der Verbindungsgeschwindigkeit festgestellt (scheint jedoch nur bei geringem Akkuladestand aufzutreten).</p>
 
 
==== Trick1 ====
==== Trick1 ====
Mittels
Mittels
vi /etc/marvell/wpa_supplicant.conf
vi /etc/marvell/wpa_supplicant.conf
den Texteditor starten.
den Texteditor starten.
Mit PageDown (Bild runter) bis zum Ende des Files gehen.
Mit PageDown (Bild runter) bis zum Ende des Files gehen.
Die Zeilen  
Die Zeilen
proto=WPA
proto=WPA
pairwise=TKIP
pairwise=TKIP
group=TKIP
group=TKIP
auskommentieren, indem ein # vorangestellt wird:
auskommentieren, indem ein # vorangestellt wird:
* cursor auf Beginn einer Zeile  
* cursor auf Beginn einer Zeile
* i drücken zum Einfügen
* i drücken zum Einfügen
* # eintippen
* # eintippen
* [Esc]
* [Esc]
Sind alle Zeilen auskommentiert, dann mittels
Sind alle Zeilen auskommentiert, dann mittels
:wq[enter]
:wq[enter]
abspeichern und Editor verlassen.
abspeichern und Editor verlassen.
 
 
Danach neu booten.
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)
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.
Also am Accesspoint WPA2 + WPA einstellen, Telefon registrieren, dann Accesspoint auf WPA2 konfigurieren.
 
 
<u>'''Achtung!'''</u>
<u>'''Achtung!'''</u>
 
 
'''Das Herumspielen an der wpa_supplicant.conf endet sehr schnell damit das man sich ausperrt'''
'''Das Herumspielen an der wpa_supplicant.conf endet sehr schnell damit das man sich ausperrt'''
 
 
'''Um sich eine Wiederbelebung per serieller Konsole zu ersparen, ist es günstig, immer nur Einträge an die wpa_supplicant.conf <u>hinten anzuhängen</u>, niemals aber vorne einzufügen!'''
'''Um sich eine Wiederbelebung per serieller Konsole zu ersparen, ist es günstig, immer nur Einträge an die wpa_supplicant.conf <u>hinten anzuhängen</u>, niemals aber vorne einzufügen!'''
 
 
==== Trick2 ====
==== 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).
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.
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.
 
 
==== Versehentliche Aussperrung nach WPA2 Einstellversuch beheben ====
==== Versehentliche Aussperrung nach WPA2 Einstellversuch beheben ====
 
 
'''1. DON'T PANIC!'''
'''1. DON'T PANIC!'''
 
 
Für den Fall das man sich den Zugangsweg per wireless abgeschnitten hat, gibt es, neben dem Bau eines seriellen Adapters und der Notwendigkeit zu löten, noch eine Variante um wieder auf das Telefon zu kommen:
Für den Fall das man sich den Zugangsweg per wireless abgeschnitten hat, gibt es, neben dem Bau eines seriellen Adapters und der Notwendigkeit zu löten, noch eine Variante um wieder auf das Telefon zu kommen:
 
 
'''den Demo-Modus!'''
'''den Demo-Modus!'''
 
 
Dieser Modus war dazu gedacht die Funktionalität der VPs ohne SIP-Server ausprobieren zu können. 2 Geräte starten dazu im WLAN-AdHoc-Modus mit unterschiedlichen IP's (192.168.10.1 + 192.168.10.2 , jeweils /24 = 255.255.255.0) und machen ein IBSS-Netzwerk mit WEP-Verschlüsselung auf (Key: VP6500 = 5648751265 beim VP5500 = 7295569793).
Dieser Modus war dazu gedacht die Funktionalität der VPs ohne SIP-Server ausprobieren zu können. 2 Geräte starten dazu im WLAN-AdHoc-Modus mit unterschiedlichen IP's (192.168.10.1 + 192.168.10.2 , jeweils /24 = 255.255.255.0) und machen ein IBSS-Netzwerk mit WEP-Verschlüsselung auf (Key: VP6500 = 5648751265 beim VP5500 = 7295569793).
 
 
Nun kann man auch ein einzelnes Telefon in den Demo-Modus versetzen (vorhandener neuer Menüeintrag nach dem rooten, oder per Tastenkombination "*#3 "), gibt sich eine passende WLAN und IP-Einstellungen auf dem Rechner und schon kann man wieder darauf connecten und Fehleinstellungen wieder beheben. Dummerweise wird eine zufällige IBSS-Cell-ID verwendet, aber neuere Betriebssysteme können der Zelle trotzdem beitreten. Als ESSID kann man ''demo_mode_obiwan'' verwenden.
Nun kann man auch ein einzelnes Telefon in den Demo-Modus versetzen (vorhandener neuer Menüeintrag nach dem rooten, oder per Tastenkombination "*#3 "), gibt sich eine passende WLAN und IP-Einstellungen auf dem Rechner und schon kann man wieder darauf connecten und Fehleinstellungen wieder beheben. Dummerweise wird eine zufällige IBSS-Cell-ID verwendet, aber neuere Betriebssysteme können der Zelle trotzdem beitreten. Als ESSID kann man ''demo_mode_obiwan'' verwenden.
 
 
===== Schritt für Schritt Anleitung für Linux =====
===== Schritt für Schritt Anleitung für Linux =====
 
 
Einstellungen
Einstellungen
 
 
'''am Telefon'''
'''am Telefon'''
* Telefon anschalten und per Menüeintrag oder Tastenkombination "*#3" in Demomodus versetzen (z.B. als Einstellung Handset 1)
* Telefon anschalten und per Menüeintrag oder Tastenkombination "*#3" in Demomodus versetzen (z.B. als Einstellung Handset 1)
-> IP des Telefons wird danach zu 192.168.10.1
-> IP des Telefons wird danach zu 192.168.10.1
 
 
'''am Computer'''
'''am Computer'''
* Konsole öffnen
* Konsole öffnen
per ifconfig checken welches das WLAN-Gerät am Rechner ist (im weiteren "wlan0" genannt)
per ifconfig checken welches das WLAN-Gerät am Rechner ist (im weiteren "wlan0" genannt)
ifconfig wlan0 down
ifconfig wlan0 down
iwconfig wlan0 mode ad-hoc (ad-hoc Modus aktivieren)
iwconfig wlan0 mode ad-hoc (ad-hoc Modus aktivieren)
iwconfig wlan0 essid 'demo_mode_obiwan' (Passende essid-Kennung setzen)
iwconfig wlan0 essid 'demo_mode_obiwan' (Passende essid-Kennung setzen)
iwconfig wlan0 key 5648751265 (Key für das VP6500)
iwconfig wlan0 key 5648751265 (Key für das VP6500)
ifconfig wlan0 up
ifconfig wlan0 up
ifconfig wlan0 192.168.10.2 (setzen der IP)
ifconfig wlan0 192.168.10.2 (setzen der IP)
 
 
man kann nun mittels:
man kann nun mittels:
 
 
ping 192.168.10.1
ping 192.168.10.1
 
 
testen ob alles korrekt verlaufen ist und man eine Antwort bekommt - sollte das der Fall sein ist man '''fertig!'''
testen ob alles korrekt verlaufen ist und man eine Antwort bekommt - sollte das der Fall sein ist man '''fertig!'''
 
 
Nun kann man per telnet oder ssh, mit den üblichen Benutzerkennung und dem Passwort, auf die IP 192.168.10.1 connecten und die Probleme beheben.
Nun kann man per telnet oder ssh, mit den üblichen Benutzerkennung und dem Passwort, auf die IP 192.168.10.1 connecten und die Probleme beheben.
 
 
=== Menüs ===
=== Menüs ===
==== Hauptmenu ====
==== Hauptmenu ====
 
 
Das File  
Das File
/usr/local/etc/defaultbuttons.conf
/usr/local/etc/defaultbuttons.conf
enthält unter anderm die definition des Hauptmenus.
enthält unter anderm die definition des Hauptmenus.
 
 
Hierfür ist der Abschnitt Menu besonders interessant.
Hierfür ist der Abschnitt Menu besonders interessant.
  [Menu]
  [Menu]
  1 = Applications/camera.desktop
  1 = Applications/camera.desktop
  2 = Applications/callhistory.desktop
  2 = Applications/callhistory.desktop
  3 = Applications
  3 = Applications
  4 = Settings
  4 = Settings
  5 = Applications/addressbook.desktop
  5 = Applications/addressbook.desktop
  6 = Settings/RingProfiles.desktop
  6 = Settings/RingProfiles.desktop
  Columns = 3
  Columns = 3
  Default = 5
  Default = 5
  Map = 123456789*0#
  Map = 123456789*0#
  Rows = 2
  Rows = 2
 
 
'Rows' und 'Columns' geben an, wieviel Reihen und Spalten das Hauptmenu hat.
'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.
Ü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  
Die Menupunkte sind definiert in den Verzeichnissen unter
/usr/local/apps
/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.
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
direkte Menupunkte haben Dateinamen mit der Endung .desktop
'Default' bestimmten vorselektierten Eintrag.
'Default' bestimmten vorselektierten Eintrag.
 
 
Hier ein weiteres Beispiel für ein angepasstes Menu:
Hier ein weiteres Beispiel für ein angepasstes Menu:
  [Menu]
  [Menu]
  1 = Applications/addressbook.desktop
  1 = Applications/addressbook.desktop
  2 = Applications/callhistory.desktop
  2 = Applications/callhistory.desktop
  3 = Applications/sysinfo.desktop
  3 = Applications/sysinfo.desktop
  4 = Applications
  4 = Applications
  5 = Settings
  5 = Settings
  6 = Games
  6 = Games
  7 = Applications/camera.desktop
  7 = Applications/camera.desktop
  8 = Applications/photoedit.desktop
  8 = Applications/photoedit.desktop
  9 = Applications/manualsub.desktop
  9 = Applications/manualsub.desktop
  Columns = 3
  Columns = 3
  Default = 5
  Default = 5
  Map = 123456789*0#
  Map = 123456789*0#
  Rows = 3
  Rows = 3
 
 
Der Ordner Games ist (momentan ;) leer.
Der Ordner Games ist (momentan ;) leer.
 
 
==== Genereller Aufbau Menü-Einträge ====
==== Genereller Aufbau Menü-Einträge ====
Die Einträge für die Menüs sind im Filesystem abgelegt:
Die Einträge für die Menüs sind im Filesystem abgelegt:
 
 
* Settings: /usr/local/apps/Settings
* Settings: /usr/local/apps/Settings
* Applications: /usr/local/apps/Applications
* Applications: /usr/local/apps/Applications
* Klingeltöne: /usr/local/etc/SystemRingTones/
* Klingeltöne: /usr/local/etc/SystemRingTones/
 
 
Die Dateien haben die Endung ".desktop" und sind normale Textdateien, die die relevanten Infos enthalten.
Die Dateien haben die Endung ".desktop" und sind normale Textdateien, die die relevanten Infos enthalten.
 
 
Ein Beispiel aus dem Settingsordner:
Ein Beispiel aus dem Settingsordner:
  [Translation]
  [Translation]
  File=QtopiaSettings
  File=QtopiaSettings
  Context=Sound
  Context=Sound
  [Desktop Entry]
  [Desktop Entry]
  Type=Application
  Type=Application
  Exec=sound
  Exec=sound
  Icon=Sound
  Icon=Sound
  Name[]=Sound
  Name[]=Sound
  CanFastload=0
  CanFastload=0
 
 
Der Abschnitt 'Translation' gibt an in welchem File, die Lokalisationsdaten stehen.
Der Abschnitt 'Translation' gibt an in welchem File, die Lokalisationsdaten stehen.
 
 
Der Abschnitt 'Desktop Entry':
Der Abschnitt 'Desktop Entry':
* Type: Typ des Eintrages  
* Type: Typ des Eintrages
** Application für Anwendungen
** Application für Anwendungen
** audio/x-wav für Klingeltöne
** audio/x-wav für Klingeltöne
* Exec: Anwendung, die ausgeführt werden soll
* Exec: Anwendung, die ausgeführt werden soll
* Icon: Icon, das im Menü benutzt wird.  
* Icon: Icon, das im Menü benutzt wird.
** Pfad ist meist: /usr/local/pics/[Exex]/[Icon].png
** Pfad ist meist: /usr/local/pics/[Exex]/[Icon].png
** manchmal aber auch: /usr/local/pics/icons/[14x14|16x16|22x22]/[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
* 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: [[File:alleDesktopFiles.txt]]
Hier ein Textfile mit allen desktop-Files als Referenz: [[File:alleDesktopFiles.txt]]
 
 
==== Versteckte Menüeinträge ====
==== Versteckte Menüeinträge ====
in den oben genannten Ordnern existieren ein paar Dateien mit der Endung '.desktopMASK'.
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ü freigeschaltet.
Benennt man diese um, werden die Einträge nach einem Neustart im Menü freigeschaltet.
 
 
folgendes an der Kommandozeile eingeben:
folgendes an der Kommandozeile eingeben:
cd /usr/local/apps/Settings
cd /usr/local/apps/Settings
mv datetime.desktopMASK datetime.desktop
mv datetime.desktopMASK datetime.desktop
mv callforward.desktopMASK callforward.desktop
mv callforward.desktopMASK callforward.desktop
mv calloptions.desktopMASK calloptions.desktop
mv calloptions.desktopMASK calloptions.desktop
mv resetparam.desktopMASK resetparam.desktop
mv resetparam.desktopMASK resetparam.desktop
mv subkpncode.desktopMASK subkpncode.desktop
mv subkpncode.desktopMASK subkpncode.desktop
 
 
Dies aktiviert folgende Optionen:
Dies aktiviert folgende Optionen:
* Datums/Zeit-Einstellung
* Datums/Zeit-Einstellung
Zeile 1.754: Zeile 1.794:
* Parameter zurücksetzen
* Parameter zurücksetzen
* Number Switch
* Number Switch
 
 
 
 
Die nützlichsten sind wohl die ersten Einträge.
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.
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 [[File:demomode.desktop]] anlegen.
Weiterhin kann im Verzeichnis /usr/local/apps/Applications eine [[File:demomode.desktop]] anlegen.
 
 
Hierfür ist folgende Prozedur nötig:
Hierfür ist folgende Prozedur nötig:
* im Terminal
* im Terminal
                cd /usr/local/apps/Applications
                cd /usr/local/apps/Applications
                vi demomode.desktop
                vi demomode.desktop
 
 
* i drücken  
* i drücken
* folgendes Textfragment einfügen  
* folgendes Textfragment einfügen
                [Translation]
                [Translation]
                File=QtopiaApplications
                File=QtopiaApplications
                Context=DemoMode
                Context=DemoMode
                [Desktop Entry]
                [Desktop Entry]
                Exec=demomode
                Exec=demomode
                Icon=Camera
                Icon=Camera
                Type=Application
                Type=Application
                Name[]=DemoMode
                Name[]=DemoMode
* [Esc]  
* [Esc]
* :wq [Enter]  
* :wq [Enter]
 
 
Dies schaltet einen Demo-Modus frei.
Dies schaltet einen Demo-Modus frei.
 
 
===== Französisch =====
===== Französisch =====
Es gab die Geräte wohl auch in Frankreich von der France Telekom.
Es gab die Geräte wohl auch in Frankreich von der France Telekom.
Zeile 1.788: Zeile 1.828:
Sprachdateien, die zwar auf dem Gerät sind, allerdings in einem
Sprachdateien, die zwar auf dem Gerät sind, allerdings in einem
Unterverzeichnis, so das sie nicht auswählbar sind.
Unterverzeichnis, so das sie nicht auswählbar sind.
 
 
Um diese Dateien zu aktivieren:
Um diese Dateien zu aktivieren:
 
 
cd /usr/local/i18n
cd /usr/local/i18n
mv NOTUSED/fr .
mv NOTUSED/fr .
 
 
Nun ist auch noch französisch als Sprache verfügbar.
Nun ist auch noch französisch als Sprache verfügbar.
 
 
==== Eigene Menüeinträge ====
==== Eigene Menüeinträge ====
 
 
Es besteht die Möglichkeit Menüeinträge anzulegen, durch die Shellskripte ausgeführt werden. Im Folgenden ist dieses Vorgehen am Beispiel des ein- und ausschaltens von SSH beschrieben.
Es besteht die Möglichkeit Menüeinträge anzulegen, durch die Shellskripte ausgeführt werden. Im Folgenden ist dieses Vorgehen am Beispiel des ein- und ausschaltens von SSH beschrieben.
 
 
===== SSH aktivieren & deaktivieren =====
===== SSH aktivieren & deaktivieren =====
 
 
*'''Achtung! Folgendes Vorgehen kann das Gerät bricken, falls Telnet deaktiviert ist und irgendwas mit SSH schief läuft!'''
*'''Achtung! Folgendes Vorgehen kann das Gerät bricken, falls Telnet deaktiviert ist und irgendwas mit SSH schief läuft!'''
*Die folgenden beiden Dateien repräsentieren die Menüeinträge und rufen ''enablessh'' bzw. ''disablessh'' auf.
*Die folgenden beiden Dateien repräsentieren die Menüeinträge und rufen ''enablessh'' bzw. ''disablessh'' auf.
:*''/usr/local/apps/Applications/enablessh.desktop'':
:*''/usr/local/apps/Applications/enablessh.desktop'':
[Translation]
[Translation]
File=QtopiaApplications
File=QtopiaApplications
Context=enablessh
Context=enablessh
[Desktop Entry]
[Desktop Entry]
Exec=enablessh
Exec=enablessh
Icon=Camera
Icon=Camera
Type=Application
Type=Application
Name[]=Enable SSH
Name[]=Enable SSH
:*''/usr/local/apps/Applications/disablessh.desktop'':
:*''/usr/local/apps/Applications/disablessh.desktop'':
[Translation]
[Translation]
File=QtopiaApplications
File=QtopiaApplications
Context=disablessh
Context=disablessh
[Desktop Entry]
[Desktop Entry]
Exec=disablessh
Exec=disablessh
Icon=Camera
Icon=Camera
Type=Application
Type=Application
Name[]=Disable SSH
Name[]=Disable SSH
*''enablessh'' und ''disablessh'' sind Shellskripte, die in ''/usr/local/bin/'' liegen und folgendes enthalten:
*''enablessh'' und ''disablessh'' sind Shellskripte, die in ''/usr/local/bin/'' liegen und folgendes enthalten:
:*''/usr/local/bin/enablessh'':
:*''/usr/local/bin/enablessh'':
#!/bin/sh
#!/bin/sh
touch /var/log/lastlog
touch /var/log/lastlog
/etc/rc.d/init.d/S99dropbear restart
/etc/rc.d/init.d/S99dropbear restart
exit(0)
exit(0)
:*''/usr/local/bin/disablessh'':
:*''/usr/local/bin/disablessh'':
#!/bin/sh
#!/bin/sh
/etc/rc.d/init.d/S99dropbear stop
/etc/rc.d/init.d/S99dropbear stop
exit(0)
exit(0)
*Nach einem Neustart des Telefons sollten im Menü ''Anwendungen'' die zwei neuen Menüpunkte auftauchen.
*Nach einem Neustart des Telefons sollten im Menü ''Anwendungen'' die zwei neuen Menüpunkte auftauchen.
 
 
=== Grafische Anpassungen ===
=== Grafische Anpassungen ===
So gut wie alle Grafiken liegen im Verzeichnis /usr/local/pics und können beliebig ausgetauscht werden (gleicher Dateityp, gleiche Größe).
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:
Einige besonders interessante werden hier aufgeführt:
 
 
===== Eigene Startup/Shutdown-Animation =====
===== Eigene Startup/Shutdown-Animation =====
 
 
Die Animation beim Starten oder Herunterfahren sind normale (animierte) GIFs. Diese findet man in
Die Animation beim Starten oder Herunterfahren sind normale (animierte) GIFs. Diese findet man in
 
 
/usr/local/pics/qpe
/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").
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
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
splash.gif entsprechend neu verlinken. Dazu löscht man zuerst die alte
mit:
mit:
 
 
rm /usr/local/pics/qpe/splash.gif
rm /usr/local/pics/qpe/splash.gif
 
 
Anschliessend erzeugt man den Link neu, dabei zeigt er dann auf die
Anschliessend erzeugt man den Link neu, dabei zeigt er dann auf die
eigene Datei:
eigene Datei:
 
 
ln -s /pfad/zur/eigenedatei.gif /usr/local/pics/qpe/splash.gif
ln -s /pfad/zur/eigenedatei.gif /usr/local/pics/qpe/splash.gif
 
 
Danach wird dann bei jedem Neustart die eigene Animation angezeigt.
Danach wird dann bei jedem Neustart die eigene Animation angezeigt.
Analog hierzu mit der goodbye.gif.
Analog hierzu mit der goodbye.gif.
 
 
 
 
Also, man packe das Bild auf einen Webserver. Dann am Gerät über telnet
Also, man packe das Bild auf einen Webserver. Dann am Gerät über telnet
anmelden und:
anmelden und:
 
 
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
cd /usr/local/pics/qpe/
cd /usr/local/pics/qpe/
Zeile 1.870: Zeile 1.910:
ln -s Matrix5.gif splash.gif
ln -s Matrix5.gif splash.gif
</syntaxhighlight>
</syntaxhighlight>
 
 
Die GIF Animation kann bis zu 176x220 Pixel groß sein.
Die GIF Animation kann bis zu 176x220 Pixel groß sein.
Kleinere (möglicherweise auch größere) Bilder werden zentriert.
Kleinere (möglicherweise auch größere) Bilder werden zentriert.
Zeile 1.887: Zeile 1.927:
Bild:qtopia0.gif
Bild:qtopia0.gif
</gallery>
</gallery>
 
 
===== Eigener Boot/Update-Screen =====
===== Eigener Boot/Update-Screen =====
 
 
Der Boot-Screen, oder der Update-Screen liegen als Rohdaten vor.
Der Boot-Screen, oder der Update-Screen liegen als Rohdaten vor.
/user_data/data/welcome.rgb565
/user_data/data/welcome.rgb565
/usr/local/startup_V4.20/update.bin
/usr/local/startup_V4.20/update.bin
 
 
Weitere Beispielbilder:
Weitere Beispielbilder:
/user_data/prod/data/lcd_test_card1.bin
/user_data/prod/data/lcd_test_card1.bin
/user_data/prod/data/lcd_test_card2.bin
/user_data/prod/data/lcd_test_card2.bin
 
 
Diese werden direkt in den Framebuffer geschrieben.
Diese werden direkt in den Framebuffer geschrieben.
Daher müssen sich diese genau ein bestimmtes Format halten:  
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)
* Größe 240 x 220 (Das Display ist 176 x 220, der Rest ist also nicht zu sehen)
* 16bit pro Pixel RGB565
* 16bit pro Pixel RGB565
 
 
Um solch ein Bild zu erstellen sind folgende Schritte notwendig:
Um solch ein Bild zu erstellen sind folgende Schritte notwendig:
# Ein Bild in Gimp mit 176x220 erstellen
# Ein Bild in Gimp mit 176x220 erstellen
Zeile 1.910: Zeile 1.950:
# Als Windowsbitmap -> erweiterete Optionen -> 16bit R5G6B5
# Als Windowsbitmap -> erweiterete Optionen -> 16bit R5G6B5
# BMP-Header entfernen (dies kann auch auf dem Telefon gemacht werden)
# BMP-Header entfernen (dies kann auch auf dem Telefon gemacht werden)
        tail -c 105600 input.bmp > output.raw
        tail -c 105600 input.bmp > output.raw
 
 
 
 
Von der Kommandozeile kann auch manuell das Bild in den Framebuffer geschrieben werden.
Von der Kommandozeile kann auch manuell das Bild in den Framebuffer geschrieben werden.
cat /user_data/prod/data/lcd_test_card1.bin > /dev/fb0
cat /user_data/prod/data/lcd_test_card1.bin > /dev/fb0
 
 
=== Wichtige Verzeichnisse ===
=== Wichtige Verzeichnisse ===
 
 
==== Adressdaten ====
==== Adressdaten ====
<syntaxhighlight lang="xml">


# cat /user_data/home/Applications/addressbook/addressbook.xml  
# 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>


  <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE Addressbook ><AddressBook>
</syntaxhighlight>
  <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.
UID ist wohl egal, solange sie nicht zweimal vorkommen.
 
Die Beschränkung auf 500 Adressbucheinträge kann man auch aufheben:
<pre>maxEntries = 500</pre> in der <pre>Contacts.conf</pre>


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:
Die Kategorien stehen in <pre>/user_settings/Categories.xml</pre>:
 
  <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE CategoryList>
  <Categories>
    <Category id="-1269431263" name="_Personal" />
    <Category id="-1269431262" name="_Business" />
  </Categories>


<syntaxhighlight lang="xml">
  <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE CategoryList>
  <Categories>
    <Category id="-1269431263" name="_Personal" />
    <Category id="-1269431262" name="_Business" />
  </Categories>
</syntaxhighlight>
 
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".
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!
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).
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).
 
 
Um VCards in das XML Format zu konvertieren gibts es im Forum folgendes kleines C-Programm: [http://www.mikrocontroller.net/attachment/74583/VCardsToXML.c] [http://www.mikrocontroller.net/attachment/highlight/74583]
Um VCards in das XML Format zu konvertieren gibts es im Forum folgendes kleines C-Programm: [http://www.mikrocontroller.net/attachment/74583/VCardsToXML.c] [http://www.mikrocontroller.net/attachment/highlight/74583]
 


==== Fotos & Videoschnappschüsse ====
==== 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:
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
      /user_data/home/Documents
 
 
Die Bilder sind dabei nach folgendem Namensschema benannt:
Die Bilder sind dabei nach folgendem Namensschema benannt:
 
 
      DD-MM-YYYY-hh:mm:ss.jpg
      DD-MM-YYYY-hh:mm:ss.jpg
 
 
Tag (DD) und Monat (MM) können auch einstellig sein.
Tag (DD) und Monat (MM) können auch einstellig sein.
 
 
=== Klingeltöne ===
=== Klingeltöne ===
 
 
Die Klingeltöne liegen, wie oben beschrieben unter:
Die Klingeltöne liegen, wie oben beschrieben unter:
 
 
/usr/local/etc/SystemRingTones/
/usr/local/etc/SystemRingTones/
 
 
Es sind .wav Dateien mit (16Khz, 16Bit, Mono), welche sich z.B. mit MhWaveEdit (Linux/GTK) oder auch Audacity recht komfortabel erzeugen lassen.
Es sind .wav Dateien mit (16Khz, 16Bit, Mono), welche sich z.B. mit MhWaveEdit (Linux/GTK) oder auch Audacity recht komfortabel erzeugen lassen.
 
 
Auch .wav Dateien mit 22050Hz werden problemlos abgespielt (ein wenig bessere Qualität als 16000hz) und sind als Klingeltöne nutzbar. Dateien mit 44100Hz spielt es leider nur 'ruckelnd' ab (32000Hhz nicht getestet).
Auch .wav Dateien mit 22050Hz werden problemlos abgespielt (ein wenig bessere Qualität als 16000hz) und sind als Klingeltöne nutzbar. Dateien mit 44100Hz spielt es leider nur 'ruckelnd' ab (32000Hhz nicht getestet).
 
 
Zusätzlich zu den Audio Dateien müssen noch im selben Verzeichnis entsprechende *.desktop dateien angelegt werden, damit alles korrekt ins Menü integriert wird.
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:
Eine für den fiktiven 16. Klingelton erzeugte Datei "16-Tetris.desktop" könnte den folgenden Inhalt haben:
 
 
                [Desktop Entry]
                [Desktop Entry]
                Categories =
                Categories =
                File =16-Tetris.wav
                File =16-Tetris.wav
                Name[] =16-Tetris
                Name[] =16-Tetris
                Type = audio/x-wav
                Type = audio/x-wav
                [Translation]
                [Translation]
                File=QtopiaRingTones
                File=QtopiaRingTones
                Context=16-Tetris
                Context=16-Tetris
 
 
Nach dem Anlegen der Dateien sollte sie dann im Menü auftauchen und auswählbar sein.
Nach dem Anlegen der Dateien sollte sie dann im Menü auftauchen und auswählbar sein.
 
 
=== Systemtöne ===
=== Systemtöne ===
 
 
*Sämtliche Systemtöne liegen unter ''/usr/local/sounds/'' und lassen sich problemlos durch andere Dateien ersetzen.
*Sämtliche Systemtöne liegen unter ''/usr/local/sounds/'' und lassen sich problemlos durch andere Dateien ersetzen.
*z.B.:
*z.B.:
**''charge.wav'' - Ton, wenn Gerät in die Basisstation gesetzt wird
**''charge.wav'' - Ton, wenn Gerät in die Basisstation gesetzt wird
 
 
=== Timeserver ===
=== Timeserver ===
 
 
http://www.mikrocontroller.net/topic/170483#1645101
http://www.mikrocontroller.net/topic/170483#1645101
Unter /usr/local/data steht in der monitor.cfg und monitor_ref_KPN.cfg
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
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.
könnte man z.B. auf "ptbtime1.ptb.de" und "ptbtime2.ptb.de" ändern.
 
 
(http://www.mikrocontroller.net/topic/170483#1649594)
(http://www.mikrocontroller.net/topic/170483#1649594)
das telefon benutzt *nicht ntp* sondern das time-protokoll auf port 37 -
das telefon benutzt *nicht ntp* sondern das time-protokoll auf port 37 -
time.fu-berlin.de (bzw. chronos.zedat.fu-berlin.de) kann man als server nehmen.
time.fu-berlin.de (bzw. chronos.zedat.fu-berlin.de) kann man als server nehmen.
 
 
vi Tipp hilfe:
vi Tipp hilfe:
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
Zeile 2.066: Zeile 2.112:
:%s/130.142.110.71/130.133.1.10/g
:%s/130.142.110.71/130.133.1.10/g
</syntaxhighlight>
</syntaxhighlight>
 
 
Aufgefallen ist, dass sich Telefone mit fest eingestellter IP nicht automatisch
Aufgefallen ist, dass sich Telefone mit fest eingestellter IP nicht automatisch
die Uhrzeit abrufen. Stellt man das Telefon auf DHCP, stellt sich die Uhr
die Uhrzeit abrufen. Stellt man das Telefon auf DHCP, stellt sich die Uhr
auch ohne Timeserver Modifikation auf die richtige Uhrzeit ein.
auch ohne Timeserver Modifikation auf die richtige Uhrzeit ein.
 
 
Wer lieber einen NTP-Client einsetzen möchte findet unter dem Link für [[#Weitere_Konsolenkommandos]] ein Paket mit ntpd oder auch ntpdate für den schnellen Zeitabgleich via Konsole:
Wer lieber einen NTP-Client einsetzen möchte findet unter dem Link für [[#Weitere_Konsolenkommandos]] ein Paket mit ntpd oder auch ntpdate für den schnellen Zeitabgleich via Konsole:
    ntpdate pool.ntp.org
    ntpdate pool.ntp.org
 
 
=== Zusätzliche Software ===
=== Zusätzliche Software ===
==== Dropbear (SSH-Server) installieren ====
==== Dropbear (SSH-Server) installieren ====
 
 
# Mit telnet auf dem Gerät einloggen
# Mit telnet auf dem Gerät einloggen
# folgendes in die Kommandozeile kopieren
# folgendes in die Kommandozeile kopieren
      cd /
 
      wget http://www.mikrocontroller.net/attachment/74656/dropbear.tgz
<pre>
      tar -xzf dropbear.tgz
      cd /
      rm dropbear.tgz
      wget http://www.mikrocontroller.net/attachment/74656/dropbear.tgz
      cd /etc/rc.d/init.d
      tar -xzf dropbear.tgz
      mv dropbear S90dropbear
      rm dropbear.tgz
      ./S90dropbear start
      cd /etc/rc.d/init.d
      mv dropbear S90dropbear
      ./S90dropbear start
 
</pre>
 
Das Kommando in Zeile 6 (mv ...) ist notwendig damit dropbear bei jedem Reboot automatisch gestartet wird.
Das Kommando in Zeile 6 (mv ...) ist notwendig damit dropbear bei jedem Reboot automatisch gestartet wird.
 
 
Prüfen ob dropbear gestartet ist und läuft:
Prüfen ob dropbear gestartet ist und läuft:
  # ps
  PID  Uid    Stat Command
  136 root    S    /usr/sbin/dropbear


<pre>
  # ps
  PID  Uid    Stat Command
  136 root    S    /usr/sbin/dropbear
</pre>
 
Bei jedem Login sucht dropbear nach der /var/log/lastlog, daher sollte man abschließend noch ein
Bei jedem Login sucht dropbear nach der /var/log/lastlog, daher sollte man abschließend noch ein


      touch /var/log/lastlog
<pre>
 
      touch /var/log/lastlog
</pre>
 
machen, um diese Datei anzulegen. Damit verschwinden auch die entsprechenden Fehlermeldungen im logread.
machen, um diese Datei anzulegen. Damit verschwinden auch die entsprechenden Fehlermeldungen im logread.
 


==== Nano 2.2.3 installieren ====
==== Nano 2.2.3 installieren ====
 
 
* Mit telnet auf dem Gerät einloggen
* Mit telnet auf dem Gerät einloggen
* folgendes in die Kommandozeile kopieren
* folgendes in die Kommandozeile kopieren
      cd /usr/bin
      cd /usr/bin
      wget http://www.mikrocontroller.net/attachment/74023/nano
      wget http://www.mikrocontroller.net/attachment/74023/nano
* Mit folgendem Befehl den Editor ausführbar machen:
* Mit folgendem Befehl den Editor ausführbar machen:
      chmod +x /usr/bin/nano
      chmod +x /usr/bin/nano
* Nun ist vi Geschichte ;-)
* Nun ist vi Geschichte ;-)
 
 
Ggf. kann der Fehler "Error opening terminal: xterm-color" auftreten wenn nano gestartet wird, in diesem Fall hilft folgendes:
Ggf. kann der Fehler "Error opening terminal: xterm-color" auftreten wenn nano gestartet wird, in diesem Fall hilft folgendes:
 
 
* /root/.bashrc öffnen (mit vi :-)
* /root/.bashrc öffnen (mit vi :-)
* "export TERM=xterm" in die Datei schreiben
* "export TERM=xterm" in die Datei schreiben
* ausloggen / einloggen
* ausloggen / einloggen
 
 
==== OpenVPN 2.0.9 installieren ====
==== OpenVPN 2.0.9 installieren ====
 
 
* Mit telnet auf dem Gerät einloggen
* Mit telnet auf dem Gerät einloggen
* folgendes in die Kommandozeile kopieren
* folgendes in die Kommandozeile kopieren
      cd /
      cd /
      wget http://www.mikrocontroller.net/attachment/74380/openvpn.tar.gz
      wget http://www.mikrocontroller.net/attachment/74380/openvpn.tar.gz
      tar -xzf openvpn.tar.gz
      tar -xzf openvpn.tar.gz
      depmod
      depmod
      mknod /dev/net/tun c 10 200
      mknod /dev/net/tun c 10 200
 
 
==== OpenVPN 2.1.1 installieren ====
==== OpenVPN 2.1.1 installieren ====
 
 
* Mit telnet auf dem Gerät einloggen
* Mit telnet auf dem Gerät einloggen
* folgendes in die Kommandozeile kopieren
* folgendes in die Kommandozeile kopieren
      cd /
      cd /
      wget http://www.mikrocontroller.net/attachment/74395/openvpn-2.1.1.tar.gz
      wget http://www.mikrocontroller.net/attachment/74395/openvpn-2.1.1.tar.gz
      tar -xzf openvpn-2.1.1.tar.gz
      tar -xzf openvpn-2.1.1.tar.gz
      depmod
      depmod
      mknod /dev/net/tun c 10 200
      mknod /dev/net/tun c 10 200
 
 
==== Tinc 1.0.12 installieren ====
==== Tinc 1.0.12 installieren ====
 
 
* Mit telnet auf dem Gerät einloggen
* Mit telnet auf dem Gerät einloggen
* folgendes in die Kommandozeile kopieren
* folgendes in die Kommandozeile kopieren
      cd /
      cd /
      wget http://www.mikrocontroller.net/attachment/74396/tinc-1.0.12.tar.gz
      wget http://www.mikrocontroller.net/attachment/74396/tinc-1.0.12.tar.gz
      tar -xzf tinc-1.0.12.tar.gz
      tar -xzf tinc-1.0.12.tar.gz
      depmod
      depmod
      mknod /dev/net/tun c 10 200
      mknod /dev/net/tun c 10 200
 
 
==== Weitere Konsolenkommandos ====
==== Weitere Konsolenkommandos ====
 
 
Auf http://thinksilicon.de/57/Hacking-the-VP6500.html finden sich einige nützliche Konsolentools. Darunter sind bc, lsof, file, curl, mc (bzw. mcedit), hexedit, mktemp, rsync, tcpdump, crond (mit crontab) und ntpd.
Auf http://thinksilicon.de/57/Hacking-the-VP6500.html finden sich einige nützliche Konsolentools. Darunter sind bc, lsof, file, curl, mc (bzw. mcedit), hexedit, mktemp, rsync, tcpdump, crond (mit crontab) und ntpd.
* Hinweis zu tcpdump; muss folgendermaßen ausgeführt werden:
* Hinweis zu tcpdump; muss folgendermaßen ausgeführt werden:
      tcpdump -U root
      tcpdump -U root
 
 
=== simpler WLAN-Switcher ===
=== simpler WLAN-Switcher ===
 
 
Ohne tiefer gehende GUI-Programmiererfahrungen bei Qtopia zu haben, kann man sich mit folgendem WLAN-Switcher behelfen:
Ohne tiefer gehende GUI-Programmiererfahrungen bei Qtopia zu haben, kann man sich mit folgendem WLAN-Switcher behelfen:
 
 
Im Script /user_data/prod/config_ats.sh stehen viele Befehle, wie man mittels ''config code'' Einstellungen vorschreiben kann. Dies habe ich mir mit folgenden eigenen Scripten zu nutze gemacht:
Im Script /user_data/prod/config_ats.sh stehen viele Befehle, wie man mittels ''config code'' Einstellungen vorschreiben kann. Dies habe ich mir mit folgenden eigenen Scripten zu nutze gemacht:
 
 
 
 
 
 
'''/root/switch_wlan.sh'''
'''/root/switch_wlan.sh'''
#!/bin/bash
#!/bin/bash
#================================================
#================================================
# WLAN-Switcher
# WLAN-Switcher
#================================================
#================================================
CONFIG_CODE=`cat /user_data/config_code.txt`
CONFIG_CODE=`cat /user_data/config_code.txt`
cp -f /usr/local/data/wpa_supplicant_ref_${CONFIG_CODE}.conf /user_data/wifi/wpa_supplicant.conf
 
cp -f /usr/local/data/wpa_supplicant_ref_${CONFIG_CODE}.conf /user_data/wifi/wpa_supplicant.conf
 
* kopiert Anhand des ''config code''s die wpa_supplicant.conf
* kopiert Anhand des ''config code''s die wpa_supplicant.conf
* es muss für jeden ''config code'' eine wpa_supplicant_ref_<''config code''>.conf vorhanden sein, am besten dazu die aktuelle /user_data/wifi/wpa_supplicant.conf dorthin kopieren
* es muss für jeden ''config code'' eine wpa_supplicant_ref_<''config code''>.conf vorhanden sein, am besten dazu die aktuelle /user_data/wifi/wpa_supplicant.conf dorthin kopieren
 
 
 
 
 
 
'''/root/set_config_code.sh'''
'''/root/set_config_code.sh'''
#!/bin/bash
#!/bin/bash
echo "$1" > /user_data/config_code.txt
echo "$1" > /user_data/config_code.txt
 
 
* schreibt den ersten übergebenen Parameter in die Datei /user_data/config_code.txt
* schreibt den ersten übergebenen Parameter in die Datei /user_data/config_code.txt
 
 
 
 
 
 
'''/usr/local/bin/set2XXX'''
'''/usr/local/bin/set2XXX'''
#!/bin/sh
#!/bin/sh
/root/set_config_code.sh XXX
/root/set_config_code.sh XXX
/root/switch_wlan.sh
/root/switch_wlan.sh
reboot
reboot
 
 
* XXX durch den ''config code'' ersetzen
* XXX durch den ''config code'' ersetzen
* Script, welches als Applikation gestartet wird
* Script, welches als Applikation gestartet wird
* derzeit leider keine "on-the-fly"-Eingabe des ''config code''s möglich, daher muss für jedes WLAN ein Script vorhanden sein
* derzeit leider keine "on-the-fly"-Eingabe des ''config code''s möglich, daher muss für jedes WLAN ein Script vorhanden sein
 
 
 
 
 
 
'''/usr/local/apps/Applications/set2YYY.desktop'''
'''/usr/local/apps/Applications/set2YYY.desktop'''
[Translation]
[Translation]
File=QtopiaApplications
File=QtopiaApplications
Context=set2XXX
Context=set2XXX
[Desktop Entry]
[Desktop Entry]
Exec=set2XXX
Exec=set2XXX
Icon=Camera
Icon=Camera
Type=Application
Type=Application
Name[]=Enable YYY
Name[]=Enable YYY
 
 
* XXX durch den ''config code'' ersetzen (gleicher Scriptname wie oben)
* XXX durch den ''config code'' ersetzen (gleicher Scriptname wie oben)
* YYY durch einmaligen Namen ersetzen
* YYY durch einmaligen Namen ersetzen
* Diese Datei erscheint unter dem Name[] im Applications-Menü
* Diese Datei erscheint unter dem Name[] im Applications-Menü
 
 
Theoretisch kann man mit dieser Methode auch problemlos zwischen mehreren SIP-Einstellungen und vielen weiteren Telefoneinstellungen umschalten (siehe Dateien in /usr/local/data) - der DemoMode funktioniert nach dem gleichen Prinzip.
Theoretisch kann man mit dieser Methode auch problemlos zwischen mehreren SIP-Einstellungen und vielen weiteren Telefoneinstellungen umschalten (siehe Dateien in /usr/local/data) - der DemoMode funktioniert nach dem gleichen Prinzip.
 
 
== Buildumgebung erstellen ==
== 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.
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 ===
=== 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.
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).
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 ===
=== 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).
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.
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.
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.
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.
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'
Benutzername und alle Kennwörter sind 'freetz'
 
 
==== Installation und Test der VP5500 Toolchain ====
==== Installation und Test der VP5500 Toolchain ====
Installation der Buildumgebung:
Installation der Buildumgebung:
  sudo mkdir -p /opt/VP5500/toolchain
  sudo mkdir -p /opt/VP5500/toolchain
  cd /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 wget http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.3.2.tar.bz2
  sudo tar xjf arm-linux-gcc-3.3.2.tar.bz2
  sudo tar xjf arm-linux-gcc-3.3.2.tar.bz2
  sudo rm arm-linux-gcc-3.3.2.tar.bz2
  sudo rm arm-linux-gcc-3.3.2.tar.bz2
  sudo ln -s /opt/VP5500/toolchain/usr/local/arm /usr/local/arm
  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.
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:
Test der Buildumgebung:
  cd ~
  cd ~
  wget http://www.mikrocontroller.net/attachment/73161/helloworld.tgz
  wget http://www.mikrocontroller.net/attachment/73161/helloworld.tgz
  tar -xzf helloworld.tgz
  tar -xzf helloworld.tgz
  rm helloworld.tgz
  rm helloworld.tgz
  cd helloworld
  cd helloworld
  make
  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.
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 ====
==== 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.
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:
Folgende Schritte machen dies:
cd ~
cd ~
svn checkout  http://svn.freetz.org/trunk  freetz-trunk  
svn checkout  http://svn.freetz.org/trunk  freetz-trunk
Dannach gibts im Home-Verzeichnis das aktuelle Freetz im Verzeichnis 'freetz-trunk'.
Dannach gibts im Home-Verzeichnis das aktuelle Freetz im Verzeichnis 'freetz-trunk'.
Konfigurieren mit 'make menuconfig' und Image erstellen mit 'make'.
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.
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:
Für detailiertere Infos bitte direkt bei Freetz nachschlagen:
http://trac.freetz.org/
http://trac.freetz.org/
 
 
=== Linux ===
=== 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.
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 voraus). 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.
Unter Debian-basierten Linux-Distros kann dieses Archiv z.B. nach /opt/VP5500/toolchain entpackt werden (einige der Makefiles im Forum setzen diesen Speicherort voraus). 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 ====
==== 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.
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.
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.
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.
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 ====
==== 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).
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).
 
 
= Sonstiges =
= Sonstiges =
 
 
== Hardware  + Software Versionen ==
== Hardware  + Software Versionen ==
 
 
Listet mal eure Hardware- und Softwareversion aus dem '''Applications''' => '''System Info''' Menü auf, wenn sie hier noch nicht stehen!
Listet mal eure Hardware- und Softwareversion aus dem '''Applications''' => '''System Info''' Menü auf, wenn sie hier noch nicht stehen!
 
 
=== VP5500 ===
=== VP5500 ===
 
 
{| class="wikitable"
{| class="wikitable"
|-
|-
! Hardware Version            !! Date    !! Software Version  
! Hardware Version            !! Date    !! Software Version  
|-
|-
| ind5                        ||0645      || 4.20
| ind5                        ||0645      || 4.20
|-  
| ind5                        ||0647      || 4.20
|-
|-
| ind5                        ||0648      || 4.20
| ind5                        ||0647      || 4.20
|-
|-
| ind5                        ||0649      || 4.20
| ind5                        ||0648      || 4.20
|-
|-
| ind5                        ||0702      || 4.20
| ind5                        ||0649      || 4.20
|-
|-
| ind5                        ||0703      || 4.20
| ind5                        ||0702      || 4.20
|-
| ind5                        ||0703      || 4.20
|}
|}
 
 
=== VP6500 ===
=== VP6500 ===
 
 
{| class="wikitable"
{| class="wikitable"
|-
|-
! Hardware Version            !! Date    !! Software Version  
! Hardware Version            !! Date    !! Software Version  
|-
| ind3-v2                      || 0711    || 3.22
|-
|-
| ind3-v2                      || 0711    || 3.22
| ind3-v2                      || 0713    || 3.22
|-
|-
| ind3-v2                      || 0713    || 3.22
| ind3-v2                      || 0716    || 3.22
|-
| ind3-v2                      || 0716    || 3.22
|}
|}
= Wünsche und Nutzungsideen =


When do you want me to start? http://www.cfnmtoob.com/profile/acihuresota/ lola tgp top 100  I'm pretty sure that's Nadia Styles. She got fake tits a long time ago, so this video must be pretty old.
Wer was äußern möchte, kann das hier reintippeln, zwecks Bündelung Interessen und Kräfte. Muss ja keiner das Rad 3x erfinden und man kann schaun was der ein oder andere macht.
Eine Status und Kontaktangabe bei Sachen die in Arbeit sind wäre toll.
 
== Software ==
 
* Audiostream-Player
* MP3
** madplay gibt es [http://www.mikrocontroller.net/topic/172616#1704777 hier], der automatische Stromsparmodus stört aber noch
* Browser und sei es nur für Wikipedia und Google
* Mailclient
* T9 Unterstützung bei Texteingabe
* Skypebenutzung
* Nutzungsmöglichkeit als Wireless-Webcam
* WLAN-Repeater
** besser: [http://freifunk.net Freifunk-] bzw. [http://www.olsr.org OLSR-Daemon]
* Wecker
* Voice-Crypto
* Unterstützung von mehreren WLAN Profilen, damit man das Gerät an mehreren APs betreiben kann ohne jedesmal SSID / Key neu eingeben zu müssen. (Sollte durch mehrere Einträge in der wpa_supplicant.conf möglich sein. Diese wird aber bei Änderungen über's Menü komplett überschrieben. Alternative: [[#simpler WLAN-Switcher]])
* Unterstützung von mehreren SIP Profilen, um z.b. von einem SIP-Anbieter auf den anderen zu wechseln. Ideal wäre, wenn man 2 SIP Profile gleichzeitig nutzen könnte
* YouTube Client, vgl. mit "MiniTube Linux"
* 'ne aktuelle Firmware? z.B: mit 2.6er Kernel und Android?
* Unterstützung für WLANs mit 802.1x die WPA2 verschlüsselt sind reparieren bzw. passende Konfig finden (unverschlüsselt geht schon)
 
== Hardwarerweiterungen ==
 
* Speichererweiterung
* USB Anschluss
* Blauzahn
* zusätzlicher Anschluss um eine andere Videokamera anzuschließen mit CINCH
 
== Nutzungsideen ==
 
* VoIP Phone und Webcam (nahliegend)
* WLAN-Finder
* Repeater
* mobiles Infogerät mit Wikizugriff und Mailpush in der Wireless-Bubble
* Türöffner, Ferncontroller
* Robohirn
* WLAN-Radio
* Video(Streaming)-Client in Verbindung mit VDR
* Barcode-Reader
* als Fernbedienung für PC (Winamp/Mediaplayer/VLC...
* Streamclient und Fernbedienung für DBOX2 mit Linux
 
[[Kategorie:Projekte]]
[[Kategorie:Datenübertragung]]

Aktuelle Version vom 21. November 2014, 13:20 Uhr

Verwandte Artikel

 

Allgemeines

  Bei den diesem Text zugrundeliegenden Geräten handelt es sich um videofähige VoIP-Phones des Herstellers Philips, die vom früheren holländischen Anbieter KPN vertrieben wurden und nach dessen Ausscheiden aus dem Markt nun günstig erhältlich sind. Ihr geringer Preis, die SoC-Architektur und das darauf laufende OS macht sie dabei für all jene interessant, die ihre eigenen Ideen und Projekte auf der Basis eines solchen Gerätes verwirklichen wollen, und gibt den oft fabrikneuen Exemplaren eine Art zweite Chance.  

Features

 

VP5500

  • 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 - 4fach 2,5mm Klinke-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  

VP6500

 

  • 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 - 4fach 3,5mm Klinke-Cinch
  • 2x Philips Multilife AA/R6NM 1800mAh NiMH-Akkus, je 1,2V, Ladeempfehlung: 15h mit 180mAh
  • englische, deutsche und niederländische Menüsprache
  • Software Qtopia Version 2.1.0
  • Maße (LxBxH): 134x49x24 mm.
  • Gewicht Mobilteil: 170 g (inkl. 2 NiMH-Akkus AA)

VP6500 kl.jpg  

Das VPx500 'rooten'

  Um vollen Zugang zum System auf dem Gerät zu erhalten gibt es mehrere Möglichkeiten.  

per telnet

Sobald das Telefon im Netzwerk angemeldet ist (egal ob DHCP oder statisch) kann über irgendein Terminal vom Netzwerk aus via telnet und der Telefon-IP auf das Gerät zugegriffen werden. User: root / PW: toor  

per serieller Schnittstelle

Dazu muß der #UART angeschlossen werden. Während des Bootvorgangs drückt man immer wieder ziellos irgendwelche Tasten bis man am Prompt des blob-Bootloaders ist. Dann kann man boot root=/dev/mtdblock2 init=/bin/sh eingeben, um an eine minimale Shell zu kommen.   In dieser setzt man dann mit passwd das Passwort für root. Danach kann man sich als root mit dem gesetzten Passwort einloggen.  

per DNS-Hack

Um den Rootzugriff 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 eigenen 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 (von blooza http://www.mikrocontroller.net/topic/170483#1651124 bereitgestellt) oder 188.40.123.50 (von sprites http://spritesmods.com/?art=vpx500 bereitgestellt) eintragen
  • am Anfang der Exportdatei VOR "**** CFGFILE:ar7.cfg" eine Zeile 'NoChecks = 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)  

Alternative

Wer sich den nicht ganz ungefährlichen Weg mit den anpassungen an der Fritzbox erspahren will, wechselt seine Fritzbox in den Expertenmodus. Danach kann man unter System - Netzwerk bei dem Punkt "IP adresse der Fritzbox ändern" bei vielen modellen den internen DHCP abschalten. Dann unter windows z.B. tftpd32 (http://tftpd32.jounin.net/) starten, in dessen DHCP-Server die Fritzbox als Gateway und den entsprechenden "modding-dns" eintragen und das Telefon neustarten.   War das Telefon schonmal angemeldet, versucht es die selbe IP vom neuen DHCP zu erzwingen, was tftpd32 nicht wirklich mag. Daher im tftpd32 die lease-ip bei 2 beginnen lassen und eine range von 250 eintragen, damit die vom Telefon verlangte IP auch im Adresspool des dhcp servers vorhanden ist.  

Anleitung fli4l

Mit dem fli4l ist das ganze ganz einfach.   In der Datei config/dns_dhcp.txt den DNS  Redirect für die zwei DNS-Name Konfigurieren.   <file>     DNS_REDIRECT_N='2'                # number of redirected domains     DNS_REDIRECT_1='ntp.xs4all.nl'    # 1st redirected domain     DNS_REDIRECT_1_IP='188.40.123.50' # IP of redirected domain       DNS_REDIRECT_2='vpcm-001.cust.kpn.net'     DNS_REDIRECT_2_IP='188.40.123.50' </file>    

Hardware

 

verwendete Komponenten

 

 

Messungen

 

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).  

Telefon
  • 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).
  • Telefonieren ca 500mA
  • Telefonieren mit Webcam ca 550mA

 

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

 

System-Takte

  1. 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

 

Zerlegen des VP5500

 

  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 (anfangen 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:
    • vorsichtig diese Seite leicht anheben. Am unteren Ende ist auf die Kontakte zu achten
    • dann versuchen die Platine 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

 

Bilder vom VP5500 Innenleben

 

 

Testpins am VP5500

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

   

Testpins am VP6500

Original Listen von Tino herunterladen. Rückseite, Vorderseite.  

Testpins auf der Rückseite

 

Testpin Nr.      verbunden zu Funktion
1 Pin 21 an BGW211EG POR_N
2 Pin A 14 an i.MX21 TOUT
3 Pin 46 an BGW211EG JTAG_TDI
4 Pin 44 an BGW211EG JTAG_TCLK
5 Pin 42 an BGW211EG JTAG_TDO
6 Pin 47 an BGW211EG JTAG_TRST_N
7 PIN 45 an BGW211EG JTAG_TMS
8 Pin 43 an BGW211EG JTAG_RTCLK
9 Pin C 14 an i.MX21 TIN
10 VDD VDD
11 Pin K 10 an i.MX21 UART1_RXD
12 Pin L 13 an i.MX21 UART1_TXD
13 GND GND
14 Pin U 17 an i.MX21 BOOT2
15 Pin V 16 an i.MX21 BOOT0

 

Frontseite: Die ICs wurden zum Messen ausgelötet.

 

Testpin Nr.      verbunden zu Funktion
1 Pin 29 von BGW211EG & F 16 an i.MX21 RESET_N / CSPI1_SS1
2 Pin 28 an BGW211EG & J 12 an i.MX21 SPI_DAT_MOSI / CSPI1_MOSI
3 Pin 27 an BGW211EG & F 19 an i.MX21 SPI_SS_N / CSPI1_SS0
4 Pin 26 an BGW21EG & F 17 an i.MX21 SPI_DAT_MISO / CSPI1_MISO
5 Pin 25 an BGW211EG & H 10 an i.MX21 SPI_CLK / CSPI1_SCLK
6 Pin 24 an BGW211EG & H 11 an i.MX21 SPI_EXT_INT / CSPI1_RDY
7 Pin 41 an BGW211EG UART_TX
8 Pin 40 an BGW211EG UART_RX
9 Transistor unter Testpunkt ?
10 GND GND
11 LED ?
12 Pin 8 am Kamerastecker ?
13 Pin 18 am Kamerastecker ?
14 Pin E 13 & H12 an FS455 CLKIN / PREF
15 Pin D 13 an FS455 CLKOUT
16 Pin A 11 an FS455 XTAL_OUT
17 VDD von FS455 VDD
18 Pin 15 & 16 am Displayconnector ?
19 geht an 2 Dioden links daneben ?
20 Pin M 19 an i.MX21 UART1_CTS
21 Pin M 18 an i.MX21 UART1_RTS & GND ??
22 VDDan i,MX21 VDD
23 Pin G 10 an i.MX21 USB_BYP
24 Pin A 19 an i.MX21 SSI3_FS
25 Pin D 17 an i.MX21 SSI2_CLK
26 VDD an i.MX21 VDD
27 Pin T 17 an i.MX21 SD1_D3
28 Pin A 15 an i.MX21 SAP_TXDAT
29 GND GND
30 Pin T 14 an i.MX21 RESET_IN
31 Pin R 19 an i.MX21 TRST
32 Pin P 19 an i.MX21 TMS
33 Pin N 17 an i.MX21 TCK
34 Pin K 11 an i.MX21 TDO
35 Pin P 18 an i.MX21 TDI
36 Pin 13 an TLV320 OUTP2
37 Pin 14 an TLV320 OUTMV
38 Pin 15 an BGW211EG VDD
39 Pin an Klinkenbuchse ?
40 Pin an Klinkenbuchse ?
41 ? ?
42 LED Tastatur ?
43 LED Tastatur ?
44 Pin 1,8 an 20XN2512 & Key ON PowerON
45 Pin 7 an BDR72K ?
46 Pin 2 an BDR72K ?
47 Pin 6 an MRRBGB3 ?
48 LED Tastatur   ?
49 Pin 10 an MRRBG3 ?
50 LED Tastatur ?
51 geht an Widerstand auf Rückseite ? ?
52 Pin L 13 an i.MX21 UART1_TXD
53 geht an Diode und Kondensator auf der Rückseite ?
54 Pin C 14 an i.MX21 TIN
55 geht an Widerstand auf der Rückseite ?
56 Pin 7 an BDR72K ?
57 Pin K 10 an i.MX21 UART1_RDX
58 Pin U 17 an i.MX21 BOOT2
59 Pin T 16 an i.MX21 BOOT1
60 geht an Widerstand auf der Rückseite ?
61 Pin V 16 an i.MX21 BOOT0
62 LED Tastatur ?
63 LED Tastatur ?
64 Pin 25 an TLV320 MLCK
65 Pin4 an 69W2440D ?
66 VDD von TLV320 VDD
67 geht an Widerstand auf der Rückseite   ?
68 geht an Widerstand auf der Rückseite ?
69 Pin 65 an MRRBG3 ?
70 GND GND
71 LED Tastatur ?
72 LED Tastatur ?
73 Akku positiv Plus Akku
74 Ladekontakt positiv Ladekontakt positiv
75 Akku positiv Plus Akku

 

UART

TIN muss auf low gezogen werden, um die Schnittstelle zu aktivieren. Jedoch startet dann das Telefon nicht vollständig (Fix siehe #Betrieb mit aktivierter serieller Schnittstelle, zum rooten langt es jedoch, siehe #per serieller Schnittstelle)  

  • Spannungs-Pegel: 3.3V
  • Baudrate: 115200 bps
  • 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 unten 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

  Nachdem wir ja bereits wissen wie das #Zerlegen_des_Telefons geht, steht der Nachrüstung von Bauelementen und Schnittstellen generell nichts mehr im Wege.  

Buchse für UART ins VP5500 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

 

Anschluss für UART des VP6500 zugänglich machen

Vorteil beim VP6500: es muss dazu nicht zerlegt werden, da sich die Kupferpads unter den Akkus im Akkufach verstecken. Dies ermöglicht eine lötfreie Variante des seriellen Anschlusses. Die Pinbelegung ist unter UART beschrieben.

  • 1. Da wir 4 Pole anschließen wollen, benötigen wir 4 federnde Teile aus "Molex"-Steckern, wie man sie aus CPU-Lüftern kennt. (Entweder hat man einen 4-poligen für die modernen PWM geregeltn zur Hand den man ausschlachten kann, oder man nimmt zwei dreipolige alte auseinander.)
  • 2./3. Ferner braucht man ein Stück Plastik mit den Maßen 4 mm mal 18 mm, welches als Träger für die Federkontakte dienen soll. Die Höhe ist nicht so entscheidend. Man kann z.B. den Clip eines Kugelschreibes passend zuschneiden und feilen.
  • 4. Plastikträger so weit zufeilen, dass er in die Aussparung passt (Tip: Bindfaden darum knoten um ihn wieder entfernen zu können)
  • 5. Abstände zwischen den Kontakten die kontaktiert werden müssen (TIN, GND, RX, TX : siehe UART) markieren und in die Unterseite des Trägers Führungskerben für die Federn sägen. Ebenso braucht man kleine Aussparungen um die Metallzungen von der Platine in das Batteriefach zu führen.
  • 6./7. Aus den Molex-Steckern bekommt man die Federn sehr einfach raus, indem man mit einem kleinen flachen Schraubenzieher vorsichtig in die Aussparungen sticht und hinten am Kabel zieht.
  • 8. Die einzelnen Metallzungen nun noch auf 90° aufbiegen.
  • 9. In die Führungskerbe einschieben.
  • 10. Metallzunge umbiegen. (Zange)
  • 11. Sind alle Kerbungen und Aussparungen richtig abgemessen und gut zugefeilt, dann passt alles in die Lücke im Batteriefach, ohne dass sich die verschiedenen Metallteile berühren.
  • 12. Mit etwas Schrumpfschlauch und Heißkleiber kann man dem Verrutschen der Metallzungen vorbeugen und die Kurzschlußwahrscheinlichkeit senken. Ferner dient der Heißkleber als Kraftüberträger, damit die Batterien die leicht federnden Metallzungen fest auf die Kontakte auf der Platine drücken können.
  • 13. Batterien einsetzen. Ohne diese wird das ganze irgendwann doch wieder rausfallen und die Verbindung von Anfang an unzuverlässig sein.

  Problembehandlung:

  • Kein Kontakt: (Man kann z.B. die Masse auf Durchgang prüfen.)
    • Träger nicht tief genug in die Lücke gedrückt: Mit schmalem Schraubenzieher nachdrücken. Meistens auf der Seite notwendig wo die Metallzungen nach oben kommen.
    • Träger wird nach aussen gedrückt (Metallzungen federn ja): Mehr Heißkleber um mehr Druck durch die Batterien zu bekommen.
    • Träger tief drin, aber trotzdem keine oder unzuverlässige Verbindung: Die Metallzungen auf der Unterseite haben verschiedene "Dicken", oder die Kerben sind unterschiedlich tief. Ein Tropfen Lötzinn auf die zu niedrigen Metallzungen erledigt dies. (Anmerkung: Der Autor musste überall ein wenig Lötzinn auftragen um die notwendige Dicke und sichere Verbindung zu erreichen.)

 

Nutzung für Voice over IP (VoIP, SIP)

 

weiterführende Links

 

  Benutzer ist 103   Mit Ekiga konnte so per 103@xxx.xxx.xxx.xxx bei ersten Tests eine Sprachverbindung zum Telefon aufgebaut werden.  

SIP Einstellungen

  Die SIP Einstellungen können alternativ auch direkt in der Datei /user_data/data/hpr0userparam.cfg vorgenommen werden.  

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 Vodafone NGN (Arcor NGN)

 

  • SIP1:
    • Display Name: ...
    • Username: VORWAHLUNDRUFNUMMER
    • Telephone Number: (leer lassen)
  • Auth:
    • Auth Username: VORWAHLUNDRUFNUMMER
    • Password: *********
  • Server:
    • arcor.de:5060
  • Proxy:
    • VORWAHL.sip.arcor.de:5060
  • RTP:
    • 10000 und 10001
  • STUN:
    • (X) use rport
  • SIP2:
    • UDP: 5060
    • TCP: 5060

(getestet von Micha mit EasyBox 802; an EasyBox n-WLAN ausschalten)  

Einstellungen für Sipgate

Für den Provider Sipgate existieren mehrere funktioniernde Konfigurationen, die jedoch je nach lokaler Netzinfrastruktur getestet werden müssen. Für alle Konfigurationen außer "STUN" müssen Port Forwards im jeweiligen Router eingetragen sein. Dies betrifft:

  • SIP2
    • SIP Port Listen
  • RTP Audio Channel
    • RTP
    • RTCP
  • RTP Video Channel
    • RTP
    • RTCP

Die Übernahme der Parameter beim Verlassen des Konfigurationsmenü ist mitunter etwas hakelig, ein Reboot des Telefons sorgt für Abhilfe. Nach dem Start ruhig 1-2 Minuten abwarten, die Registrierung dauert manchmal länger.

Die Reiter "Audio", "Video", "Bw", "OBProxy", "QoS" und "Tags" beläßt man auf Werksvorgabe.

Im Reiter "Upgrade" sollte man "Auto SW Upgrade" abschalten, da die vorgesehenen Upgrade-Server längst abgeschaltet sind.


Parametertabelle

Parameter Config 1 Config 2 Config 3 Config 4
"Proxy" "Freetz" "2. Device" "STUN"
SIP1
Username SIPGATE UserID SIPGATE UserID SIPGATE UserID SIPGATE UserID
Telephone 0123456789 0123456789 0123456789 0123456789
Auth
Auth User SIPGATE UserID SIPGATE UserID SIPGATE UserID SIPGATE UserID
Password SIP Passwort SIP Passwort SIP Passwort SIP Passwort
Server
SIP Registrar sipgate.de:5060 sipgate.de:5060 sipgate.de:5060 sipgate.de:5060
Protocol UDP UDP UDP UDP
Expire 600 600 600 600
Keep Alive 600 600 600 600
Proxy
SIP Proxy 1 sipgate.de:5060 <leer> <leer> sipgate.de:5060
SIP Proxy 2 <leer> <leer> <leer> <leer>
SIP Proxy 3 <leer> <leer> <leer> <leer>
RTP
Audio RTP Port 22800 22800 5006 22800
Audio RTCP Port 22801 22801 5007 22801
Video RTP port 22804 22804 5008 22804
Video RTCP port 22805 22805 5009 22805
STUN
use rport ja ja ja nein
STUN server <leer> <leer> <leer> stun.sipgate.net
STUN port <leer> <leer> <leer> 10000
SIP2
Symmetric ja ja ja ja
UDP Listen 5062 5062 5062 5062
TCP Listen 5062 5062 5062 5062
TLS Listen 5053 5053 5053 5053
Beispiel Beispiel Beispiel Beispiel Beispiel
Beispiel Beispiel Beispiel Beispiel Beispiel
Beispiel Beispiel Beispiel Beispiel Beispiel

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.

Bei mir hat es nur per UDP funktioniert, aber mit starken Delays (>1s)

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: egal <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

Reiter SIP2
[ ] Symmetric Mode
SIP Port Listen
for UDP: 5060

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.
  Der SIP Listen Port 5060 hat mich viel Zeit gekostet - stand noch von sipgate direkt auf 5062 und das VP5500 hat sich dann zwar an der fritzbox registriert aber keine eingehenden Anrufe empfangen...  

Fritz!Box Hinweis

Hinter meiner Fritz!Box konnte ich auf dem Port 5060 keine Incoming Calls bekommen, da die Box auf diesen Port für ihre eigenes System hört. Geholfen hat mit dann ein Wechsel auf Port 5061 im Reiter SIP2    

Eigener VoIP Server mit Asterisk

 

 

Asterisk auf einer Fritz!Box

 

 

Videogespräche zu anderen Clients / Softphones

Ekiga Softphone

  Damit Videos klappen, müssen Ekiga und VP6500 über mindestens einen übereinstimmenden Videocodec verfügen, klar. Im Falle des VP6500 ist es wohl so, daß ausschließlich H.263 in verschiedenen Ausprägungen zur Verfügung steht.   Ekiga kommt jedoch zunächst unter Ubuntu 9.10 nur mit H.261 und Theora Codec. Wir müssen daher den H.263-Codec in Ekiga zusätzlich einhängen.   Leider ist der H.263-Codec nicht ganz frei zugänglich, sodaß wir eine Fremdquelle benötigen, um den Codec mit dem Paketmanager installieren zu können. Daher muß Bojos Ekiga-Plugin-PPA wie in   https://launchpad.net/~bojo42/+archive/ekiga   beschrieben als Paketquelle hinzugefügt werden. Den zugehörigen Schlüssel nicht vergessen! Wenn die neue Quelle bekannt gemacht ist, können im Paketmanager nun die  

Pakete
libopal3.6.1-plugins-h263-1998
libopal3.6.1-plugins-ilbc
libavcodec-dev

  installiert werden. Darauf achten, daß alle Abhängigkeiten sauber erfüllt sind. Das H.263-Plugin läßt sich nur installieren, wenn libstdc++6 >= 4.4.0 vorhanden ist, was meines Wissens erst ab Ubuntu 9.10 der Fall ist. Nach der Installation dieser Komponenten kann Ekiga neu gestartet werden. Es sollte nun unter Bearbeiten->Einstellungen->Video->Codecs zusätzlich den H.263-Codec anbieten. Durch Verschieben nach oben kann man diesen beim Handshake priorisieren. Nach Integration des H.263-Codecs in Ekiga konnte ich mit zwei Sipgate-Accounts störungsfrei, sogar über den gleichen DSL-Anschluß, videofonieren.  

DEMO MODE

  Um den DEMO MODE zwischen einem VP55 und VP65 herzustellen muss man die Dateien mit den Einstellungen vom VP55 auf das VP65 übertragen. Diese liegen in /usr/local/data/demo/ und es sind vier Dateien. Danach ist die SSID und der KEY bei beiden gleich eingerichtet und die beiden Geräte verbinden sich miteinander.  

Software

 

Vorsicht Fallen!

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

Betrieb mit aktivierter serieller Schnittstelle

  Das 5500 und das 6500 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.  

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
a - anhängen (hinter dem aktuellem Zeichen in den Einfüge-Modus)
[Esc] wechselt zurück in den Kommandomodus. In diesem kann mittels Pfeil- und Bildlauftasten navigiert werden.

x - löscht das Zeichen an Cursor position
dnd - löscht n Zeile(n) in den Zeilenbuffer (ohne n = eine Zeile)
yny - kopiert n Zeile(n) in den Zeilenbuffer (ohne n = eine Zeile)
p - fügt Inhalt des Zeilenbuffer unter der aktuellen Zeile ein
: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.  

Grundkonfiguration, die das Leben erleichtert

.bashrc

Die installierte Shell ist die bash. Einstellungen bezieht sie aus der (versteckten) Datei ".bashrc". Hier kann man sinnvolle Ergänzungen vornehmen, damit sich das Telefon ein bißchen mehr wie ein gewohntes Linux-System verhält:  

alias vim=vi
PS1="[\u@\h] \w $ "

 

Backup

Backup des Flash

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

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

  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:  

modprobe jffs2
modprobe mtdram total_size=65536 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

  #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:  

blob>

  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:  

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

  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

  nc telefon-Ip 31340 > file.tar

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.  

Erkunden des Systems mit Bordmitteln

 

Ausgabe von dmesg auf einem VP6500

6>NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NetWinder Floating Point Emulator V0.95 (c) 1998-1999 Rebel.com
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 68K
PCB version: ind3 v2
Driver SYSTCLK: SYSTCLK-1.12 (REFERENCED)
Driver GPIO-1.59 (REFERENCED)
****p_gpio_init_low_bat****
GPIO: p_gpio_it_init at 762
Driver FRAMEBUF-1.12 (REFERENCED)
Driver SPI-1.20 (REFERENCED) Debug level 3
 
u32_spi1_MinLenghtForDMAInTX set to 300
 
u32_spi1_MinLenghtForDMAInRX set to 300
Driver LCD-1.20 (REFERENCED)
Driver TVLINK-1.45 (REFERENCED)
Reset from Software Reset.
Motorola PostProcessor Linux driver ver 0.64 - Copyright (C) 2003 Motorola Inc
pp: hw ver = 2
prp_dbg=0
Motorola PreProcessor Linux driver ver 0.0 - Copyright (C) 2003 Motorola Inc
hmp4d: base_port=0x10026800 irq=50
hmp4d: module inserted
hmp4e: base_port=0x10026c00 irq=49
hmp4e: Compatble HW found with ID: 0x004c1882
hmp4e: module inserted. Major = 249
SPI2:: drv_Init :PID of driver: 134
SPI2:: drv_Init :ScanList not provided. Will use the default scan list.
SPI2:: drv_Init :ScanChannelList :1 6 11 14 2 7 12 3 8 13 4 9 5 10
SPI2:: drv_Init :setting PhyType to: Rf-to-Rf
SPI2:: drv_Init :Ref.Clock parameter not provided
SPI2:: drv_Init :Configure target for a reference clock of 'default=40' Mhz.
SPI2:: drvRegEtherDev :Interface Name is: eth%d
SPI2:: drv_Init :HEOCSIWPOWON: Powering on...
SPI2:: drvPhase2Init :Protocol Firmware will be loaded by driver ...
SPI2:: drvPhase2Init :Initializing HHAL (PhgHhalInitialize)...
Divider : 8
 
OCR2 : e4015308 (12582912)
Reset : 3 / 27 (c497cc00 / e401531c)
 
Reset : 3 / 27 (c497cc00 / e401531c)
GPIO: p_gpio_init_gpio_status at 1262
GPIO: POWER_FAIL signal NOT detected at GPIO driver init carry on !!!
GPIO: CHARGE_IN at init
GPIO: LOW_BAT_OUT at init
GPIO: No accessory plugged at init.  - Set Video on jack
GPIO: camera to front at init
**ChargeStatusPmb=========gpio_Read_ChargeStatus_Ready=1
SPI2:: PhgOsal_linux_init_thread :assigning thread name and deamonize() ..
SPI2:: drvPhase2Init :Success
SPI2:: drvPhase2Init : registering callbacks with HHAL..
SPI2:: drvHhalEventIndicationHandler :
SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_COMPLETE; setting CARRIER_ON
SPI2:: drvPhase2Init :calling PhgHhalQueueMgmtReq()!
PhgHhalQueueMgmtReq:1172:HHAL got Init message
PhgHhalQueueMgmtReq:1217:HHAL done Init message
SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
SPI2:: drvHhalEventIndicationHandler :
SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001002, IFF_UP=0
SPI2:: drvHhalEventIndicationHandler :device was already closed
SPI2:: drvMgmtCfmHndler :Using MAC Address: 00:08:c6:86:8b:99
SPI2:: drvPhase2Init :init etherdev; stopping queue, setting CARRIER_OFF
SPI2:: drv_Init :Philips WLAN Drv - loaded - in state: 1
SPI2:: drvInit :Philips WLAN Drv - loaded
SPI2:: drvOpen :opening net device
SPI2:: drvOpen :Device is not associated!
SPI2:: drvOpen :Carrier flag is already set to CARRIER_OFF
SPI2:: drvOpen :Disabling again netqueue
requested reg.domain code setting = 3
SPI2:: drvIoctl :set u8LinkAdaptation  : 1 Result=[0]
SPI2:: drvIoctl :changed HEOCSIWLNADPALLOWRATES: 8 allowed rate codes
SPI2:: drvInitConnect :Req to connect to new WLAN network
SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
SPI2:: drvInitConnect :Connecting To AP...
SPI2:: drvInitConnect :step2
SPI2:: drvHhalEventIndicationHandler :
SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001003, IFF_UP=1
SPI2:: drvHhalEventIndicationHandler :device was already opened; stopping queue
SPI2:: drvInitConnect :step3 : u8Status 255
SPI2:: drvInitConnect :step5
SPI2:: drvInitConnect :TIMEDOUT
SPI2:: drvInitConnect :step6
SPI2:: drvInitParamsAndPowerOnAndConnect :Connect failed!
Motorola CSI Linux driver ver 0.1
- Copyright (C) 2004 Motorola Inc
 
Driver SENSOR-1.29 (REFERENCED)
i2c-client version : 1.9
Initialize i2c-client-aic14 module
Module i2c-client-aic14 initialized
Insert module aic14 (AIC14-1.0)
Module AIC14 assumes CODEC MCLK already configured for 20480000Hz
Driver KPP-1.36 (REFERENCED)
Driver DOZE-1.27 (REFERENCED)
SPI2:: drvDoScan :Buero (bittorf)
SPI2:: drvProcessScanCfm :Scan Confirm: Success 1 APs
SPI2:: drvInitConnect :Req to connect to new WLAN network
SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
SPI2:: drvInitConnect :Connecting To AP...
SPI2:: drvInitConnect :step2
SPI2:: drvHhalEventIndicationHandler :
SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_CONNECT; setting CARRIER_ON
SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001003, IFF_UP=1
SPI2:: drvHhalEventIndicationHandler :device was already opened; enabling queue
SPI2:: drvInitConnect :step3 : u8Status 8
SPI2:: drvInitConnect :step4
SPI2:: drvInitConnect :Successful
SPI2:: drvInitConnect :step6
SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 8
SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 8
SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 8
SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 8
SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 8
SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 8
SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 8
SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 8
SPI2:: drvIoctl :PA Request
SPI2:: drvIoctl :No state change!
SPI2:: drvIoctl :Fast PS Request
PhgHhalDoM2SDMA:1661:-->P1
SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
SPI2:: drvStop :Driver Stop: disable TX queue! (usage: 2)
SPI2:: drvIoctl :Deauth BSSID: 00:1d:7e:18:e3:89
SPI2:: drvHhalEventIndicationHandler :
SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00000002, IFF_UP=0
SPI2:: drvHhalEventIndicationHandler :device was already closed
SPI2:: drvOpen :opening net device
SPI2:: drvOpen :ERROR: Associated, but Carrier flag is set to CARRIER_OFF
SPI2:: drvDoScan :Buero (bittorf)
SPI2:: drvProcessScanCfm :Scan Confirm: Success 1 APs
SPI2:: drvInitConnect :Req to connect to new WLAN network
SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
SPI2:: drvInitConnect :Connecting To AP...
SPI2:: drvInitConnect :step2
SPI2:: drvHhalEventIndicationHandler :
SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_CONNECT; setting CARRIER_ON
SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00000003, IFF_UP=1
SPI2:: drvHhalEventIndicationHandler :device was already opened; enabling queue
SPI2:: drvInitConnect :step3 : u8Status 8
SPI2:: drvInitConnect :step4
SPI2:: drvInitConnect :Successful
SPI2:: drvInitConnect :step6
SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
SPI2:: drvIoctl :PA Request
PhgHhalDoM2SDMA:1661:-->P0
SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
drvSetWOWFilter: Enable UNICAST: Disable ARP: Enable
Ip addr = 10.63.17.5. LMP=2
SPI2:: drvIoctl :PA Request
SPI2:: drvIoctl :No state change!
SPI2:: drvIoctl :Fast PS Request
PhgHhalDoM2SDMA:1661:-->P1
SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Sensor driver: initialize device OV7660
Warning: Remapping obsolete /dev/fb* minor 32 to 1
SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 4
SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 4
SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 4
SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 4
SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 4
SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 4
SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 4
SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 4
SPI2:: drvIoctl :PA Request
PhgHhalDoM2SDMA:1661:-->P0
SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain

 

Ausgabe von logread auf einem VP6500

Jan  1 00:00:00 imx21 syslog.info syslogd started: BusyBox v0.60.0 (2007.02.28-13:39+0000)
Jan  1 00:00:02 imx21 daemon.emerg klogd: klogd started: BusyBox v0.60.0 (2007.02.28-13:39+0000)
Jan  1 00:00:02 imx21 daemon.warn klogd: Linux version 2.4.20-celf3 (root@wbul04) (gcc version 3.3.2) #1 Wed Feb 28 13:30:26 UTC 2007
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: ARM926EJ-Sid(wb) [41069264] revision 4 (ARMv?(8))
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: D undefined 14 cache
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Jan  1 00:00:02 imx21 daemon.warn klogd: CPU: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Jan  1 00:00:02 imx21 daemon.warn klogd: Machine: Freescale i.MX2 ADS
Jan  1 00:00:02 imx21 daemon.warn klogd: FCLK=266000 kHz  HCLK=133000 kHz  IPGCLK=66500 kHz
Jan  1 00:00:02 imx21 daemon.warn klogd: PERCLKs: 1=44333 KHz  2=33250 kHz  3=44333 kHz  4=88666 kHz
Jan  1 00:00:02 imx21 daemon.warn klogd: On node 0 totalpages: 16384
Jan  1 00:00:02 imx21 daemon.warn klogd: zone(0): 16384 pages.
Jan  1 00:00:02 imx21 daemon.warn klogd: zone(1): 0 pages.
Jan  1 00:00:02 imx21 daemon.warn klogd: zone(2): 0 pages.
Jan  1 00:00:02 imx21 daemon.warn klogd: Kernel command line: root=/dev/mtdblock2 noinitrd ip=none mtdparts=s29gl512n:256k@0x00000000
(bootloader)ro,896k@0x00040000(kernel)ro,50432k@0x00120000(fs#1),12800k@0x03260000(fs#2),1152k@0x03EE0000(fs#3)
Jan  1 00:00:02 imx21 daemon.debug klogd: Relocating machine vectors to 0xffff0000
Jan  1 00:00:02 imx21 daemon.warn klogd: Console: colour dummy device 80x30
Jan  1 00:00:02 imx21 daemon.warn klogd: Calibrating delay loop (skipped)... 132.71 BogoMIPS
Jan  1 00:00:02 imx21 daemon.info klogd: Memory: 64MB = 64MB total
Jan  1 00:00:02 imx21 daemon.notice klogd: Memory: 63052KB available (1366K code, 299K data, 68K init)
Jan  1 00:00:02 imx21 daemon.info klogd: Dentry cache hash table entries: 8192 (order: 4, 65536 bytes)
Jan  1 00:00:02 imx21 daemon.info klogd: Inode cache hash table entries: 4096 (order: 3, 32768 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
Jan  1 00:00:02 imx21 daemon.warn klogd: POSIX conformance testing by UNIFIX
Jan  1 00:00:02 imx21 daemon.info klogd: Linux NET4.0 for Linux 2.4
Jan  1 00:00:02 imx21 daemon.info klogd: Based upon Swansea University Computer Society NET3.039
Jan  1 00:00:02 imx21 daemon.warn klogd: Initializing RT netlink socket
Jan  1 00:00:02 imx21 daemon.info klogd: apm: Simulating APM BIOS version 1.2 (Driver version 1.0)
Jan  1 00:00:02 imx21 daemon.warn klogd: i.MX21 Dynamic Power Management
Jan  1 00:00:02 imx21 daemon.warn klogd: Starting kswapd
Jan  1 00:00:02 imx21 daemon.warn klogd: Disabling the Out Of Memory Killer
Jan  1 00:00:02 imx21 daemon.notice klogd: JFFS2 version 2.1. (C) 2001, 2002 Red Hat, Inc., designed by Axis Communications AB.
Jan  1 00:00:02 imx21 daemon.info klogd: i2c-core.o: i2c core module version 2.6.2 (20011118)
Jan  1 00:00:02 imx21 daemon.warn klogd: pty: 256 Unix98 ptys configured
Jan  1 00:00:02 imx21 daemon.info klogd: Serial driver version 5.05c (2001-07-08) with no serial options enabled
Jan  1 00:00:02 imx21 daemon.warn klogd: UART driver version 0.3.6
Jan  1 00:00:02 imx21 daemon.warn klogd: RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Jan  1 00:00:02 imx21 daemon.warn klogd: I2C driver Feb 28 2007 / 13:31:04
Jan  1 00:00:02 imx21 daemon.info klogd: Initialize i2c-client-dbmx-codec module
Jan  1 00:00:02 imx21 daemon.notice klogd: s29gl512n: probing 16-bit flash bus
Jan  1 00:00:02 imx21 daemon.notice klogd:  Amd/Fujitsu Extended Query Table v1.3 at 0x0040
Jan  1 00:00:02 imx21 daemon.notice klogd: number of CFI chips: 1
Jan  1 00:00:02 imx21 daemon.notice klogd: cfi_cmdset_0002: Using Write Buffer method.
Jan  1 00:00:02 imx21 daemon.notice klogd: cfi_cmdset_0002: buffer_Write_Time = 128
Jan  1 00:00:02 imx21 daemon.notice klogd: cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Jan  1 00:00:02 imx21 daemon.notice klogd: Using static partition definition
Jan  1 00:00:02 imx21 daemon.notice klogd: Creating 5 MTD partitions on "s29gl512n":
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x00000000-0x00040000 : "bootloader"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x00040000-0x00120000 : "kernel"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x00120000-0x03260000 : "fs #1"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x03260000-0x03ee0000 : "fs #2"
Jan  1 00:00:02 imx21 daemon.notice klogd: 0x03ee0000-0x04000000 : "fs #3"
Jan  1 00:00:02 imx21 daemon.info klogd: NET4: Linux TCP/IP 1.0 for NET4.0
Jan  1 00:00:02 imx21 daemon.info klogd: IP Protocols: ICMP, UDP, TCP
Jan  1 00:00:02 imx21 daemon.info klogd: IP: routing cache hash table of 512 buckets, 4Kbytes
Jan  1 00:00:02 imx21 daemon.info klogd: TCP: Hash tables configured (established 4096 bind 8192)
Jan  1 00:00:02 imx21 daemon.info klogd: NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
Jan  1 00:00:02 imx21 daemon.warn klogd: NetWinder Floating Point Emulator V0.95 (c) 1998-1999 Rebel.com
Jan  1 00:00:02 imx21 daemon.warn klogd: VFS: Mounted root (jffs2 filesystem).
Jan  1 00:00:02 imx21 daemon.info klogd: Freeing init memory: 68K
Jan  1 00:00:02 imx21 daemon.warn klogd: PCB version: ind3 v2
Jan  1 00:00:02 imx21 daemon.info klogd: Driver SYSTCLK: SYSTCLK-1.12 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver GPIO-1.59 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.warn klogd: ****p_gpio_init_low_bat****
Jan  1 00:00:02 imx21 daemon.warn klogd: GPIO: p_gpio_it_init at 762
Jan  1 00:00:02 imx21 daemon.info klogd: Driver FRAMEBUF-1.12 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver SPI-1.20 (REFERENCED) Debug level 3
Jan  1 00:00:02 imx21 daemon.warn klogd:
Jan  1 00:00:02 imx21 daemon.warn klogd: u32_spi1_MinLenghtForDMAInTX set to 300
Jan  1 00:00:02 imx21 daemon.warn klogd:
Jan  1 00:00:02 imx21 daemon.warn klogd: u32_spi1_MinLenghtForDMAInRX set to 300
Jan  1 00:00:02 imx21 daemon.info klogd: Driver LCD-1.20 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.info klogd: Driver TVLINK-1.45 (REFERENCED)
Jan  1 00:00:02 imx21 daemon.warn klogd: Reset from Software Reset.
Jan  1 00:00:02 imx21 daemon.warn klogd: Motorola PostProcessor Linux driver ver 0.64 - Copyright (C) 2003 Motorola Inc
Jan  1 00:00:02 imx21 daemon.warn klogd: pp: hw ver = 2
Jan  1 00:00:03 imx21 daemon.warn klogd: prp_dbg=0
Jan  1 00:00:03 imx21 daemon.warn klogd: Motorola PreProcessor Linux driver ver 0.0 - Copyright (C) 2003 Motorola Inc
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4d: base_port=0x10026800 irq=50
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4d: module inserted
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4e: base_port=0x10026c00 irq=49
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4e: Compatble HW found with ID: 0x004c1882
Jan  1 00:00:03 imx21 daemon.info klogd: hmp4e: module inserted. Major = 249
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :PID of driver: 134
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :ScanList not provided. Will use the default scan list.
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :ScanChannelList :1 6 11 14 2 7 12 3 8 13 4 9 5 10
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :setting PhyType to: Rf-to-Rf
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :Ref.Clock parameter not provided
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :Configure target for a reference clock of 'default=40' Mhz.
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drvRegEtherDev :Interface Name is: eth%d
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drv_Init :HEOCSIWPOWON: Powering on...
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drvPhase2Init :Protocol Firmware will be loaded by driver ...
Jan  1 00:00:03 imx21 daemon.err klogd: SPI2:: drvPhase2Init :Initializing HHAL (PhgHhalInitialize)...
Jan  1 00:00:03 imx21 daemon.warn klogd: Divider : 8
Jan  1 00:00:03 imx21 daemon.warn klogd:
Jan  1 00:00:03 imx21 daemon.warn klogd:  OCR2 : e4015308 (12582912)
Jan  1 00:00:03 imx21 daemon.warn klogd: Reset : 3 / 27 (c497cc00 / e401531c)
Jan  1 00:00:03 imx21 daemon.warn klogd:
Jan  1 00:00:03 imx21 daemon.warn klogd: Reset : 3 / 27 (c497cc00 / e401531c)
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: p_gpio_init_gpio_status at 1262
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: POWER_FAIL signal NOT detected at GPIO driver init carry on !!!
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: CHARGE_IN at init
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: LOW_BAT_OUT at init
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: No accessory plugged at init.  - Set Video on jack
Jan  1 00:00:03 imx21 daemon.warn klogd: GPIO: camera to front at init
Jan  1 00:00:04 imx21 daemon.warn klogd: **ChargeStatusPmb=========gpio_Read_ChargeStatus_Ready=1
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: PhgOsal_linux_init_thread :assigning thread name and deamonize() ..
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init :Success
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init : registering callbacks with HHAL..
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_COMPLETE; setting CARRIER_ON
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init :calling PhgHhalQueueMgmtReq()!
Jan  1 00:00:06 imx21 daemon.info klogd: PhgHhalQueueMgmtReq:1172:HHAL got Init message
Jan  1 00:00:06 imx21 daemon.info klogd: PhgHhalQueueMgmtReq:1217:HHAL done Init message
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001002, IFF_UP=0
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already closed
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvMgmtCfmHndler :Using MAC Address: 00:08:c6:86:8b:99
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvPhase2Init :init etherdev; stopping queue, setting CARRIER_OFF
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drv_Init :Philips WLAN Drv - loaded - in state: 1
Jan  1 00:00:06 imx21 daemon.err klogd: SPI2:: drvInit :Philips WLAN Drv - loaded
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :opening net device
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :Device is not associated!
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :Carrier flag is already set to CARRIER_OFF
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvOpen :Disabling again netqueue
Jan  1 00:00:07 imx21 daemon.warn klogd: requested reg.domain code setting = 3
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvIoctl :set u8LinkAdaptation  : 1 Result=[0]
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvIoctl :changed HEOCSIWLNADPALLOWRATES: 8 allowed rate codes
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :Req to connect to new WLAN network
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :Connecting To AP...
Jan  1 00:00:07 imx21 daemon.err klogd: SPI2:: drvInitConnect :step2
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001003, IFF_UP=1
Jan  1 00:00:10 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already opened; stopping queue
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :step3 : u8Status 255
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :step5
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :TIMEDOUT
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitConnect :step6
Jan  1 00:00:11 imx21 daemon.err klogd: SPI2:: drvInitParamsAndPowerOnAndConnect :Connect failed!
Jan  1 00:00:12 imx21 daemon.warn klogd: Motorola CSI Linux driver ver 0.1
Jan  1 00:00:12 imx21 daemon.warn klogd:  - Copyright (C) 2004 Motorola Inc
Jan  1 00:00:12 imx21 daemon.warn klogd:
Jan  1 00:00:12 imx21 daemon.info klogd: Driver SENSOR-1.29 (REFERENCED)
Jan  1 00:00:12 imx21 daemon.info klogd: i2c-client version : 1.9
Jan  1 00:00:12 imx21 daemon.info klogd: Initialize i2c-client-aic14 module
Jan  1 00:00:12 imx21 daemon.info klogd: Module i2c-client-aic14 initialized
Jan  1 00:00:12 imx21 daemon.alert klogd: Insert module aic14 (AIC14-1.0)
Jan  1 00:00:12 imx21 daemon.warn klogd: Module AIC14 assumes CODEC MCLK already configured for 20480000Hz
Jan  1 00:00:12 imx21 daemon.info klogd: Driver KPP-1.36 (REFERENCED)
Jan  1 00:00:13 imx21 daemon.info klogd: Driver DOZE-1.27 (REFERENCED)
Jan  1 00:00:14 imx21 daemon.err klogd: SPI2:: drvDoScan :Buero (bittorf)
Jan  1 00:00:15 imx21 daemon.err klogd: SPI2:: drvProcessScanCfm :Scan Confirm: Success 1 APs
Jan  1 00:00:15 imx21 daemon.info netsyncd[315]: creating FIFO_NETSYNC_HMON_NAME...
Jan  1 00:00:15 imx21 daemon.info netsyncd[315]: creating FIFO_HMON_NETSYNC_NAME...
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :Req to connect to new WLAN network
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :Connecting To AP...
Jan  1 00:00:18 imx21 daemon.err klogd: SPI2:: drvInitConnect :step2
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_CONNECT; setting CARRIER_ON
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00001003, IFF_UP=1
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already opened; enabling queue
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :step3 : u8Status 8
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :step4
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :Successful
Jan  1 00:00:19 imx21 daemon.err klogd: SPI2:: drvInitConnect :step6
Jan  1 00:00:19 imx21 daemon.err modprobe: modprobe: Can't locate module sound-slot-0
Jan  1 00:00:19 imx21 daemon.err modprobe: modprobe: Can't locate module sound-service-0-0
Jan  1 00:00:20 imx21 local0.debug dhcpcd[337]: broadcasting DHCP_DISCOVER
Jan  1 00:00:23 imx21 local0.debug dhcpcd[337]: DHCP_OFFER received from  (10.63.17.1)
Jan  1 00:00:23 imx21 local0.debug dhcpcd[337]: DHCP_ACK received from  (10.63.17.1)
Jan  1 00:00:23 imx21 daemon.err netsyncd[314]: father received(10) eth0 up!
Jan  1 00:00:23 imx21 daemon.info netsyncd[314]: Dhcp_start 337 return : 0 
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 8
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :No state change!
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvIoctl :Fast PS Request
Jan  1 00:00:26 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P1
Jan  1 00:00:26 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Jan  1 00:00:28 imx21 daemon.info netsyncd[314]: Dhcp_stop 359 return : 0 
Jan  1 00:00:28 imx21 local0.debug dhcpcd[347]: sending DHCP_RELEASE for 10.63.17.5 to 10.63.17.1
Jan  1 00:00:29 imx21 local0.err dhcpcd[347]: terminating on signal 1
Jan  1 00:00:29 imx21 daemon.err netsyncd[314]: father received(12) eth0 down!
Jan  1 00:00:29 imx21 daemon.err klogd: SPI2:: drvStop :Driver Stop: disable TX queue! (usage: 2)
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvIoctl :Deauth BSSID: 00:1d:7e:18:e3:89
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVENT_DISCONNECT; setting CARRIER_OFF
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00000002, IFF_UP=0
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already closed
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvOpen :opening net device
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvOpen :ERROR: Associated, but Carrier flag is set to CARRIER_OFF
Jan  1 00:00:41 imx21 daemon.err klogd: SPI2:: drvDoScan :Buero (bittorf)
Jan  1 00:00:42 imx21 daemon.err klogd: SPI2:: drvProcessScanCfm :Scan Confirm: Success 1 APs
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :Req to connect to new WLAN network
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :Disabling TX queue and setting CARRIER_OFF
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :Connecting To AP...
Jan  1 00:00:45 imx21 daemon.err klogd: SPI2:: drvInitConnect :step2
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PHGHHAL_EVNT_INIT_CONNECT; setting CARRIER_ON
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :netdev->flags=0x00000003, IFF_UP=1
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :device was already opened; enabling queue
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :step3 : u8Status 8
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :step4
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :Successful
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvInitConnect :step6
Jan  1 00:00:46 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Jan  1 00:00:54 imx21 local0.debug dhcpcd[386]: broadcasting DHCP_DISCOVER
Jan  1 00:00:57 imx21 local0.debug dhcpcd[386]: DHCP_OFFER received from  (10.63.17.1)
Jan  1 00:00:57 imx21 local0.debug dhcpcd[386]: DHCP_ACK received from  (10.63.17.1)
Jan  1 00:00:57 imx21 daemon.info netsyncd[314]: Dhcp_start 386 return : 0 
Jan  1 00:00:57 imx21 daemon.info netsyncd[314]: NTP server request on : ntp.xs4all.nl
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Jan  1 00:00:57 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P0
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
Jan  1 00:00:57 imx21 daemon.warn klogd: drvSetWOWFilter: Enable UNICAST: Disable ARP: Enable
Jan  1 00:00:57 imx21 daemon.warn klogd: Ip addr = 10.63.17.5. LMP=2
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :No state change!
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvIoctl :Fast PS Request
Jan  1 00:00:57 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P1
Jan  1 00:00:57 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Jan  1 00:00:57 imx21 daemon.warn klogd: Sensor driver: initialize device OV7660
Jan  1 00:00:57 imx21 daemon.warn klogd: Warning: Remapping obsolete /dev/fb* minor 32 to 1
Apr  7 09:58:16 imx21 daemon.info netsyncd[314]: NTP process return code : 0 
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 4
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Apr  7 09:58:19 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P0
Apr  7 09:58:19 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS wake (0) in Drvmain
Apr  7 09:58:19 imx21 daemon.info upgraded[312]: K_SW0_DWNLD_ACK
Apr  7 09:58:27 imx21 auth.info login[393]: root login  on `ttyp0' from `bittorf-AP.olsr'
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC0 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC1 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC2 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11LongRetryLimitAC3 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC0 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC1 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC2 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :dot11ShortRetryLimitAC3 = 8
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :PA Request
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :No state change!
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvIoctl :Fast PS Request
Apr  7 09:59:50 imx21 daemon.info klogd: PhgHhalDoM2SDMA:1661:-->P1
Apr  7 09:59:50 imx21 daemon.err klogd: SPI2:: drvHhalEventIndicationHandler :PS Ind (1) in Drvmain
Apr  7 10:14:53 imx21 auth.info login[408]: root login  on `ttyp1' from `bittorf-AP.olsr'
Apr  7 10:17:18 imx21 syslog.info -- MARK --

 

Ausgabe von /proc/cpuinfo auf einem VP6500

# cat /proc/cpuinfo
Processor      : ARM926EJ-Sid(wb) rev 4 (v5EJl)
BogoMIPS        : 133.01
Features        : swp half thumb fastmult
CPU implementer : 0x41
CPU architecture: ?(8)
CPU variant    : 0x0
CPU part        : 0x926
CPU revision    : 4
Cache type      : undefined 14
Cache clean    : undefined 14
Cache lockdown  : undefined 14
Cache unified  : Harvard
I size          : 16384
I assoc        : 4
I line length  : 32
I sets          : 128
D size          : 16384
D assoc        : 4
D line length  : 32
D sets          : 128
 
Hardware        : Freescale i.MX2 ADS
Revision        : 0000
Serial          : 0000000000000000
 

 

Software Modifikationen

 

Startscripts

Die Scripts in /etc/rc.d/" müssen im Hintergrund laufen. Tut ein Script das nicht, ist an dieser Stelle Schluß mit dem Bootvorgang.   Dann darf man als nächstes den Lötkolben anheizen und die serielle Schnittstelle (#UART) zugänglich machen.  

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.   Achtung!   Das Herumspielen an der wpa_supplicant.conf endet sehr schnell damit das man sich ausperrt   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.  

Versehentliche Aussperrung nach WPA2 Einstellversuch beheben

  1. DON'T PANIC!   Für den Fall das man sich den Zugangsweg per wireless abgeschnitten hat, gibt es, neben dem Bau eines seriellen Adapters und der Notwendigkeit zu löten, noch eine Variante um wieder auf das Telefon zu kommen:   den Demo-Modus!   Dieser Modus war dazu gedacht die Funktionalität der VPs ohne SIP-Server ausprobieren zu können. 2 Geräte starten dazu im WLAN-AdHoc-Modus mit unterschiedlichen IP's (192.168.10.1 + 192.168.10.2 , jeweils /24 = 255.255.255.0) und machen ein IBSS-Netzwerk mit WEP-Verschlüsselung auf (Key: VP6500 = 5648751265 beim VP5500 = 7295569793).   Nun kann man auch ein einzelnes Telefon in den Demo-Modus versetzen (vorhandener neuer Menüeintrag nach dem rooten, oder per Tastenkombination "*#3 "), gibt sich eine passende WLAN und IP-Einstellungen auf dem Rechner und schon kann man wieder darauf connecten und Fehleinstellungen wieder beheben. Dummerweise wird eine zufällige IBSS-Cell-ID verwendet, aber neuere Betriebssysteme können der Zelle trotzdem beitreten. Als ESSID kann man demo_mode_obiwan verwenden.  

Schritt für Schritt Anleitung für Linux

  Einstellungen   am Telefon

  • Telefon anschalten und per Menüeintrag oder Tastenkombination "*#3" in Demomodus versetzen (z.B. als Einstellung Handset 1)

-> IP des Telefons wird danach zu 192.168.10.1   am Computer

  • Konsole öffnen

per ifconfig checken welches das WLAN-Gerät am Rechner ist (im weiteren "wlan0" genannt) ifconfig wlan0 down iwconfig wlan0 mode ad-hoc (ad-hoc Modus aktivieren) iwconfig wlan0 essid 'demo_mode_obiwan' (Passende essid-Kennung setzen) iwconfig wlan0 key 5648751265 (Key für das VP6500) ifconfig wlan0 up ifconfig wlan0 192.168.10.2 (setzen der IP)   man kann nun mittels:   ping 192.168.10.1   testen ob alles korrekt verlaufen ist und man eine Antwort bekommt - sollte das der Fall sein ist man fertig!   Nun kann man per telnet oder ssh, mit den üblichen Benutzerkennung und dem Passwort, auf die IP 192.168.10.1 connecten und die Probleme beheben.  

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ü freigeschaltet.   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.  

Eigene Menüeinträge

  Es besteht die Möglichkeit Menüeinträge anzulegen, durch die Shellskripte ausgeführt werden. Im Folgenden ist dieses Vorgehen am Beispiel des ein- und ausschaltens von SSH beschrieben.  

SSH aktivieren & deaktivieren

 

  • Achtung! Folgendes Vorgehen kann das Gerät bricken, falls Telnet deaktiviert ist und irgendwas mit SSH schief läuft!
  • Die folgenden beiden Dateien repräsentieren die Menüeinträge und rufen enablessh bzw. disablessh auf.
  • /usr/local/apps/Applications/enablessh.desktop:

[Translation] File=QtopiaApplications Context=enablessh [Desktop Entry] Exec=enablessh Icon=Camera Type=Application Name[]=Enable SSH

  • /usr/local/apps/Applications/disablessh.desktop:

[Translation] File=QtopiaApplications Context=disablessh [Desktop Entry] Exec=disablessh Icon=Camera Type=Application Name[]=Disable SSH

  • enablessh und disablessh sind Shellskripte, die in /usr/local/bin/ liegen und folgendes enthalten:
  • /usr/local/bin/enablessh:
  1. !/bin/sh

touch /var/log/lastlog /etc/rc.d/init.d/S99dropbear restart exit(0)

  • /usr/local/bin/disablessh:
  1. !/bin/sh

/etc/rc.d/init.d/S99dropbear stop exit(0)

  • Nach einem Neustart des Telefons sollten im Menü Anwendungen die zwei neuen Menüpunkte auftauchen.

 

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:  

cd /usr/local/pics/qpe/
wget http://dein.server/woauchimmer/Matrix5.gif
rm /usr/local/pics/qpe/splash.gif
ln -s Matrix5.gif splash.gif

  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

# 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).   Um VCards in das XML Format zu konvertieren gibts es im Forum folgendes kleines C-Programm: [1] [2]  

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) oder auch Audacity recht komfortabel erzeugen lassen.   Auch .wav Dateien mit 22050Hz werden problemlos abgespielt (ein wenig bessere Qualität als 16000hz) und sind als Klingeltöne nutzbar. Dateien mit 44100Hz spielt es leider nur 'ruckelnd' ab (32000Hhz nicht getestet).   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.  

Systemtöne

 

  • Sämtliche Systemtöne liegen unter /usr/local/sounds/ und lassen sich problemlos durch andere Dateien ersetzen.
  • z.B.:
    • charge.wav - Ton, wenn Gerät in die Basisstation gesetzt wird

 

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 - time.fu-berlin.de (bzw. chronos.zedat.fu-berlin.de) kann man als server nehmen.   vi Tipp hilfe:

vi /usr/local/data/monitor.cfg
:%s/ntp.xs4all.nl/time.fu-berlin.de/g
:%s/130.142.110.71/130.133.1.10/g

  Aufgefallen ist, dass sich Telefone mit fest eingestellter IP nicht automatisch die Uhrzeit abrufen. Stellt man das Telefon auf DHCP, stellt sich die Uhr auch ohne Timeserver Modifikation auf die richtige Uhrzeit ein.   Wer lieber einen NTP-Client einsetzen möchte findet unter dem Link für #Weitere_Konsolenkommandos ein Paket mit ntpd oder auch ntpdate für den schnellen Zeitabgleich via Konsole:     ntpdate pool.ntp.org  

Zusätzliche Software

Dropbear (SSH-Server) installieren

 

  1. Mit telnet auf dem Gerät einloggen
  2. folgendes in die Kommandozeile kopieren
      cd /
      wget http://www.mikrocontroller.net/attachment/74656/dropbear.tgz
      tar -xzf dropbear.tgz
      rm dropbear.tgz
      cd /etc/rc.d/init.d
      mv dropbear S90dropbear
      ./S90dropbear start

Das Kommando in Zeile 6 (mv ...) ist notwendig damit dropbear bei jedem Reboot automatisch gestartet wird.   Prüfen ob dropbear gestartet ist und läuft:

  # ps
  PID  Uid    Stat Command
  136 root    S    /usr/sbin/dropbear

  Bei jedem Login sucht dropbear nach der /var/log/lastlog, daher sollte man abschließend noch ein

      touch /var/log/lastlog

  machen, um diese Datei anzulegen. Damit verschwinden auch die entsprechenden Fehlermeldungen im logread.  

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 ;-)

  Ggf. kann der Fehler "Error opening terminal: xterm-color" auftreten wenn nano gestartet wird, in diesem Fall hilft folgendes:  

  • /root/.bashrc öffnen (mit vi :-)
  • "export TERM=xterm" in die Datei schreiben
  • ausloggen / einloggen

 

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-2.1.1.tar.gz       depmod       mknod /dev/net/tun c 10 200  

Tinc 1.0.12 installieren

 

  • Mit telnet auf dem Gerät einloggen
  • folgendes in die Kommandozeile kopieren

      cd /       wget http://www.mikrocontroller.net/attachment/74396/tinc-1.0.12.tar.gz       tar -xzf tinc-1.0.12.tar.gz       depmod       mknod /dev/net/tun c 10 200  

Weitere Konsolenkommandos

  Auf http://thinksilicon.de/57/Hacking-the-VP6500.html finden sich einige nützliche Konsolentools. Darunter sind bc, lsof, file, curl, mc (bzw. mcedit), hexedit, mktemp, rsync, tcpdump, crond (mit crontab) und ntpd.

  • Hinweis zu tcpdump; muss folgendermaßen ausgeführt werden:

      tcpdump -U root  

simpler WLAN-Switcher

  Ohne tiefer gehende GUI-Programmiererfahrungen bei Qtopia zu haben, kann man sich mit folgendem WLAN-Switcher behelfen:   Im Script /user_data/prod/config_ats.sh stehen viele Befehle, wie man mittels config code Einstellungen vorschreiben kann. Dies habe ich mir mit folgenden eigenen Scripten zu nutze gemacht:       /root/switch_wlan.sh

  1. !/bin/bash
  2. ================================================
  3. WLAN-Switcher
  4. ================================================

CONFIG_CODE=`cat /user_data/config_code.txt` cp -f /usr/local/data/wpa_supplicant_ref_${CONFIG_CODE}.conf /user_data/wifi/wpa_supplicant.conf  

  • kopiert Anhand des config codes die wpa_supplicant.conf
  • es muss für jeden config code eine wpa_supplicant_ref_<config code>.conf vorhanden sein, am besten dazu die aktuelle /user_data/wifi/wpa_supplicant.conf dorthin kopieren

      /root/set_config_code.sh

  1. !/bin/bash

echo "$1" > /user_data/config_code.txt  

  • schreibt den ersten übergebenen Parameter in die Datei /user_data/config_code.txt

      /usr/local/bin/set2XXX

  1. !/bin/sh

/root/set_config_code.sh XXX /root/switch_wlan.sh reboot  

  • XXX durch den config code ersetzen
  • Script, welches als Applikation gestartet wird
  • derzeit leider keine "on-the-fly"-Eingabe des config codes möglich, daher muss für jedes WLAN ein Script vorhanden sein

      /usr/local/apps/Applications/set2YYY.desktop [Translation] File=QtopiaApplications Context=set2XXX [Desktop Entry] Exec=set2XXX Icon=Camera Type=Application Name[]=Enable YYY  

  • XXX durch den config code ersetzen (gleicher Scriptname wie oben)
  • YYY durch einmaligen Namen ersetzen
  • Diese Datei erscheint unter dem Name[] im Applications-Menü

  Theoretisch kann man mit dieser Methode auch problemlos zwischen mehreren SIP-Einstellungen und vielen weiteren Telefoneinstellungen umschalten (siehe Dateien in /usr/local/data) - der DemoMode funktioniert nach dem gleichen Prinzip.  

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 -p /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 tar xjf arm-linux-gcc-3.3.2.tar.bz2   sudo rm arm-linux-gcc-3.3.2.tar.bz2   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 voraus). 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).  

Sonstiges

 

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
ind5                        0703      4.20

 

VP6500

 

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

Wünsche und Nutzungsideen

Wer was äußern möchte, kann das hier reintippeln, zwecks Bündelung Interessen und Kräfte. Muss ja keiner das Rad 3x erfinden und man kann schaun was der ein oder andere macht. Eine Status und Kontaktangabe bei Sachen die in Arbeit sind wäre toll.  

Software

 

  • Audiostream-Player
  • MP3
    • madplay gibt es hier, der automatische Stromsparmodus stört aber noch
  • Browser und sei es nur für Wikipedia und Google
  • Mailclient
  • T9 Unterstützung bei Texteingabe
  • Skypebenutzung
  • Nutzungsmöglichkeit als Wireless-Webcam
  • WLAN-Repeater
  • Wecker
  • Voice-Crypto
  • Unterstützung von mehreren WLAN Profilen, damit man das Gerät an mehreren APs betreiben kann ohne jedesmal SSID / Key neu eingeben zu müssen. (Sollte durch mehrere Einträge in der wpa_supplicant.conf möglich sein. Diese wird aber bei Änderungen über's Menü komplett überschrieben. Alternative: #simpler WLAN-Switcher)
  • Unterstützung von mehreren SIP Profilen, um z.b. von einem SIP-Anbieter auf den anderen zu wechseln. Ideal wäre, wenn man 2 SIP Profile gleichzeitig nutzen könnte
  • YouTube Client, vgl. mit "MiniTube Linux"
  • 'ne aktuelle Firmware? z.B: mit 2.6er Kernel und Android?
  • Unterstützung für WLANs mit 802.1x die WPA2 verschlüsselt sind reparieren bzw. passende Konfig finden (unverschlüsselt geht schon)

 

Hardwarerweiterungen

 

  • Speichererweiterung
  • USB Anschluss
  • Blauzahn
  • zusätzlicher Anschluss um eine andere Videokamera anzuschließen mit CINCH

 

Nutzungsideen

 

  • VoIP Phone und Webcam (nahliegend)
  • WLAN-Finder
  • Repeater
  • mobiles Infogerät mit Wikizugriff und Mailpush in der Wireless-Bubble
  • Türöffner, Ferncontroller
  • Robohirn
  • WLAN-Radio
  • Video(Streaming)-Client in Verbindung mit VDR
  • Barcode-Reader
  • als Fernbedienung für PC (Winamp/Mediaplayer/VLC...
  • Streamclient und Fernbedienung für DBOX2 mit Linux