Ok, so I’ve got an iPhone 3G at 3.1.2 and want to upgrade it to IOS 4.1 – so what’s so hard about that? Well, the only fly in the ointment is that I run an ubuntu desktop (10.04) with Windows 7 within a vmware virtual machine. And I’m scared that I’m going to brick my iPhone.
After much reading around 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 9.04.
I followed Ivan’s instructions almost to the letter, modified slightly as they didn’t quite work for me. The steps that worked for me were:
- Create a file /etc/modprobe.d/blacklist-usb
- sudo vi /etc/modprobe.d/blacklist-usb
- Add usb modules not to be loaded into that file
- blacklist snd_usb_audio
- blacklist usbhid
- Unload blacklisted modules manually, in case if they have been loaded already
- sudo /sbin/modprobe -r snd_usb_audio
- sudo /sbin/modprobe -r usbhid
- (I ignored the .conf warnings that were displayed)
- Reload kernel event manager for the changes to take effect
- Restart VMware and make sure you also restart Windows in VMware
I thought this would work but unfortunately I still had problems in upgrading to 4.1. The first step of upgrading is for iTunes to take a backup of your iPhone. This took forever – well not quite forever but a long time – and then it failed and asked me if I wanted to proceed without a backup. I cancelled the upgrade at this point.
Instead, I performed a manual backup (right-clicked on my iPhone in iTunes and selected “backup”. I then selected “restore my iPhone” in iTunes and this installed 4.1 successfully. All I had to do then was to resync my iPhone and it was done. I now have my iPhone 3G at IOS 4.1.
Don’t forget to then remove the blacklist file and reload the kernel event manager.
- sudo rm /etc/modprobe.d/blacklist-usb
- sudo reload udev