libsamsung-ipc

libsamsung-ipc is a free software implementation of the Samsung IPC modem protocol, found in many Samsung devices.
libsamsung-ipc contains the device-specific code for transport between the kernel interface and the upper layer (usually, the Radio Interface Layer) and the definition of the data structures and values used ion the protocol.

Development

libsamsung-ipc sources are hosted at: http://gitorious.org/replicant/external_libsamsung-ipc branch master

Status

The library itself is mostly complete: the actual protocol work takes places in the upper layer implementations, so only new devices support is left to be added.

ipc-modemctrl

ipc-modemctrl is a deprecated tool that was used at the beginning of the work for talking to the Nexus S modem. It implemented basic functionalities (mostly SIM unlocking and network registration).

Usage:

usage: ipc-modemctrl <command>
commands:
    start                 bootstrap modem and start read loop
    power-on              power on the modem
    power-off             power off the modem
arguments:
    --debug               enable debug messages
    --pin=[PIN]           provide SIM card PIN

It should go like this:

[I] Got SIM PIN!
[0] Starting modem on FMT client
[1] Starting modem_read_loop on FMT client
[2] Phone is powered up (LPM)!
[I] SIM card found
[I] SIM is initializing
[3] SIM init complete
[4] Modem is ready, requesting normal power mode
[I] SIM card found
[I] SIM is initializing
[3] SIM init complete
[5] Modem is fully ready
[I] Registered with network successfully!
[6] Registered with network! Got PLMN (Mobile Network Code): '20810'
[I] Registered with network successfully!
[6] Registered with network! Got PLMN (Mobile Network Code): '20810'
[I] Registered with network successfully!
[I] Registered with network successfully!
[6] Registered with network! Got PLMN (Mobile Network Code): '20810'
[I] SIM Phone Book init complete
We were able to make the following work: