{"id":455,"date":"2009-09-24T07:35:25","date_gmt":"2009-09-24T11:35:25","guid":{"rendered":"https:\/\/lowtek.ca\/roo\/?p=455"},"modified":"2009-09-24T07:35:25","modified_gmt":"2009-09-24T11:35:25","slug":"itouch-firmware-upgrade-with-vmware","status":"publish","type":"post","link":"https:\/\/lowtek.ca\/roo\/2009\/itouch-firmware-upgrade-with-vmware\/","title":{"rendered":"iPod Touch firmware upgrade with VMWare"},"content":{"rendered":"<p>With the recent OS 3.1.1 release it was really only a matter of time before I got around to upgrading again.\u00a0 My <a href=\"https:\/\/lowtek.ca\/roo\/2009\/ipod-touch-3-0-upgrade\/\">previous firmware upgrade<\/a> was not very smooth.\u00a0 As I&#8217;ve mentioned previously, I run <a href=\"http:\/\/en.wikipedia.org\/wiki\/Itunes\">iTunes<\/a> on a <a href=\"http:\/\/en.wikipedia.org\/wiki\/VMware\">VMWare<\/a> image of <a href=\"http:\/\/en.wikipedia.org\/wiki\/WindowsXP\">Windows XP<\/a> &#8211; hosted on my <a href=\"http:\/\/www.ubuntu.com\/\">Ubuntu<\/a> desktop.<\/p>\n<p>During the firmware upgrade process the iPod changes the type of USB device it is &#8211; this causes problems for Linux\/VMWare.\u00a0 I had previously thought there was no way to get around these issues, making VMWare based firmware upgrades impossible.\u00a0 I&#8217;m happy to report that I was wrong.<\/p>\n<p>Motivated by the <a href=\"http:\/\/www.engadget.com\/2009\/09\/09\/iphone-ipod-touch-os-3-1-1-is-live\/\">OS 3.1.1 upgrade being free of charge<\/a> (to <span style=\"text-decoration: line-through;\">suckers<\/span> users who had purchased 3.0, and only $5 otherwise), I figured I&#8217;d take another run at making this work under Ubuntu \/ VMWare.\u00a0 I found a <a href=\"http:\/\/freshfoo.com\/blog\/iphone_upgrade_with_vmware\">post that discussed upgrading the iPhone under VMWare<\/a>, and it turns out that this was pretty much the magic sauce to make things work.\u00a0 The steps are shamelessly reproduced here, I cannot take the credit:<\/p>\n<p>Create a file <code>\/etc\/modprobe.d\/blacklist-us<\/code>b containing:<\/p>\n<p><code>blacklist snd_usb_audio<br \/>\nblacklist usbhid<\/code><\/p>\n<p>Reload udev to refresh the configuration we just changed:<\/p>\n<p><code>sudo \/etc\/init.d\/udev reload<\/code><\/p>\n<p>Forcefully remove the kernel modules:<\/p>\n<p><code>sudo \/sbin\/modprobe -r snd_usb_audio<br \/>\nsudo \/sbin\/modprobe -r usbhid<br \/>\n<\/code><br \/>\nPerform the upgrade under VMWare.<\/p>\n<p>Reverse these steps after the upgrade to restore your Ubuntu machine to normal:<br \/>\n<code>sudo rm \/etc\/modprobe.d\/blacklist-usb<br \/>\nsudo \/etc\/init.d\/udev reload<\/code><\/p>\n<p>Read on for gory details on what I actually did..<\/p>\n<p><!--more-->Since the <a href=\"http:\/\/freshfoo.com\/blog\/iphone_upgrade_with_vmware\">blog post that I based this on<\/a> was targeted at the iPhone, I figured I didn&#8217;t need to use all of the steps. Based on poking around with lsmod, it seemed the only USB module that was active was usbhid.\u00a0 So my 1st attempt I omitted snd_usb_audio from the blacklist.<\/p>\n<p><a href=\"https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2009\/09\/bad_upgrade.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-456\" title=\"bad_upgrade\" src=\"https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2009\/09\/bad_upgrade.jpg\" alt=\"bad_upgrade\" width=\"369\" height=\"96\" \/><\/a><\/p>\n<p>This was a mistake, the process hung with the dialog above &#8211; failing to locate my iPod part way through the upgrade.\u00a0 It turns out the iPod Touch is a much closer cousin to the iPhone than it seems.\u00a0 In one of the reset\/reboot modes &#8211; it apparently advertises itself as a USB audio device of some form (microphone?).\u00a0 Thus it is necessary to blacklist the snd_usb_audio module to prevent Linux from trying to have a conversation with this device, interrupting the VMWare access.<\/p>\n<p>Oh yeah, and usbhid &#8211; if you happen to have a USB mouse as I do &#8211; you&#8217;ll find that once you issue the sudo \/sbin\/modprobe -r usbhid your mouse will no longer work.\u00a0 I ended up using a 2nd PC with VNCViewer to &#8220;remotely&#8221; control my desktop to get mouse events in.<\/p>\n<p><a href=\"https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2009\/09\/success.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-457\" title=\"success\" src=\"https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2009\/09\/success.jpg\" alt=\"success\" width=\"369\" height=\"92\" \/><\/a><\/p>\n<p>Once I had the right set of steps as shown at the start of this post, I was in business.\u00a0 Of course, due to my initial failure I was using the restore option vs. upgrade.\u00a0 In the end its the same thing and I&#8217;ll get it right the first time with the next firmware upgrade.<\/p>\n<p>I was a bit worried that I had messed up the backup again (as I did with the <a href=\"https:\/\/lowtek.ca\/roo\/2009\/ipod-touch-3-0-upgrade\/\">3.0 upgrade<\/a>).\u00a0 A <a href=\"http:\/\/support.apple.com\/kb\/HT1766\">backup is created<\/a> when you initiate the upgrade, but as that had failed &#8211; would I be able to restore the backup after the firmware restore finished?<\/p>\n<p><a href=\"https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2009\/09\/victory.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-458\" title=\"victory\" src=\"https:\/\/lowtek.ca\/roo\/wp-content\/uploads\/2009\/09\/victory.jpg\" alt=\"victory\" width=\"484\" height=\"165\" \/><\/a>Was I glad to see this come up on screen.\u00a0 Next step, a multi-hour re-sync of all of my data.\u00a0 After a long wait, all my apps were there &#8211; along with their data, including the eBook library in Stanza.<\/p>\n<p>As a bonus &#8211; I did come across a <a href=\"http:\/\/teknofire.net\/articles\/2009\/07\/06\/ubuntu-vmware-and-accessing-the-iphone\/\">related blog posting<\/a> that outlines how to create a config file to prevent Linux from detecting your iPod Touch as a camera (if that bothers you).\u00a0 This post also seems to imply that blacklisting the usbhid may not be required.\u00a0 By removing snd_usb_audio and preventing Linux from trying to handle the iPod Touch as a camera (or anything else) you can keep usbhid &#8211; I&#8217;ll leave that as an excercise for the reader.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the recent OS 3.1.1 release it was really only a matter of time before I got around to upgrading again.\u00a0 My previous firmware upgrade was not very smooth.\u00a0 As I&#8217;ve mentioned previously, I run iTunes on a VMWare image of Windows XP &#8211; hosted on my Ubuntu desktop. During the firmware upgrade process the &hellip; <a href=\"https:\/\/lowtek.ca\/roo\/2009\/itouch-firmware-upgrade-with-vmware\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;iPod Touch firmware upgrade with VMWare&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,11,12],"tags":[],"class_list":["post-455","post","type-post","status-publish","format-standard","hentry","category-computing","category-gadgets","category-how-to"],"_links":{"self":[{"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/posts\/455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/comments?post=455"}],"version-history":[{"count":4,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/posts\/455\/revisions"}],"predecessor-version":[{"id":462,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/posts\/455\/revisions\/462"}],"wp:attachment":[{"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/media?parent=455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/categories?post=455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lowtek.ca\/roo\/wp-json\/wp\/v2\/tags?post=455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}