Hi,

It was pointed out that I never made this public, so I'm correcting
that now.  The hardest parts of this involve rooting the phone and
messing around with various images, but.. that's something you want to
do anyways, right? :)

First, the bootstrap steps:

1. Root your phone (if you've purchased an ADP phone, you can skip
this).  Instructions are here:
http://androidcommunity.com/forums/f12/rooting-your-g1-made-easy-11825/

2. Install a decent image on the phone.  I'm using TF 1.5 for this:
http://jf.andblogs.net/2009/05/24/jfv151-images-are-out/.

3. If you've upgraded from an older image, you'll probably want to reset
the data back to factory defaults, otherwise you'll waste a few days
flailing at random things that don't work as expected, or regularly
crash (*cough*).  This can be done via
Settings -> SD card &  phone storage -> Factory data reset.

4. Next, install a Debian chroot (http://www.saurik.com/id/10).  The
unionfs overlay stuff is completely optional; I didn't bother.
Instead, I just chroot into the proper directory on a regular basis.
Enter the chroot, set a password ("passwd").  Install dbus, ssh, and
oFono ("apt-get install openssh-server dbus ofono").

5. Edit /etc/ofono/modem.conf, uncommenting out the G1 lines.  It
should look something like this:

# Sample for Android/HTC G1
[g1]
Driver=g1
Device=/dev/smd0


The following steps need to be run after every reboot of the phone:

6. /dev/smd0 is the serial device that oFono will use.  However,
Android's rild needs to not use it at the same time, otherwise the
phone will crash hard.  So, run "stop ril-daemon".  "ps |grep ril"
should not show rild running.

7. Get the phone connected to wireless (Settings -> Wireless
controls).  Android on the G1 regularly disconnects from wireless when
idle to save power; this is pretty damned annoying if you're ssh'd in.
I run Sipdroid on the phone precisely to work around this, as it keeps
the wifi enabled even when the phone is idle.  Sipdroid can be
installed via market, if you find the wireless power save feature as
irritating as I did.

8. Enter your Debian chroot.  Start sshd ("/etc/init.d/ssh
start").  Check the phone's IP address ("/sbin/ifconfig tiwlan0").
Start dbus ("/etc/init.d/dbus start").

9. You should now be able ssh into the phone (which will deposit you
into the Debian chroot, with a sane TERM and various other settings).
If you don't care to see the oFono debugging stuff, just start oFono
normally ("/etc/init.d/ofono start").  If you do want to see debugging
information, start it with the appropriate arguments and variables
("OFONO_AT_DEBUG=1 /usr/sbin/ofonod -n -d").  The modem's path should
be "/g10".

10. Power up the modem:

dbus-send --system --type=method_call --print-reply \
--dest=org.ofono  /g10 org.ofono.Modem.SetProperty string:"Powered" \
variant:boolean:true

11. Send an SMS:

dbus-send --system --print-reply --dest=org.ofono /g10 \
org.ofono.SmsManager.SendMessage array:string:"6175010000" \
string:"Moooooooooo"

12. Place a voice call:

dbus-send --system --print-reply --dest=org.ofono /g10 \
org.ofono.VoiceCallManager.Dial string:"6175010000" \
string:"default"



Note that ril initialization is still required for the modem; I haven't
tried completely getting rid of rild.  At some point it would be good
to try it and reverse engineer the binary ril blob to get a completely
free gsm stack, but that's not yet a priority of mine.


_______________________________________________
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to