PS3 Boot Recovery HOWTO
2011.04.14

Copyright (c)  2007 Sony Computer Entertainment Inc.
Copyright  2007 Sony Corporation

Permission is granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.2 published by the Free
Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no
Back-Cover Texts. A copy of the license is included in the section entitled "GNU
Free Documentation License".

DISCLAIMER

THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS
OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE;
THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS,
COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE
OR IMPLEMENTATION OF THE CONTENTS THEREOF.

TRADEMARK NOTICE

"PLAYSTATION" and "PS3" are registered trademarks of Sony Computer Entertainment
Inc. "Cell Broadband Engine" is a trademark of
Sony Computer Entertainment Inc. Linux® is the registered trademark of Linus
Torvalds in the U.S. and other countries.
Other company, product and service names may be registered trademarks,
trademarks or service marks of others.

ABOUT THIS DOCUMENT

This note gives some tips on how to recover your PS3-Linux system when it
hangs up or no longer boots.

You can always find the latest version of this document, and some other useful
technical documents here:

  http://www.kernel.org/pub/linux/kernel/people/geoff/cell/

Please send comments to <geoff@infradead.org>.

PS3 BOOT RECOVERY HOWTO

1) Basic PS3 Tricks

** main power switch **

You should NEVER use the main power switch in the back of the PS3 to shutdown.
You can always force a shutdown with the front power button.

** force a shutdown **

To force the PS3 to shutdown, for example when Linux hangs up, press the power
button on the front of the system for about 10 seconds.  The hypervisor will
take control and shutdown the LPAR, then put the system in standby mode (red
LED).

** force the GameOS to boot **

To force the PS3 to boot into the GameOS, shutdown the PS3, then press and
hold the power button on the front of the system until a beep is heard, then
release the power button.  The video mode and boot flag settings will be re-set
to the defaults and the GameOS will boot.

** check bootloader integrity **

Use ps3-dump-bootloader to get the md5sum of the installed bootloader and
compare that value to the md5sum of the original bootloader file.

  ps3-dump-bootloader --sum

** re-install bootloader **

If you can boot into linux, then you can re-install bootloader with this
command:

  ps3-flash-util -w <bootloader-file>

<bootloader-file> is the name of the bootloader image file.  The bootloader
image file is often named otheros.bld.  If you cannot boot Linux, put the
bootloader image file on a supported type of media and boot into the GameOS and
install as you did in the original installation.  GameOS instalation
instructions are here:

  http://www.playstation.com/ps3-openplatform/manual.html

** backup flash data **

It is a good idea to make a backup of the data stored in flash memory.
To backup the entire flash memory use this:

  dd if=/dev/ps3flash of=flash-bak-`date +%y.%m.%d-%H.%M.%S`

You can also make a partial backup that does not include the bootloader
image with this:

  dd if=/dev/ps3flash of=flash-bak-`date +%y.%m.%d-%H.%M.%S` bs=2k count=1

Included in the partial backup is the bootloader location and size
but not the bootloader image, so update the backup if you install a
new bootloader.  If you restore from a a backup that used a
different bootloader you can recover by re-installing the current
bootloader.  This will write the proper bootloader location and size
to flash. 

You can view the settings in flash with this command:

  ps3-flash-util -s

If the flash gets corrupted it can then be restored with this:

  dd if=flash-bak-xx.xx.xx-xx.xx.xx of=/dev/ps3flash count=1 bs=`ls -l flash-bak-xx.xx.xx-xx.xx.xx | cut -d' ' -f5`

2) Other Recovery Tricks

** rescue CD **

A rescue CD can provide a richer environment for system recovery.  Fedora
provides iso images:

  http://download.fedora.redhat.com/pub/fedora/linux/releases/11/Fedora/ppc/iso/Fedora-11-ppc-netinst.iso