How to update your Windows iPod firmware on Linux

SyncPOD home


Disclaimer

This is for firmware 1.2 and above and for the Windows iPod only. Absolutely NO WARRANTY of any kind is given. The information provided on this page may make your iPod stop working. Do it at your OWN RISK! This information may as well become outdated! To even think about trying this you need to be able to work with modules and mount/unmount your iPod without problems. (Look at other HOWTOs first!)

This information is provided AS IS. I successfully updated my iPod form 1.20 to 1.21 and then to 1.26. This is just how I did it.

Beware: You can loose your data and/or your iPod!

Again: Do it at your OWN RISK!


Get the firmware

Get the latest firmware file.

Check if you have a vaild firmware file. It should look like the lines below:

  hexdump -c firmware_1.26.bin | head

  0000000   {   {   ~   ~           /   -   -   -   -   -   \
  0000010   {   {   ~   ~       /                               \
  0000020   {   {   ~   ~   |                                       |
  0000030   {   {   ~   ~   |       S       T       O       P       |
  0000040   {   {   ~   ~   |                                       |
  0000050   {   {   ~   ~       \                               /
  0000060   {   {   ~   ~           \   -   -   -   -   -   /
  0000070   C   o   p   y   r   i   g   h   t   (   C   )       2   0   0
  0000080   1       A   p   p   l   e       C   o   m   p   u   t   e   r
  0000090   ,       I   n   c   .   -   -   -   -   -   -   -   -   -   -

If it does NOT look like that, DON'T update your iPod with that file!


Locate the firmware partition

Connect your ipod.

Look at the output of the modprobe command:

  modprobe sbp2

  ... kernel:   Vendor: Apple     Model: iPod              Rev: 1.21
  ... kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02
  ... kernel: Attached scsi removable disk sda at scsi3, channel 0, id 0, lun 0
  ... kernel: SCSI device sda: 9780750 512-byte hdwr sectors (5008 MB)
  ... kernel: sda: test WP failed, assume Write Enabled
  ... kernel:  sda: sda1 sda2

The first partition is 'sda1'. This is where the firmware is stored. This may be 'sdb' or any 'sd*' device on your system.


Backup the firmware

Simply type (replace the 'sda' to match your configuration):

  dd if=/dev/sda1 of=ipod_firmware_1.21.backup

The file has approx. 32MB which is the uncompressed firmware size.


Update the firmware

Only do this if your iPod is FULLY CHARGED.

Simply type (replace the 'sda' to match your configuration):

  dd if=firmware_1.26.bin of=/dev/sda1

Now type

  rmmod sbp2

and wait. First you should see a reconnect icon - do so. Then you should see a progress bar (the firmware gets uncompressed). After an automatic reset you have the firmware you wish.

In order to be able to mount your iPod again, dis- and reconnect your IEEE1394 cable.

After the modprobe command you should see:

  modprobe sbp2

  ... kernel:   Vendor: Apple     Model: iPod              Rev: 1.24
  ... kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02
  ... kernel: Attached scsi removable disk sda at scsi2, channel 0, id 0, lun 0
  ... kernel: SCSI device sda: 9780750 512-byte hdwr sectors (5008 MB)
  ... kernel: sda: test WP failed, assume Write Enabled
  ... kernel:  sda: sda1 sda2

Funnily it says 1.24, but it says 1.26 on the ipod itself, maybe this is a new bug ;-)


If something unwanted happens ...

Don't blame me!

Try to get it into IEEE1394 mode in the following order. Stop if you see the IEEE1394 icon:

Now you should be able to see the partitions from Linux and dd your backup back.

If this won't help use an iPod restore utillity.

If this won't help you have to try an apple store ...


SyncPOD home

iPod is a registered trademark of Apple Computer
Linux is a registered trademark of Linus Torvalds
Windows is a registered trademark of Microsoft