Latest Release: 23rd June 2012
Download System v1.09 – (103MB) MD5
Download Reflash Script v1.12 – (11KB) CHANGELOG
The O2 Joggler is a great device. It’s useful, hackable, affordable and fun. However, there’s always the possibility that the fun might go too far and leave you with a Joggler that’s not as happy as it should be. So here’s a recovery tool that should bring it back to life.
This is designed to be a reliable method of reflashing the O2 Joggler, even in the event that the internal flash memory has had it’s partitions destroyed. The Joggler is remarkably robust and will continue to boot from external USB devices even when the internal memory has given up, so unless you have a hardware failure or EFI problem this should get things working again.
In addition, this system can also be used to write a completely different operating system to the internal memory, such as SqueezePlay OS. Instructions are provided below, but the alternative OS should have been designed to run from the internal memory. You could potentially flash anything, but not everything will work.
- The Reflashing Tool has now been extensively tested on many Jogglers, with a high degree of success. However, this software is used entirely at your own risk and will not repair a Joggler where the internal flash memory has become worn or damaged. If the internal memory has failed, you will no longer be able to run the default operating system, but there are many alternatives available that work extremely well from a USB storage device.
Instructions
If you are confident that you know what you are doing, here are the quick instructions. If you are at all unsure, please move down to ‘Part 1’ for more detailed steps.
The quick version is:
- Download the Reflashing System from the link above and write it to a USB device of at least 2GB capacity.
- If you wish to restore the original (O2) operating system:
- Download the latest Reflash Script and copy it to the reflash directory on rfl-boot.
- Add the original OpenPeak O2 image to the reflash directory on rfl-boot (optional).
- If you wish to write an alternative image file, such as SqueezePlay OS:
- Simply copy both the
.img.gz and .img.gz.md5 files to the reflash directory on rfl-boot.
- Power off your Joggler and insert the USB stick into the side socket.
- Power on your Joggler and watch.
If your Joggler fails to boot or shows odd errors, try another USB device.
Updating
If a new version of the Reflash Script is released, just replace the jogglerflash.sh file in the reflash directory with the latest version. There’s usually no need to replace the whole system.
Part 1: Create the Reflashing Device
Download the latest version of the Reflashing System from the link above and then follow the instructions for the operating system you are using.
Linux
Open a Terminal window and run sudo fdisk -l to find your target device name. Then:
sudo umount /dev/sdX*
gzip -dc joggler_reflash_<version>.img.gz | sudo dd of=/dev/sdX bs=1M
Where sdX is your target USB device.
Mac OS X
Open a Terminal window and run sudo diskutil list to find your device name. Then:
sudo umount -f /dev/diskX*
gzip -dc joggler_reflash_<version>.img.gz | sudo dd of=/dev/rdiskX bs=1m
Where diskX is your USB device.
Windows
These instructions are stolen from here.
Download Win32DiskImager, then unpack the .img.gz file using a tool like 7-zip. Run W32DiskImager.exe, and select the unpacked .img file. Choose the drive that corresponds to your USB stick and use ‘Write’ to write the image.
Part 2: Add the Script or Firmware Image
Restoring the O2 Operating System
Download the Reflashing Script and copy the file into the reflash directory of the rfl-boot volume on the USB device. If you have just written the Reflashing System to the device, you may need to unplug and reconnect it before the drive will mount.
If your Joggler does not have a wired network connection plugged into the back with access to the internet, you also need to download this file from OpenPeak:
Again, copy the file into the reflash directory on the USB device. Do not open or rename the file.
Windows Users: Please note that some versions of Internet Explorer will rename the .tgz file to .gz after downloading it. You’ll need to rename it back to .tgz for the file to be recognised.
Flashing an Alternative OS
To flash an alternative operating system to the Joggler’s internal memory, you will need that operating system’s compressed image file in .img.gz format and an accompanying .img.gz.md5 file, containing the checksum.
Copy both the .img.gz and .img.gz.md5 files to the reflash directory on rfl-boot. You do not require the Reflash Script or any OpenPeak files.
Part 3: Boot the Joggler
Make sure the Joggler is powered down, then connect the USB device to the socket on the side. The Joggler should display its boot logo before changing to:
Booting ‘O2 Joggler Reflashing Tool vX.XX’
After a few moments the screen will talk you through the automated process.
How Does It Work?
The Reflashing System is a version of Ubuntu Lucid (10.04) built with debootstrap and running a patched kernel based heavily on the work of Jools Wills. On startup a script is triggered, which checks the contents of the reflash directory on rfl-boot and takes appropriate action.
If we’re reflashing the original operating system, the Reflash Script is triggered, which downloads the appropriate file (if not already provided). This is then checksummed, the internal memory is examined and repartitioned if necessary, and the flashing process begins using Partimage. OpenPeak provide an early version of Partimage (complete with typos!) in the reimage file, so that’s the one we’re using.
If we’re flashing an alternative operating system, its image file is checked against the provided .md5 checksum to ensure it is intact. If this passes inspection, dd is used to write it directly to the internal storage.
Hopefully everything goes fine and the Joggler will shut down, ready for you to disconnect the USB device and power it back up.
Troubleshooting
If everything doesn’t go fine, here are the common faults:
“The reflash system doesn’t boot properly.”
So long as you see a boot logo (O2 or OpenPeak) on screen when you turn on the Joggler, it’s likely that you just need to use a different memory stick. There is a fair degree of variability on what works and what doesn’t, so trial and error is the best approach until you have found a memory stick that works for you.
If you’ve tried a couple of alternative USB sticks and the Joggler still won’t boot (but displays a boot logo) you can try telling it explicitly where to boot from. This can only be done using a USB keyboard and hub.
- Attach a keyboard and your memory stick to the Joggler through a USB hub.
- Turn on your Joggler and immediately begin pressing ESCAPE repeatedly for around 10 seconds.
- Type
fs0: and press RETURN. You won’t see any text on screen.
- Type
boot.nsh and press RETURN.
With luck, the Reflashing System should fire up. If nothing happens, try again. If nothing continues to happen, try fs1:, fs2:, etc. You may need to power off between attempts. Alternatively, try swapping around the order of devices on your USB hub or try another hub.
If you see no boot logo when powering on, you may have a fault with your EFI chip. There’s no fixing this without having a second working Joggler and nerves of steel. You will need to read ‘Recovering a Bricked EFI’ on the wiki.
“It just says ‘Stalling for network…’ and doesn’t get any further.”
This happens when you don’t have a wired ethernet connection plugged into the back of the Joggler, or the Joggler isn’t being given an address from a DHCP server. If you scroll up to ‘Part 2: Add the Script and Firmware Image File’ and follow the instructions, the Joggler doesn’t need a network connection and won’t wait for one to become available.
“It seemed to work, but I’m still stuck on the boot screen!”
Pop the USB key back into your computer and create a file in the reflash directory called repart. This will tell the script to recreate all of the partitions, even if it believes that it doesn’t need to be done. Eject the stick and use it to boot your Joggler again.
Interestingly, there are some Jogglers that will store the image perfectly, but still refuse to boot from their internal flash memory. Why this should happen is still a mystery, but if you have any insight, please let me know!
In the meantime, it might be worth looking at some of the other operating systems you can run on your Joggler, as a fix for this particular issue has not yet been found.
“It’s worked, but now it keeps trying to install an update and never stops rebooting!”
This happens on some Jogglers because of a response from OpenPeak’s servers when they look for updates. Why it happens on some and not on others is a bit of a mystery. However, there is an easy fix; with the kind donation of a misbehaving Joggler by Mr_Dave on the Joggler Forum, I have been able to create an update disabler (and re-enabler). Pop the files on a USB stick and allow the Joggler to reboot one more time.
“I can’t use SSH on my Joggler after reflashing.”
The reflash returns your Joggler to a completely factory-fresh state, so SSH will not be active. I created an SSH and SCP enabler which will get things working again.
tags: joggler,
linux