(26 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
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. | 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. | 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. | ||
Die Zerstörung des Handy ist somit so gut wie ausgeschlossen. | |||
== Hardware == | == Hardware == | ||
Line 26: | Line 24: | ||
* OpenMoko - Neo Freerunner (GTA02) | * 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. | 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 === | === 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. | 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. | 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. | 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. | ||
Line 47: | Line 43: | ||
[[File:OsmocomBB_Belegung.png|80px|thumb|right]] | [[File:OsmocomBB_Belegung.png|80px|thumb|right]] | ||
< | 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 <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 == | |||
=== osmocon === | |||
Das Konsolentool <code>osmocon</code> kommuniziert mit dem Telefon. Außerdem kann damit eine | |||
Baseband Firmware oder ein Bootloader auf das Telefon geladen werde. Die mit <code>osmocon</code> 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 <code>osmoload</code> benutzt werden. | |||
Das Tool befindet sich ausgehend vom Hauptverzeichnis im Unterordner <code>src/host/osmocon</code>. Um die Layer1 Firmware | |||
in das RAM des Telefon (Motorola C121) zu laden: | |||
<code>$ ./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/compal_e88/layer1.compalram.bin</code> | |||
Danach, das Telefon einschalten. | |||
=== osmoload === | |||
Das Tool <code>osmoload</code>, dass sich im selben Ordner wie <code>osmocon</code> befindet, dient zum lesen, schreiben und verifizieren der Firmware. | |||
=== mobile === | |||
Das Tool <code>mobile</code> beinhaltet viele Funktionen die auch auf einem normalen GSM Telefon (Senden / Empfangen von SMS, Telefonate, ...) zu finden sind. Dafür greift es auf die Daten der Layer1 Baseband Firmware zurück. Das Tool implementiert dabei Layer 2 und 3 der ISO/OSI Schichtenmodells und stellt ein ein Steuerungsmenü über Ethernet zur Verfügung, dass bequem über ein Terminal Programm aufgerufen werden kann. | |||
<code>mobile</code> befindet sich von Hauptordner aus in dem Unterordner <code>src/host/layer23/src/mobile</code> | |||
Um das Tool zu starten und als Server auf <code>localhost</code> unter Port 4247 zu agieren. muss <code>mobile</code> | |||
wie folgt aufgerufen werden: | |||
<code>$ ./mobile -i 127.0.0.1</code> | |||
Das Programm meldet sich bei einer erfolgreichen Verbindung z.B. wie folgt: | |||
<pre> | |||
<000f> sim.c:1223 init SIM client | |||
<0006> gsm48_cc.c:63 init Call Control | |||
<0007> gsm480_ss.c:231 init SS | |||
<0017> gsm411_sms.c:63 init SMS | |||
<0001> gsm48_rr.c:5500 init Radio Ressource process | |||
<0005> gsm48_mm.c:1324 init Mobility Management process | |||
<0005> gsm48_mm.c:1037 Selecting PLMN SEARCH state, because no SIM. | |||
<0002> gsm322.c:5037 init PLMN process | |||
<0003> gsm322.c:5038 init Cell Selection process | |||
<0003> gsm322.c:5099 No stored BA list | |||
VTY available on port 4247. | |||
</pre> | |||
Um jetzt auf die Benutzerschnittstelle von vom <code>mobile</code> zuzugreifen, einfach eine Telnet-Verbindung aufbauen: | |||
<code>$ telnet 127.0.0.1 4247</code> | |||
Dann kann das Telefon in beliebiger Art gesteuert werden (Durch drücken von "?" erscheinen die Befehle): | |||
<pre> | |||
Welcome to the OsmocomBB control interface | |||
OsmocomBB> | |||
show Show running system information | |||
list Print command list | |||
exit Exit current mode and down to previous mode | |||
help Description of the interactive help system | |||
enable Turn on privileged mode command | |||
terminal Set terminal line parameters | |||
who Display who is on vty | |||
monitor Monitor... | |||
no Negate a command or set its defaults | |||
OsmocomBB> | |||
</pre> | |||
Über "enable" kann in den erweiterten Modus umgeschaltet werden: | |||
<pre> | |||
OsmocomBB# | |||
exit Exit current mode and down to previous mode | |||
help Description of the interactive help system | |||
list Print command list | |||
write Write running configuration to memory, network, or terminal | |||
show Show running system information | |||
disable Turn off privileged mode command | |||
configure Configuration from vty interface | |||
copy Copy configuration | |||
terminal Set terminal line parameters | |||
who Display who is on vty | |||
monitor Monitor... | |||
no Negate a command or set its defaults | |||
off Turn mobiles off (shutdown) and exit | |||
sim SIM actions | |||
network Network ... | |||
call Make a call | |||
sms Send an SMS | |||
service Send a Supplementary Service request | |||
test Manually trigger cell re-selection | |||
delete Delete | |||
OsmocomBB# | |||
</pre> | |||
Einige Funktionen, wie z.B. eine SMS Senden gehen nur wenn sich die SIM-Karte gegenüber der BS ausgewiesen hat und OsmocomBB | |||
mit Sende-Funktionnalität kompiliert wurde. | |||
== Beispiel == | |||
In diesem Beispiel beschreibe ich wie vorzugehen ist um die entsprechende Layer1 Baseband Firmware in das Telefon zu laden um | |||
dann mit den Host-Tools (<code>mobile</code>, <code>ccch_scan</code>, <code>cell_log</code>, ...) ein Verbindung darauf aufzubbauen. | |||
Zuerst solltet ihr in Erfahrung bringen welche Schnitstelle den USB/Seriell-Wandler auf dem Linux Rechner repäsentiert. Bei mir ist das | |||
<code>/dev/ttyUSB0</code>. Außerdem solltet ihr natürlich schon ein mit OsmocomBB kompatibles Telefon besitzten. Je nachdem welches Telefon ihr besitzt wird zwischen | |||
verschiedenen Hardware Revisionen unterschieden. | |||
Zu sind die Telefone Motorola C118/C120/C121/C123 der Hardware Revision CompalE88 zuzuordnen, das Motorola C155 hingegen der Revision CompalE99. | |||
Das muss bei der Auswahl der Firmware zu Flashen in das RAM beachtet werden. | |||
=== libosmocore Biblithek kompilieren === | |||
Diese Bibliothek muss zuerst Kompiliert werden um OsmocomBB nutzen zu können. | |||
Bibliothek Quellcode holen: | |||
<pre> | |||
git clone git://git.osmocom.org/libosmocore.git | |||
</pre> | |||
Wichtig ist das der GCC Cross-Compiling für ARM-Architekturen unterstützt! | |||
<pre> | |||
cd libosmocore/ | |||
autoreconf -i | |||
./configure | |||
make | |||
sudo make install | |||
cd .. | |||
</pre> | |||
=== OsmocomBB kompilieren === | |||
Um OsmocomBB erfolgreichen kompilieren zu können muss der GCC Code für ARM-Architekturen (Cross-Compiling) erzeugen können. Dazu | |||
muss die "GNU toolchain for ARM" auf dem System eingerichtet werden. Das wird an dieser stelle nicht beschrieben. | |||
Zu aller erst müsst ihr euch den aktuellen Quellcode aus dem Git Repo ziehen: | |||
<pre> | |||
git clone git://git.osmocom.org/osmocom-bb.git | |||
cd osmocom-bb | |||
git pull --rebase | |||
</pre> | |||
Das Kompilieren geht dann ziemlich einfach durch das eingebaute <code>make</code>-Skript: | |||
<pre> | |||
cd src | |||
make | |||
</pre> | |||
=== Layer1 Firmware flashen === | |||
Lädt die Baseband Firmware Layer1 in den RAM des Telefon: | |||
<code>$ ./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/compal_e88/layer1.compalram.bin</code> | |||
Ist die Baseband Firmware Layer1 bereits dauerhaft in den Flash des Telefon, mittels <code>osmoload</code> geladen worden kann | |||
eine Verbindung wie folgt aufgebaut werden: | |||
<code>$ ./osmocon -p /dev/ttyUSB0 -m c123xor</code> | |||
Evtl. muss das Telefon bei dem Vorgang einmal ein- und wieder ausgeschaltet werden. | |||
== Bilder == | == Bilder == | ||
Line 57: | Line 267: | ||
== Quellen == | == Quellen == | ||
[http://bb.osmocom.org/trac/wiki/Software/GettingStarted http://bb.osmocom.org/trac/wiki/Software/GettingStarted] | [http://bb.osmocom.org/trac/wiki/Software/GettingStarted http://bb.osmocom.org/trac/wiki/Software/GettingStarted]<br> | ||
[http://bb.osmocom.org/trac/wiki/Hardware/Phones http://bb.osmocom.org/trac/wiki/Hardware/Phones] | [http://bb.osmocom.org/trac/wiki/Hardware/Phones http://bb.osmocom.org/trac/wiki/Hardware/Phones] |
Latest revision as of 11:51, 22 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
, dass sich im selben Ordner wie osmocon
befindet, dient zum lesen, schreiben und verifizieren der Firmware.
mobile
Das Tool mobile
beinhaltet viele Funktionen die auch auf einem normalen GSM Telefon (Senden / Empfangen von SMS, Telefonate, ...) zu finden sind. Dafür greift es auf die Daten der Layer1 Baseband Firmware zurück. Das Tool implementiert dabei Layer 2 und 3 der ISO/OSI Schichtenmodells und stellt ein ein Steuerungsmenü über Ethernet zur Verfügung, dass bequem über ein Terminal Programm aufgerufen werden kann.
mobile
befindet sich von Hauptordner aus in dem Unterordner src/host/layer23/src/mobile
Um das Tool zu starten und als Server auf localhost
unter Port 4247 zu agieren. muss mobile
wie folgt aufgerufen werden:
$ ./mobile -i 127.0.0.1
Das Programm meldet sich bei einer erfolgreichen Verbindung z.B. wie folgt:
<000f> sim.c:1223 init SIM client <0006> gsm48_cc.c:63 init Call Control <0007> gsm480_ss.c:231 init SS <0017> gsm411_sms.c:63 init SMS <0001> gsm48_rr.c:5500 init Radio Ressource process <0005> gsm48_mm.c:1324 init Mobility Management process <0005> gsm48_mm.c:1037 Selecting PLMN SEARCH state, because no SIM. <0002> gsm322.c:5037 init PLMN process <0003> gsm322.c:5038 init Cell Selection process <0003> gsm322.c:5099 No stored BA list VTY available on port 4247.
Um jetzt auf die Benutzerschnittstelle von vom mobile
zuzugreifen, einfach eine Telnet-Verbindung aufbauen:
$ telnet 127.0.0.1 4247
Dann kann das Telefon in beliebiger Art gesteuert werden (Durch drücken von "?" erscheinen die Befehle):
Welcome to the OsmocomBB control interface OsmocomBB> show Show running system information list Print command list exit Exit current mode and down to previous mode help Description of the interactive help system enable Turn on privileged mode command terminal Set terminal line parameters who Display who is on vty monitor Monitor... no Negate a command or set its defaults OsmocomBB>
Über "enable" kann in den erweiterten Modus umgeschaltet werden:
OsmocomBB# exit Exit current mode and down to previous mode help Description of the interactive help system list Print command list write Write running configuration to memory, network, or terminal show Show running system information disable Turn off privileged mode command configure Configuration from vty interface copy Copy configuration terminal Set terminal line parameters who Display who is on vty monitor Monitor... no Negate a command or set its defaults off Turn mobiles off (shutdown) and exit sim SIM actions network Network ... call Make a call sms Send an SMS service Send a Supplementary Service request test Manually trigger cell re-selection delete Delete OsmocomBB#
Einige Funktionen, wie z.B. eine SMS Senden gehen nur wenn sich die SIM-Karte gegenüber der BS ausgewiesen hat und OsmocomBB mit Sende-Funktionnalität kompiliert wurde.
Beispiel
In diesem Beispiel beschreibe ich wie vorzugehen ist um die entsprechende Layer1 Baseband Firmware in das Telefon zu laden um
dann mit den Host-Tools (mobile
, ccch_scan
, cell_log
, ...) ein Verbindung darauf aufzubbauen.
Zuerst solltet ihr in Erfahrung bringen welche Schnitstelle den USB/Seriell-Wandler auf dem Linux Rechner repäsentiert. Bei mir ist das
/dev/ttyUSB0
. Außerdem solltet ihr natürlich schon ein mit OsmocomBB kompatibles Telefon besitzten. Je nachdem welches Telefon ihr besitzt wird zwischen
verschiedenen Hardware Revisionen unterschieden.
Zu sind die Telefone Motorola C118/C120/C121/C123 der Hardware Revision CompalE88 zuzuordnen, das Motorola C155 hingegen der Revision CompalE99. Das muss bei der Auswahl der Firmware zu Flashen in das RAM beachtet werden.
libosmocore Biblithek kompilieren
Diese Bibliothek muss zuerst Kompiliert werden um OsmocomBB nutzen zu können.
Bibliothek Quellcode holen:
git clone git://git.osmocom.org/libosmocore.git
Wichtig ist das der GCC Cross-Compiling für ARM-Architekturen unterstützt!
cd libosmocore/ autoreconf -i ./configure make sudo make install cd ..
OsmocomBB kompilieren
Um OsmocomBB erfolgreichen kompilieren zu können muss der GCC Code für ARM-Architekturen (Cross-Compiling) erzeugen können. Dazu muss die "GNU toolchain for ARM" auf dem System eingerichtet werden. Das wird an dieser stelle nicht beschrieben.
Zu aller erst müsst ihr euch den aktuellen Quellcode aus dem Git Repo ziehen:
git clone git://git.osmocom.org/osmocom-bb.git cd osmocom-bb git pull --rebase
Das Kompilieren geht dann ziemlich einfach durch das eingebaute make
-Skript:
cd src make
Layer1 Firmware flashen
Lädt die Baseband Firmware Layer1 in den RAM des Telefon:
$ ./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/compal_e88/layer1.compalram.bin
Ist die Baseband Firmware Layer1 bereits dauerhaft in den Flash des Telefon, mittels osmoload
geladen worden kann
eine Verbindung wie folgt aufgebaut werden:
$ ./osmocon -p /dev/ttyUSB0 -m c123xor
Evtl. muss das Telefon bei dem Vorgang einmal ein- und wieder ausgeschaltet werden.
Bilder
Quellen
http://bb.osmocom.org/trac/wiki/Software/GettingStarted
http://bb.osmocom.org/trac/wiki/Hardware/Phones