From DefCon Projects
Jump to: navigation, search
Line 47: Line 47:
Also nicht wundern das ist vollkommen normal.  
Also nicht wundern das ist vollkommen normal.  
Bei mir brauchte es auch meißt mehr als einen versuch um eine Verbindung mit <code>osmocon</code> herzustellen. Dazu einfach mahrmals die rote "Aus-Taste" am Handy betätigen.
Bei mir brauchte es auch meißt mehr als einen versuch um eine Verbindung mit <code>osmocon</code> herzustellen. Dazu einfach mahrmals die rote "Aus-Taste" am Handy betätigen.
''' Prüfen der Verbindung '''
Befindet sich bereits eine Baseband Firmware wie z.B. Layer1 auf dem Telefon, dann kann eine Ausgabe des Telefon die über die serielle Schnittstelle empfangen wurde wie
folgt ausssehen:
<pre>
OsmocomBB Layer 1 (revision osmocon_v0.0.0-1751-ga903b3c-modified)
~~
�======================================================================
~~
�Device ID code: 0xb4fb
~~
�Device Version code: 0x0000
~~
�ARM ID code: 0xfff3
cDSP ID code: 0x0128
Die ID code: c7860c1fc240d7f8
======================================================================
REG_DPLL=0x2413
CNTL_ARM_CLK=0xf0a1
CNTL_CLK=0xff91
CNTL_RST=0xfff3
CNTL_ARM_DIV=0xfff9
==========================~~
�============================================
Power up simcard:
~~
�Assert DSP into Reset
~~
�Releasing DSP from Reset
~~
�Setting some dsp_api.ndb values
~~
�Setting API NDB parameters
~~
�DSP Download Status: 0x0001
~~
�DSP API Version: 0x0000 0x0000
~~
�Finishing download phase
~~�� } } } } } } } ~~
�DSP Download Status: 0x0002
DSP API Version: 0x3606 0x0000
LOST 981!
~~
�BAT-ADC: 556  4  0  0 1023 376 351 258 
~~
� Charger at 34 mV.
~~
� Battery at 3801 mV.
~~
� Charging at 0 mA.
~~
� Battery capacity is 75%.
~~
� Battery range is 3199..3999 mV.
Battery full at 468 LSB .. full at 585 LSB
Charging at 239 LSB (204 mA).
BCICTL2=0x3ff
battery-info.flags=0x00000000
bat_compal_e88_chg_state=0
</pre>


== Software ==
== Software ==

Revision as of 16:25, 21 December 2014

In diesem Artikel möchte ich ein wenig auf die Benutzung von OsmocomBB in Verbindung mit einem Motorola C121 eingehen. OsmocomBB ist eine freie Software zum betreiben von Baseband-Prozessoren. Sie implementiert die Layer 1 bis 3 des ISO/OSI-Referenzmodells. Ein Vorteil der Software ist sicherlich, dass Applikationen in den RAM oder in den Flash des Handy geladen werden können.

Das Laden in den Flash hat dabei den Vorteil, dass die Applikation nach einem Neustart des Handys wieder weg ist. Die Firmware des Motorola C121 muss bei dem reinen Laden von Applikationen in den RAM also nicht modifiziert werden. Die Zerstörung des Handy ist somit so gut wie ausgeschlossen.

Hardware

Unterstützte Mobiltelefone

Aktuell werden von OsmocomBB die folgenden Mobiltelefone unterstützt:

Entworfen und Hergestellt von Compal, OEM von Motorola

  • Motorola C115/C117 (E87)
  • Motorola C123/C121/C118 (E88)
  • Motorola C140/C139 (E86)
  • Motorola C155 (E99)
  • MotorolaV171 (E68/E69)
  • SonyEricssonJ100i

Entworfen von Pirelli/Foxconn, Hergestellt von Foxconn

  • Pirelli DP-L10

Entworfen von Openmoko, Hergestellt von FIC

  • Neo 1973 (GTA01)
  • OpenMoko - Neo Freerunner (GTA02)

Es bietet sich aber an sich ein Motorola C123/C121/C118 zu besorgen, da die meisten Tutorials die im Netz zu finden sind für diese Gerätereihe (E88) geschrieben sind. Außerdem bekommt man Mobiltelefone dieser Reihe recht günstig bei Ebay (5-20€).

Serielle Schnittstelle

