- Table of contents
- General Usage
- Command Line Parameters
- Known Problems
osmocon
is a console tool for interfacing our baseband firmwar on the phone with applications in the host PC.
It is also used to download a firmware or bootloader into the phone over the serial line, which is currently implemented for the CompalE88 (C118C120C121C123) the CompalE99 (C155).
Supported Bootloaders are currently the CompalRamloader and the CalypsoRomloader.
After uploading a firmware, it turns into an HDLC mulitplexer/demultiplexer, allowing for multichannel communication with the device.
The phones console is on one such channel and will be redirected to the terminal (stdout) on which osmocom runs.
Several other HDLC channels are accessible by means of the following unix domain sockets:- /tmp/osmocom_l2 for the L1A_L23_Interface as used by mobile, ccch_scan and other host programs
- /tmp/osmocon_loader for the Bootloader
General Usage¶
- Connect your phone UART to a serial port of your PC, using a HardwareSerialCable (3.3V RS232 on 2.5mm headphone jack)
- Choose firmware you have to load, depending on a host program you want to run (see Applications)
- Load firmware to the phone, running osmocon like below. Fill in phone type and firmware name with your values. See HardwarePhones if you need to look up the phone type.
$ ./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/PHONE_TYPE/FIRMWARE.compalram.bin
- Make sure your phone is off. Briefly press the power-on button of your phone (short push, not like a regular phone boot!). Avoid charging the phone while using osmocon, this can inhibit the loader.
- Observe output resembling the following
got 2 bytes from modem, data looks like: 2f c8 got 5 bytes from modem, data looks like: 1b f6 02 00 41 got 1 bytes from modem, data looks like: 01 got 1 bytes from modem, data looks like: 40 Received PROMPT1 from phone, responding with CMD read_file(../../target/firmware/board/compal_e88/loader.compalram.bin): file_size=13404, hdr_len=4, dnload_len=13411 got 1 bytes from modem, data looks like: 1b got 1 bytes from modem, data looks like: f6 got 1 bytes from modem, data looks like: 02 got 1 bytes from modem, data looks like: 00 got 1 bytes from modem, data looks like: 41 got 1 bytes from modem, data looks like: 02 got 1 bytes from modem, data looks like: 43 Received PROMPT2 from phone, starting download handle_write(): 1023 bytes (1023/13411) handle_write(): 768 bytes (1791/13411) handle_write(): 768 bytes (2559/13411) handle_write(): 768 bytes (3327/13411) handle_write(): 768 bytes (4095/13411) handle_write(): 768 bytes (4863/13411) handle_write(): 768 bytes (5631/13411) handle_write(): 768 bytes (6399/13411) handle_write(): 768 bytes (7167/13411) handle_write(): 768 bytes (7935/13411) handle_write(): 768 bytes (8703/13411) handle_write(): 768 bytes (9471/13411) handle_write(): 768 bytes (10239/13411) handle_write(): 768 bytes (11007/13411) handle_write(): 768 bytes (11775/13411) handle_write(): 768 bytes (12543/13411) handle_write(): 768 bytes (13311/13411) handle_write(): 100 bytes (13411/13411) handle_write(): finished got 1 bytes from modem, data looks like: 1b got 1 bytes from modem, data looks like: f6 got 1 bytes from modem, data looks like: 02 got 1 bytes from modem, data looks like: 00 got 1 bytes from modem, data looks like: 41 got 1 bytes from modem, data looks like: 03 got 1 bytes from modem, data looks like: 42 Received DOWNLOAD ACK from phone, your code is running now! OSMOCOM Calypso loader (revision f45c5ee-modified) ====================================================================== Running on compal_e88 in environment ramload
- You can now interact with the phone through application programs like mobile, ccch_scan, osmoload, and others, depending on the firmware you loaded.
Command Line Parameters¶
Usage: ./osmocon [ -v | -h ] [ -d [t][r] ] [ -p /dev/ttyXXXX ] [ -s /tmp/osmocom_l2 ] [ -l /tmp/osmocom_loader ] [ -m {c123,c123xor,c140,c140xor,c155,romload,mtk} ] [ -c /to-be-chainloaded-file.bin ] [ -i beacon-interval (mS) ] file.bin
-v
Version¶
Show the version of the program
-h
Help¶
Get a short help message
-d [t][r]
Debug flags¶
Enable debug output of transmitted t
and/or received r
serial data
-p /dev/ttyXXXX
Serial Device¶
Specify the Serial Port to which your phone is connected, e.g. /dev/ttyUSB0 for the first USB-Serial converter in your system
-s /path/to/socket
Path of L1CTL socket¶
Specify the file system path for the unix domain socket to be used for L1CTL
-l /path/to/socket
Path to Loader socket¶
Specify the file system path for the unix domain socket to be used for interaction with osmoload
-i time
beacon interval, in milliseconds¶
Specify the beacon interval. On some devices default value should be adjusted in order for loading to work (for example Neo Freerunner works wit -i 13)
-m {c123,c123xor,c140,c140xor,c155,romload,mtk}
Download protocol mode¶
Select the protocol to be used for interaction with the phone:
c123
use the variant implemented by C118/C121/C123c123xor
use the variant implemented by C118/C121/C123 including XOR checksumc140
use the variant implemented by C139/C140c140xor
use the variant implemented by C139/C140 including XOR checksumc155
use the variant implemented by C155romload
use the variant implemented by the Ti Calypso rom-loader (aka fluid)mtk
use the protocol used by Mediatek DBB
Known Problems¶
In some situations (like, apparently, using FTDI serial cables), you might need the -m c123
mode for your MotorolaC123 instead of the normal -m c123xor
.
Updated by laforge almost 7 years ago · 29 revisions