petitboot
overview
Petitboot is a graphical bootloader for the PlayStation 3. It's based on the existing kboot project, plus the twin windowing system for the GUI.
At present, petitboot is very much a work-in-progress, but works on our test PS3.
Petitboot is licensed under the GPL v2.
download
Petitboot, version 0.2:
- otheros.bld (PS3 flash image, 3.4M)
The installing section below has instructions on installing petitboot.
I have another image, same as the above, but with a telnet server, a ssh server and a http server enabled. However, this isn't secure; there is no password set, and anyone with network access to the machine can get root access. Only run this image if your ps3 is on a trusted network:
- otheros-petitboot+network.bld (PS3 flash image, 3.5M)
You will need to rename this to otheros.bld after you
download it.
installing
- Put your
otheros.bldfile on to a USB disk, in a file called/PS3/otheros/otheros.bld. Assuming your USB disk is mounted at/media/usbdisk:[jk@pokey ~]$ mkdir -p /media/usbdisk/PS3/otheros [jk@pokey ~]$ cp otheros.bld /media/usbdisk/PS3/otheros/
If you don't have a USB disk, you can use any sort of media that the PS3 can read - CDROM, DVD, compact flash, etc. Just make sure that the file is called/PS3/otheros/otheros.bld. - Plug the USB disk into your PS3, and navigate to System -> System Settings -> Install Other OS. The PS3 should find the new file on the USB disk, and install it.
- To boot with petitboot, just set your default operating system to "Other OS" (System -> System Settings -> Set Default OS), and reboot.
using petitboot
When petitboot starts, it will try to find existing Linux installations,
by looking for /etc/kboot.conf, /etc/yaboot.conf or
/boot/petitboot.conf files on any storage device connected to
the system. Each discovered device will appear on the left-hand pane of the
screen, and bootable options appear on the right.
You can navigate the boot options with the arrow keys (if you have a USB keyboard connected), or the D-Pad on the PS3 controller. If you're using a PS3 controller, you will need to have it connected via the cable; wireless controllers aren't supported (yet!).
If you only have a blank screen with no device icons, then petitboot has not found any bootable options. You can flip to a text console (using Alt+F1) to investigate.
The keys available are:
| Keyboard | PS3 Controller | Function |
|---|---|---|
| Up, Down, Left, Right | Navigate between boot options | |
| Enter | Circle | Select boot option |
| Delete / Backspace | Square | Boot to GameOS |
| 1 | Switch to 720p mode | |
| 2 | Switch to 1080i mode | |
| 3 | Switch to 1080p mode | |
| Alt+F1 | Switch to text console (Alt+F2 to switch back) | |
console
If you're using the petitboot console (either by hitting Alt+F1, or logging-in over the network), you have a fairly standard Linux system available. Some notes:
- Discovered storage devices are mounted under
/var/tmp/mnt, named by their device. For example,/dev/ps3da1is mounted at/var/tmp/mnt/ps3da1. - To boot a kernel, use kexec:
kexec -f --append="root=/dev/ps3da1" /var/tmp/mnt/ps3da1/boot/vmlinux.
petitboot is a work-in-progress: if you have any problems, email me at jk@ozlabs.org.
sources
Petitboot sources, version 0.2. You only need these if you want to make changes to petitboot.
- petitboot-0.2.tar.gz (.tar.gz, 81kB)
You'll also need the 'twin' windowing system, version 0.0.3
- libtwin-0.0.3.tar.gz (.tar.gz, 400kB)
building
The above images are built using the OpenWRT infrastructure. However, we need to apply some patches (which are in the process of submission). Grab the patches here.
This OpenWRT config file was used for the otheros images above.
authors
Petitboot was brought to you by Benjamin Herrenschmidt <benh@kernel.crashing.org> and Jeremy Kerr <jk@ozlabs.org>.
acknowledgements
Petitboot wouldn't be possible without:
- Keith Packard for the initial twin library
- The OpenWRT team for the build infrastructure
- Artwork from the kde team