|
|
PHILIPS VP5500 VoIP Telefon[Bearbeiten] Verwandte Artikel
[Bearbeiten] AllgemeinesBei 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. [Bearbeiten] Features[Bearbeiten] VP5500
[Bearbeiten] VP6500
[Bearbeiten] Das VPx500 'rooten'Um vollen Zugang zum System auf dem Gerät zu erhalten gibt es mehrere Möglichkeiten. [Bearbeiten] per telnetSobald 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 [Bearbeiten] per serieller SchnittstelleDazu 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. [Bearbeiten] per DNS-HackUm 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. [Bearbeiten] Anleitung für Fritz-Box-BenutzerDie Fritzboxen bieten bisher leider keine Möglichkeit, den verwendeten DNS direkt im Webinterface zu ändern, über Umwege geht es aber doch:
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) [Bearbeiten] AlternativeWer 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. [Bearbeiten] Anleitung fli4lMit 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>
[Bearbeiten] Hardware[Bearbeiten] verwendete Komponenten
[Bearbeiten] Messungen[Bearbeiten] Stromaufnahme[Bearbeiten] VP5500FIXME [Bearbeiten] VP6500Konfiguration: 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). [Bearbeiten] Telefon
[Bearbeiten] Ladegerät
[Bearbeiten] System-Takte# cat /proc/systclk
System clocks state:
Ref clock : 32768Hz (int, premult by 512)
MPLL clock: 263999905Hz (computed: 264000000Hz)
SPLL clock: 163840000Hz (computed: 163840000Hz)
CPU clock : 263999905Hz (PERSC = 0)
Bus clock : 132000000Hz (BCLKDIV = 1, computed: 131999952Hz)
CSI clock : unknown (cannot read register CSICR1)
USB clock : 20480000Hz (USB_DIV = 7)
Wait State: CS0U[WSC] = 10, CS0U[WSC] = 48
loops_per_jiffy = 665058
[Bearbeiten] Innenleben[Bearbeiten] Zerlegen des VP5500
[Bearbeiten] Bilder vom VP5500 Innenleben[Bearbeiten] Testpins am VP5500Original Liste von Tino herrunterladen.
[Bearbeiten] Testpins am VP6500Original Listen von Tino herunterladen. Rückseite, Vorderseite.
[Bearbeiten] UARTTIN 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)
[Bearbeiten] VP5500Die serielle Schnittstelle ist unten vom Akkufach aus zugänglich. Obiges Bild kennzeichnet die für die serielle Kommunikation benötigten Pins. [Bearbeiten] VP6500Die serielle Schnittstelle ist unten vom Akkufach aus zugänglich.
Obiges Bild kennzeichnet die für die serielle Kommunikation benötigten Pins. [Bearbeiten] JTAG[Bearbeiten] Hardware ModifikationenNachdem wir ja bereits wissen wie das #Zerlegen_des_Telefons geht, steht der Nachrüstung von Bauelementen und Schnittstellen generell nichts mehr im Wege. [Bearbeiten] Buchse für UART ins VP5500 einbauenZunä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.
[Bearbeiten] Anschluss für UART des VP6500 zugänglich machenVorteil 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.
Problembehandlung:
[Bearbeiten] Nutzung für Voice over IP (VoIP, SIP)[Bearbeiten] 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. [Bearbeiten] SIP EinstellungenDie SIP Einstellungen können alternativ auch direkt in der Datei /user_data/data/hpr0userparam.cfg vorgenommen werden. [Bearbeiten] Einstellung für 1und1
[Bearbeiten] Einstellung für Vodafone NGN (Arcor NGN)
(getestet von Micha mit EasyBox 802; an EasyBox n-WLAN ausschalten) [Bearbeiten] Einstellung für Sipgate
[Bearbeiten] Alternative Einstellung für SipgateHinter meiner Freetzbox hat die obige Einstellung nix gebracht - incoming calls wurden nicht signalisiert. Folgendes tut dagegen:
SIP Outbound muss leer sein. Ein Videotelefonat von Sipgate zu Sipgate zwischen zwei VP6500 wurde erfolgreich getestet. Gegebenenfalls muss die eigene Videoübertragung noch durch Drücken der Taste Video gestartet werden. Bei mir hat es nur per UDP funktioniert, aber mit starken Delays (>1s) [Bearbeiten] Einstellung für Ekiga.net
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 [Bearbeiten] Einstellung für Fritzbox 7170/7270 und andere mit SIP-RegistrarDie 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, 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. 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... [Bearbeiten] Fritz!Box HinweisHinter 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
[Bearbeiten] Eigener VoIP Server mit Asterisk[Bearbeiten] Asterisk auf einer Fritz!Box[Bearbeiten] Videogespräche zu anderen Clients / Softphones[Bearbeiten] Ekiga SoftphoneDamit 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
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. [Bearbeiten] DEMO MODEUm 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. [Bearbeiten] Software[Bearbeiten] Vorsicht Fallen!Es ist nicht schwer, sich den Zugang zum Telefon abzuschneiden, wenn man nicht aufpasst. [Bearbeiten] Betrieb mit aktivierter serieller SchnittstelleDas 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. [Bearbeiten] GrundlagenBestimmte Aktionen werden immer wieder benötigt. Diese sollen hier kurz beschrieben werden. Es werden dennoch grundlegende Kenntnisse von Kommandozeilen vorausgesetzt. [Bearbeiten] Dateien bearbeiten mit viAuf 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
[Bearbeiten] Dateien auf das Telefon ladenUm 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. [Bearbeiten] Dateien vom Telefon herunterladenAuch 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. [Bearbeiten] Alternative: DropbearWurde 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. [Bearbeiten] Grundkonfiguration, die das Leben erleichtert[Bearbeiten] .bashrcDie 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:
[Bearbeiten] Backup[Bearbeiten] Backup des FlashIf you want to make a backup of your root partition, you can do as follows:
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:
#Dateisystem herunterladen describes another way to dump the filesystem for closer examination. [Bearbeiten] Komplettes BackupDie 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.... [Bearbeiten] Zurückspielen der Backups1) 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:
5) Nun gibt man ein xdownload param Wobei 'param' der Teil ist, den man wiederherstellen will:
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) [Bearbeiten] Dateisystem herunterladenZum 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:
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
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. [Bearbeiten] Erkunden des Systems mit Bordmitteln[Bearbeiten] Ausgabe von dmesg auf einem VP65006>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 [Bearbeiten] Ausgabe von logread auf einem VP6500Jan 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 -- [Bearbeiten] 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 [Bearbeiten] Software Modifikationen[Bearbeiten] StartscriptsDie 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. [Bearbeiten] Aktivierung WPA2 UnterstützungStandardmäß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). [Bearbeiten] Trick1Mittels 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:
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! [Bearbeiten] Trick2Dieser 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. [Bearbeiten] Versehentliche Aussperrung nach WPA2 Einstellversuch beheben1. 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. [Bearbeiten] Schritt für Schritt Anleitung für LinuxEinstellungen am Telefon
-> IP des Telefons wird danach zu 192.168.10.1 am Computer
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. [Bearbeiten] Menüs[Bearbeiten] HauptmenuDas 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. [Bearbeiten] Genereller Aufbau Menü-EinträgeDie Einträge für die Menüs sind im Filesystem abgelegt:
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':
Hier ein Textfile mit allen desktop-Files als Referenz: Datei:AlleDesktopFiles.txt [Bearbeiten] Versteckte Menüeinträgein 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:
Hierfür ist folgende Prozedur nötig:
cd /usr/local/apps/Applications
vi demomode.desktop
[Translation]
File=QtopiaApplications
Context=DemoMode
[Desktop Entry]
Exec=demomode
Icon=Camera
Type=Application
Name[]=DemoMode
Dies schaltet einen Demo-Modus frei. [Bearbeiten] FranzösischEs 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. [Bearbeiten] Eigene MenüeinträgeEs 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. [Bearbeiten] SSH aktivieren & deaktivieren
[Translation] File=QtopiaApplications Context=enablessh [Desktop Entry] Exec=enablessh Icon=Camera Type=Application Name[]=Enable SSH
[Translation] File=QtopiaApplications Context=disablessh [Desktop Entry] Exec=disablessh Icon=Camera Type=Application Name[]=Disable SSH
#!/bin/sh touch /var/log/lastlog /etc/rc.d/init.d/S99dropbear restart exit(0)
#!/bin/sh /etc/rc.d/init.d/S99dropbear stop exit(0)
[Bearbeiten] Grafische AnpassungenSo 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: [Bearbeiten] Eigene Startup/Shutdown-AnimationDie 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.
Die GIF Animation kann bis zu 176x220 Pixel groß sein. Kleinere (möglicherweise auch größere) Bilder werden zentriert. [Bearbeiten] Eigener Boot/Update-ScreenDer 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:
Um solch ein Bild zu erstellen sind folgende Schritte notwendig:
tail -c 105600 input.bmp > output.raw
cat /user_data/prod/data/lcd_test_card1.bin > /dev/fb0 [Bearbeiten] Wichtige Verzeichnisse[Bearbeiten] Adressdaten
<?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] [Bearbeiten] Fotos & VideoschnappschüsseAlle 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. [Bearbeiten] KlingeltöneDie 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. [Bearbeiten] Systemtöne
[Bearbeiten] Timeserverhttp://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:
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 [Bearbeiten] Zusätzliche Software[Bearbeiten] Dropbear (SSH-Server) installieren
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. [Bearbeiten] Nano 2.2.3 installieren
cd /usr/bin
wget http://www.mikrocontroller.net/attachment/74023/nano
chmod +x /usr/bin/nano
Ggf. kann der Fehler "Error opening terminal: xterm-color" auftreten wenn nano gestartet wird, in diesem Fall hilft folgendes:
[Bearbeiten] OpenVPN 2.0.9 installieren
cd /
wget http://www.mikrocontroller.net/attachment/74380/openvpn.tar.gz
tar -xzf openvpn.tar.gz
depmod
mknod /dev/net/tun c 10 200
[Bearbeiten] OpenVPN 2.1.1 installieren
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
[Bearbeiten] Tinc 1.0.12 installieren
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
[Bearbeiten] Weitere KonsolenkommandosAuf 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.
tcpdump -U root [Bearbeiten] simpler WLAN-SwitcherOhne 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 #!/bin/bash
#================================================
# WLAN-Switcher
#================================================
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
/root/set_config_code.sh #!/bin/bash echo "$1" > /user_data/config_code.txt
/usr/local/bin/set2XXX #!/bin/sh /root/set_config_code.sh XXX /root/switch_wlan.sh reboot
/usr/local/apps/Applications/set2YYY.desktop [Translation] File=QtopiaApplications Context=set2XXX [Desktop Entry] Exec=set2XXX Icon=Camera Type=Application Name[]=Enable YYY
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. [Bearbeiten] Buildumgebung erstellenBislang 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. [Bearbeiten] WindowsDie 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). [Bearbeiten] Freetz-LinuxFü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' [Bearbeiten] Installation und Test der VP5500 ToolchainInstallation 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. [Bearbeiten] Freetz-Linux eigentlicher Anwendungszweckwer 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/ [Bearbeiten] LinuxDie bisher bekannten, mit VP5500 und VP6500 ausgelieferten Software-Versionen, basieren auf einer etwas älteren "gcc 3.3.2-ARM-Toolchain". Eine passende Toolchain für ein x86-basiertes Entwicklungssystem ist unter http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.3.2.tar.bz2 zu finden. Unter Debian-basierten Linux-Distros kann dieses Archiv z.B. nach /opt/VP5500/toolchain entpackt werden (einige der Makefiles im Forum setzen diesen Speicherort vorraus). Es ist jedoch zu beachten, dass diese Version der Toolchain auch über den Pfad /usr/local zugänglich sein sollte. Dazu kann mittels "ln -s /opt/VP5500/toolchain/usr/local/arm arm" in /usr/local ein Symlink auf den eigentlichen Speicherort gesetzt werden. [Bearbeiten] Hello WorldChristian 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. [Bearbeiten] Anpassen kleinerer Konsolen-Tools auf Cross-CompilierungDie 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). [Bearbeiten] Sonstiges[Bearbeiten] Hardware + Software VersionenListet mal eure Hardware- und Softwareversion aus dem Applications => System Info Menü auf, wenn sie hier noch nicht stehen! [Bearbeiten] VP5500
[Bearbeiten] VP6500
[Bearbeiten] Wünsche und NutzungsideenWer 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. [Bearbeiten] Software
[Bearbeiten] Hardwarerweiterungen
[Bearbeiten] Nutzungsideen
|