HP/Palm Pre2 Developer Device

Recently my free HP/Palm Pre 2 developer device arrived from the US here in Germany.

In March I wrote an email to HP/Palm to apply for the “developer program”, in which they offered free Pre2 devices to qualified developers. As I’m involved in the SHR-Project and especially in the port of it to the Palm Pre product family, it is really great to get supported by HP/Palm itself!

Thank you very much HP/Palm for supporting the FOSS community in such a way!

The first project I started to bring FOSS to the Pre is Bootr, which is a multiboot solution capable of booting serveral Linux distributions like WebOS, SHR or Android on your HP/Palm Pre, Pre+ and Pre2.

The next bigger project I’ll be involved with is msmcomm, which is a utility to communicate with the Palms modem. Thanks to the awsome work of the guys from the FSO-Project this utlity is already capable of initializing the modem, communicating with the SIM card, reading SIM contacts, using a 3G data connection and even initiating and accepting a call. My work will hopefully lead to being able to send and recieve SMS.

To work on this I setup my enviroment like this:

  • Cross-compile the serial_forward utility (git.freesmartphone.org) for the Pre (using OpenEmbedded or another cross-toolchain) and copy it over
  • Enable usbnet on the Pre:
    usbnet enable
  • Connect to the Pre using novaterm:
  • Stop the TelephonyInterfaceLayer:
    stop TelephonyInterfaceLayer
  • Reset the modem:
    pmmodempower cycle
  • Run serial_forward, to forward the modem to you host computer:
    ./serial_forward -n /dev/modemuart -p 3001 -t hsuart
  • On your host computer configure the usbnet interface:
    ifconfig usb0
  • Install libmsmcomm, msmcomm-specs and msmcommd
  • Change the connection settings in msmcommds config (/etc/msmcommd.conf) to look like this:
  • [connection]
    # Which type of connection we should use to connect to the modem: network, serial
    # type = serial
    # path = /dev/modemuart
    # If you want to connect to the modem over a network link you should use the
    # configuration below
    type = network
    ip =
    port = 3001

  • Start msmcommd:
  • Install mdbus2 or any other DBus debugging tool
  • Issue the following DBus commands, to setup the modem:
    org.msmcomm /org/msmcomm org.msmcomm.Management.Reset
    org.msmcomm /org/msmcomm org.msmcomm.Management.Initialize
    org.msmcomm /org/msmcomm org.msmcomm.Misc.TestAlive
    org.msmcomm /org/msmcomm org.msmcomm.SIM.VerifyPin "PIN1" "1234"
    org.msmcomm /org/msmcomm org.msmcomm.State.ChangeOperationMode "ONLINE"

Creative Commons Lizenzvertrag