Reflashing Tool for Joggler
Latest Release: 5th February 2012
Download System v1.07 – (99MB) MD5
Download Reflash Script v1.11 – (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 robust method of restoring and reflashing the O2 Joggler to its factory defaults, 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. It also resets the Joggler’s NVRAM in case there’s anything suspicious hiding in there.
- This software was tested on three Jogglers which display the O2 logo on boot. If your Joggler displays the OpenPeak logo your mileage may vary, although in theory there is no difference between units regarding the contents of the 1GB internal flash memory. If you have an OpenPeak logo Joggler, I’d appreciate a comment on your success (or otherwise!). This software is used entirely at your own risk.
Instructions
The quick version is:
- Download the reflashing system from the link above and write it to a USB device of at least 512MB capacity.
- Download the latest reflashing script and copy it to the reflash directory on jog-boot.
- Add the original OpenPeak O2 image to the reflash directory on jog-boot (optional).
- Power off your Joggler and insert the USB stick into the side socket. USB hubs are not advised.
- Power on your Joggler and watch.
It is very important that you use good quality USB memory.
If your Joggler fails to boot or shows odd errors, try another USB device.
Updating
To update the reflashing script, just replace the jogglerflash.sh file in the reflash directory with the latest version. Easy!
Part 1: Create the Reflashing Device
Download the latest version of the reflashing system from the link above and follow the instructions for your operating system.
Linux
Open a Terminal window and run sudo fdisk -l to find your device name. Then:
sudo umount /dev/sdX*
gzip -dc lucid-3.1.9joggler1-r107.img.gz | sudo dd of=/dev/sdX bs=1M
Where sdX is your 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 lucid-3.1.9joggler1-r107.img.gz | sudo dd of=/dev/rdiskX bs=1m
Where diskX is your USB device.
Windows
These instructions are untested and 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 and Firmware Image File
Download the reflashing script and copy the file into the reflash directory of the jog-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:
http://o2.openpeak.co.uk/firmware/app-o2flash-26635.8686-S3-f1-reimage.tgz
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.
Part 3: Boot the Joggler
Make sure the Joggler is powered down and connect the USB device to the socket on the side. Avoid using USB hubs and extension cables, as these have been known to cause problems. The Joggler should display your boot logo before changing to:
Booting ‘Ubuntu Lucid – 3.1.9joggler1’
After a few moments the screen will talk you through the automated process.
How Does It Work?
The reflashing system is a debootstrapped version of Ubuntu Lucid (10.04) running with one of Jools Wills’ Joggler kernels. On startup a script is triggered, which checks for the existence of the OpenPeak reimage file. If it’s there it gets checksummed, if not it gets downloaded and checksummed. Then the internal memory is checked, 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.
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. Most (but not all) will boot the Joggler, but then it’s important that the stick be robust and of good quality, otherwise the process will fail later on.
If you’ve tried a couple of alternative USB sticks and the Joggler still won’t boot (but displays a boot logo) you will need to explicitly tell it 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. Powered hubs are best, but you may have success if your keyboard has a built-in 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.nshand 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.
Version 1.04 of the reflashing system has had some changes made to make the network detection more robust. Hopefully all issues with this have now been resolved.
“It was working, but the screen’s gone blank!”
Don’t panic! Your reflash is just taking a bit longer than expected and the screensaver has kicked in. If things seemed to be going fine, just let it run until the Joggler powers down and the light on your USB stick goes out. Turn off your Joggler, disconnect the USB stick and power back up.
In recent versions the reflashing script turns the screensaver off, so you shouldn’t see this issue any more.
“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 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.
- If you continue to have problems, please ask for help in this thread on the Joggler Forum.
For further discussion, please use the Reflashing Tool thread on the Joggler Forum.