Update iPhone firmware on Ubuntu with VMware

Apple recently released iPhone OS 3.0.1 to fix a vulnerability in its SMS service that can lead to remote code execution. Ouch. So much for its “I’m Apple, therefore I’m secure” marketing efforts. Ouch. So I need to update. Again.

My setup:

Ubuntu 9.04, VMware Server 2, Windows XP VM with iTunes (did anyone think I can leave this bloat-ware out?)

Run the XP VM first. What happens is that when the iPhone is connected via USB cable, Ubuntu detects it as a camera. We need to close the pop-up and connect the iPhone under VMware. The VM should be able to see the iPhone and start iTunes; remember to backup the phone, then get it to start the update process. You should see some progress bars running in iTunes during the update.

Now things get a little interesting…

Look at the iPhone and wait for a little progress bar to appear. When it does, unload the usbhid module:

rmmod usbhid snd_usb_audio snd_usb_lib

Depending on your system some modules listed may be in use by other modules. Unload them as well. Do note that removing usbhid will disable USB keyboards and mice, so it will be more convenient to use the good old PS/2 input devices just for now. With usbhid module unloaded, connect the iPhone under VMware again. For me, I chose Devices > Apple iPhone > Connect under the remote console using a dusty PS/2 keyboard (my USB mouse took a break with the unloaded usbhid).

Based on experience, the time window to unload usbhid and connect iPhone is roughly 1 minute from the time the little progress bar appears on iPhone, if the phone is not connected the update on iTunes will timeout with error 1611.

If this happen, reload the usbhid module:

modprobe usbhid

and update/restore in iTunes to start over.

Otherwise, cross your fingers and wait for the little progress bar to start progressing. From here onwards, the update is straight-forward: wait until it’s done. Thanks to those guys who contributed over at VMware forums 🙂

VMware Communities: Workstation 6 + Linux + iPhone


2 thoughts on “Update iPhone firmware on Ubuntu with VMware

  1. Just confirmed this works on Ubuntu 9.10 with VMware Workstation 7 x64 with XP as a guest OS. I had been looking for a solution to updating iPhone firmware within VMware for so long, and now I finally found it!

    One thing I noticed.. my USB KB/mouse set doesn’t stop working even after the rmmod usbhid. They’re hooked up to a USB KVM.. I wonder if that makes a difference.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s