Reflash System for OpenFrame
Latest Release: 19th September 2014
Originally written for the O2 Joggler, the latest version of the Reflash System can be used on both types of the commonly available OpenFrame units. These are great devices; useful, hackable, affordable and fun. However, if you find yourself with one that’s less than happy, with any luck this system should bring it back to life.
This is designed to be a reliable method of reflashing any OpenFrame device, even in the event that the internal flash memory has had it’s partitions destroyed. These units are 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 OS 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 OpenFrames, with a high degree of success. However, this software is used entirely at your own risk and will not repair a OpenFrame 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.
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 ‘Step 1: Create the Reflashing Device’ for more detailed steps.
The quick version is:
- Download the Reflash System from the link above and write it to a USB device of at least 1GB capacity.
- Mount the USB device on your system; you should see a volume named rfl-boot.
- On the rfl-boot volume there is a directory named reflash.
- Download the operating system image you would like to write, along with its MD5 file.
- Copy both the compressed .img.gz file and its .img.gz.md5 counterpart into the reflash directory.
- Eject the USB device.
- Power off your OpenFrame and insert the USB stick into the USB socket.
- Power on your OpenFrame and watch.
If your OpenFrame fails to boot or shows odd errors, try another USB device.
Step 1: Create the Reflash 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. Note: Some browsers think they’re being very helpful by automatically decompressing files when you download them, but that’s not always what we want to happen. You may need to rescue the original .img.gz file from your Trash or Recycle Bin after the download has completed.
Open a Terminal window and run
sudo fdisk -l to find your target device name. Then:
sudo umount /dev/sdX* gzip -dc reflash111_of.img.gz | sudo dd of=/dev/sdX bs=1M
Where sdX is your target USB device. Once complete, disconnect and reconnect the USB device to have it mounted correctly.
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 reflash111_of.img.gz | sudo dd of=/dev/rdiskX bs=1m
Where diskX is your USB device. Once complete, disconnect and reconnect the USB device to have it mounted correctly.
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.
As with the other operating systems, you will likely then need to disconnect and reconnect the USB device to have it mounted correctly.
Step 2: Add the Firmware Image
Once mounted on your computer, there should be a volume named rfl-boot available. Take a look on this volume and you will find a directory named reflash. This is where the image files must be copied for them to be written to the OpenFrame internal memory.
There are additional files on the rfl-boot volume which are used by the system for booting. Please leave these as they are.
To flash an operating system to the OpenFrame’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. Below is a link to the most recent operating system by OpenPeak, in case that’s what you’re after.
Copy both the
.img.gz.md5 files to the reflash directory on rfl-boot.
Step 3: Boot the OpenFrame
Make sure the OpenFrame device is powered down, then connect the USB device to the socket. The OpenFrame should display its boot logo before changing to:
Booting ‘OpenFrame Reflash System v1.11’
After a few moments the screen will walk you through the automated process.
In the latest version, I’ve added the ability for the Reflash System to reprogram an OpenFrame’s EFI chip.
This is dangerous.
The EFI data, equivalent to a BIOS, is held on a 1MB capacity chip and should not be confused with the usual 1GB (or 2GB) internal storage. It’s accessed via the Intel Firmware Hub, which appears as
/dev/fh on the system. On the OpenFrame 1 or Joggler, if you overwrite the data with something that doesn’t work, you’ll have a brick that will need to be dismantled so that you can replace the EFI chip with one that works. Reflash the OpenFrame 2 with a broken EFI and you will just have a brick, unless you are very handy with a soldering iron.
Reflashing the EFI
If your OpenFrame can boot the Reflash System, there’s almost certainly no need for you to do this. You need to know your reasons before attempting it and realise that if it goes wrong, you’ll have to find your way through it manually. Very likely with a screwdriver.
The Reflash System will only write files to the EFI chip which are properly named and accompanied by an MD5 checksum. As with the standard internal memory images, the EFI firmware image and its checksum should be placed in the reflash directory of rfl-boot and be the only files in that location. The firmware image should be a
.img file and not be compressed.
The naming convention is
<ofdevice>_efi_<identifyingname>.img so for the default O2 EFI on a Joggler, it would be of1_efi_o2.img.
The system will not flash a file beginning with ‘of1’ to a OpenFrame 2 or vice-versa.
How Does It Work?
On startup a script is triggered, which checks the contents of the reflash directory on rfl-boot and takes appropriate action. Image files are 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 OpenFrame will shut down, ready for you to disconnect the USB device and power it back up. If things go awry, the system will hopefully be able to suggest a resolution. It’s basically a big wrapper for the
dd command. ;)
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 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 OpenFrame 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.
fs0:and press RETURN. You won’t see any text on screen.
boot.nshand press RETURN.
With luck, the Reflash System should fire up. If nothing happens, try again. If nothing continues to happen, try
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 seemed to work, but I’m still stuck on the boot screen!”
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 OpenFrame after reflashing.”
Depending on the image you have written, your OpenFrame could be in a totally factory-fresh state, so SSH may 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.