Skip to content

Upgrading iPhone firmware using VMWare and Ubuntu 9.04

This was the second time I upgrade firmware on my iPhone, and second time I ran into the same problem.  In the middle of the update iTunes reports “Unknown error” and iPhone dies (well, goes into recovery mode, but it is not much help). If that happened to you, don’t panic! To make this geeky combination (Ubuntu 9.04, VMware, iTunes and iPhone software update) work, there’s a little trick you need to do.My setup:

– iPhone 3G 8Gb Sonera
– Ubuntu Linux 9.04 (Jaunty) on Lenovo T61 laptop, kernel 2.6.28-15
– VMware player 2.5.3
– guest OS: WinXP Home SP3 with iTunes 9.0.1.8

goal: upgrading firmware to 3.1.2

I used instructions on Menno Smits’ blog. Here’s the summary:

1. Create a file /etc/modprobe.d/blacklist-usb

sudo vim /etc/modprobe.d/blacklist-usb

2. Add usb modules not to be loaded into that file

blacklist snd_usb_audio
blacklist usbhid

I didn’t list ehci_hcd, and it still worked. By the way, USB HID stands for USB Human Interface Device, and blacklisting it might disable your USB mouse and keyboard as well. See a link in the end of the post how to work around it.

3. Unload blacklisted modules manually, in case if they have been loaded already

sudo /sbin/modprobe -r snd_usb_audio
sudo /sbin/modprobe -r usbhid

4. Reload kernel event manager for the changes to take effect

sudo /etc/init.t/udev reload

5. Restart VMware and make sure you also restart Windows in VMware (it took me seveal attempts to figure that this was the problem)

6. Now start iPhone software update in iTunes or “restore and update”, if you already tried without disabling usbhid and got your iPhone into recovery mode.

7. After update is complete, remove the blacklist file and restart kernel event manager again

sudo rm /etc/modprobe.d/blacklist-usb
sudo /etc/init.t/udev reload

If iTunes in WMware do not see iPhone, make sure that it is connected in VMware removable devices menu. Note that during firmware update iPhone might get disconnected – just connect it again using VMware removable devices menu.

I tried to verify suggestion from Will to disable only iPhone in ubuntu, using its USB ID, but don’t actually know if it worked, because I didn’t restart Windows in WMware and restore and update failed. Here’s what I did:

– connected iPhone and checked its USB ID:

$ lsusb

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 024: ID 05ac:1292 Apple, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 004: ID 0a5c:2110 Broadcom Corp. Bluetooth Controller
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

– created a file /etc/modprobe.d/usbhid

sudo vim /etc/modprobe.d/usbhid

with the following content

options usbhid quirks=0×05ac:0×1292:0×04

where 0x1292 is the USB ID displayed by lsusb command, and 0x04 is the instruction to ignore device with specified USB ID.

– did everything as isteps 1-7 except that I didn’t blacklist usbhid and didn’t unload it manually.

It would be interesting to know if anyone succeeds with iPhone firmware update on Ubuntu without blacklisting usbhid module completely.

Share

5 Comments

  1. Thanks for this post.

    I can confirm that the usbhid “quirks” method did *NOT* work for me, even restarting everything.

    Your module removal and blacklisting steps do work.

    Ubuntu 9.04 (Jaunty)
    VMware Workstation 6.5.3
    Dell Latitude E6500
    iPhone 3GS 32GB

    Friday, October 16, 2009 at 16:53 | Permalink
  2. Fred Tuggle wrote:

    I feel your frustration on this and thanks for the post.

    Looking at the updater log really helped me and I wrote about it on my blog post.

    http://backtothewind.com/code/iphone-firmware-upgrade-using-vmware-and-ubuntu-9-04/

    Tuesday, February 2, 2010 at 14:41 | Permalink
  3. Thanks for this write-up: it was invaluable at digging me out of a hole after I temporarily bricked my iPad trying to do precisely this and upgrade iOS from VMWare. For the record, in more recent kernels, it seems the snd_usb_audio module has been renamed snd-usb-audio.

    Sunday, July 10, 2011 at 19:03 | Permalink
  4. I i am so lucky this the web thing works and unfortunately your article certainly helped all of us. Might have you through to that family home advice one

    Friday, October 18, 2013 at 4:31 | Permalink
  5. The categories include movies, sports events and adult entertainment.
    After you get here, just follow all of the instructions and within a few minutes everything
    should be back up to date. There is Fastext and Teletext, plus DVB
    subtitles so you can get more out of your movies.

    Friday, October 18, 2013 at 14:09 | Permalink

4 Trackbacks/Pingbacks

  1. […] page before, it is possible to upgrade an iphone under ubuntu with vmware. BUT, as i’ve read on this page, it is easier as you think! here is my actually setup […]

  2. Hello world! | Techno Wibble on Saturday, September 25, 2010 at 10:01

    […] and even more reading around I finally plucked up the courage to do it. The main help with this was Ivan Kuznetsov who had written about this with ubuntu […]

  3. […] and even more reading around I finally plucked up the courage to do it. The main help with this was Ivan Kuznetsov who had written about this with ubuntu […]

  4. […] upgrade while using Windows XP in a VMWare guest OS on my Ubuntu system, I ran across this blog post by Ivan Kuznetsov. It kind of worked for me and you will need a non-usb keyboard and mouse if you’re not using […]

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*