Um eine Verbindung mit einem Motorola C121 herzustellen wird die serielle Schnittstelle über den 2,5mm Kopfhörerausgang genutzt. Zu beachten ist dabei, dass die normale RS232-Schnittstelle eines IBM-PCs Spannungspegel von +/-12V zu Datenübertragung nutzt. Das serielle Schnittstelle des Handy darf allerdings nicht Spannungspegel größer als 3,3V ausgesetzt werden, da sonst die Gefahr besteht, dass der Schnittstellenbaustein auf der Leiterplatte des Handy den Geist aufgibt. Ich habe mir einfach ein Datenkabel aus einen alten 2,5mm Kopfhörerkabel und einem CP210x basierten USB Adapter-Kabel gebaut. Fertige USB <> RS232 TTL Adapter findet man recht günstig bei Ebay.

Möchte man sich direkt mit dem Handy verbinden um zum Beispiel Befehle zu senden, muss man folgende Schnittstelleneinstellungen benutzen:

  • Baudrate: 115200
  • Datenbits: 8
  • Parität: keine
  • Stop-Bit: 1
  • Flusskontrolle: keine

Pinbelegung

Die Pinbelegung der seriellen Schnittstelle gestaltet sich relativ einfach. Die Spitze des Stereo-Klinkensteckers enthält das Sendesignal (TxD) der mittlere Ring das Empfangssignal (RxD) und der große Kranz den Massebezug. Das ist auch nochmal in dem Bild rechts dargestellt. Da es sich bei der seriellen Schnittstelle normalerweise um einen Kopfhörerausgang handelt, kann es passieren das gerade in der Anfangsphase (also z.B. beim einschalten) komische Geräusche aus dem Telefon ertönen. Also nicht wundern das ist vollkommen normal. Bei mir brauchte es auch meißt mehr als einen versuch um eine Verbindung mit osmocon herzustellen. Dazu einfach mahrmals die rote "Aus-Taste" am Handy betätigen.

Prüfen der Verbindung

Befindet sich bereits eine Baseband Firmware wie z.B. Layer1 auf dem Telefon, dann kann eine Ausgabe des Telefon die über die serielle Schnittstelle empfangen wurde wie folgt ausssehen:

OsmocomBB Layer 1 (revision osmocon_v0.0.0-1751-ga903b3c-modified)
~~
�======================================================================
~~
�Device ID code: 0xb4fb
~~
�Device Version code: 0x0000
~~
�ARM ID code: 0xfff3
cDSP ID code: 0x0128
Die ID code: c7860c1fc240d7f8
======================================================================
REG_DPLL=0x2413
CNTL_ARM_CLK=0xf0a1
CNTL_CLK=0xff91
CNTL_RST=0xfff3
CNTL_ARM_DIV=0xfff9
==========================~~
�============================================
Power up simcard:
~~
�Assert DSP into Reset
~~
�Releasing DSP from Reset
~~
�Setting some dsp_api.ndb values
~~
�Setting API NDB parameters
~~
�DSP Download Status: 0x0001
~~
�DSP API Version: 0x0000 0x0000
~~
�Finishing download phase
~~�� } } } } } } } ~~
�DSP Download Status: 0x0002
DSP API Version: 0x3606 0x0000
LOST 981!
~~
�BAT-ADC: 556   4   0   0 1023 376 351 258  
~~
�	Charger at 34 mV.
~~
�	Battery at 3801 mV.
~~
�	Charging at 0 mA.
~~
�	Battery capacity is 75%.
~~
�	Battery range is 3199..3999 mV.
	Battery full at 468 LSB .. full at 585 LSB
	Charging at 239 LSB (204 mA).
	BCICTL2=0x3ff
	battery-info.flags=0x00000000
	bat_compal_e88_chg_state=0

Software

osmocon

Das Konsolentool osmocon kommuniziert mit dem Telefon. Außerdem kann damit eine Baseband Firmware oder ein Bootloader auf das Telefon geladen werde. Die mit osmocon in das Telefon geladene Baseband Firmware befindet sich im flüchtigen Speicher (RAM), das bedeutet das diese nach einem aus- und einschalten des Telefons erneut in das Telefon geladen werden muss. Diese Variante bietet sich zu Versuchszwecken an, da die Gefahr das Telefon dauerhaft unbrauchbar ("brick") zu machen vergleichsweise gering ist. Ist es gewünscht die Firmware dauerhaft in den Flash des Telefon zu übertragen, kann dazu das Tool osmoload benutzt werden.

Das Tool befindet sich ausgehend vom Hauptverzeichnis im Unterordner src/host/osmocon. Um die Layer1 Firmware in das RAM des Telefon (Motorola C121) zu laden:

$ ./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/compal_e88/layer1.compalram.bin

Danach, das Telefon einschalten.

osmoload

Das Tool osmoload dient zum lesen, schreiben und verifizieren der Firmware aufg das Telefon.

Bilder

Quellen

http://bb.osmocom.org/trac/wiki/Software/GettingStarted
http://bb.osmocom.org/trac/wiki/Hardware/Phones

Cookies help us deliver our services. By using our services, you agree to our use of cookies.