This document will demonstrate the installation and updating of the kernel for running Debian on a PS3.
##### Note that I am just telling you how I would do something. I can in no way be responsible for any damage, although any damage here is rare.
##### Also note that this is not a "Hack". It is supported by Sony. Sony wanted to install a linux version on the PS3 by default but could not implement it before the release.
I also recommend some linux and general computing knowledge. If you are a newbie you are better off with ubuntu, or yellow dog. This is document is not n00b friendly.
Alright, First we need to prepare the PS3 to boot a Linux OS. I borrowed most of this beginning part from a Gentoo Document. (I like the Gentoo guys;) )
Note that otheros.self is no longer required in PS3 Firmwares 1.60 or higher
-- Things needed
* A PLAYSTATION 3 with a Hard Disk (20GB is fine)
* USB Keyboard, USB Mouse
* A FAT32 Formatted USB Storage Device/Flash drive (Memory Stick, SD card,...)
* The Debian Live CD
* Other OS Installer
* Blank optical media + burner
Instructions
* Download the Debian-Live ISO for PS3
http://ps3.keshi.org/debian-live/20070114/
- It uses Etch but the Lenny installer does not work because it cannot detect the PS3 DVD Drive, so we have to use Etch and upgrade it to Lenny. Or you can stop there and just use Etch, or you can continue and just upgrade the kernel. It's up to you.
--- For more information on the Debian PS3 Live CD, check out the site...
http://www.keshi.org/moin/PS3/Debian/Live
* Download the PS3 Other OS Installer, get the newest version
http://www.kernel.org/pub/linux/kernel/ ... istro-kit/
* Download and extract the ISO on your machine.
* Plug in a USB Drive into your PC.
* Go to the extracted ISO and copy the PS3 folder there to the root of your USB Flash Drive.
* Start the PS3 and go to Settings -> System Settings and format your Hard Disk.
* Once the Hard Disk is formatted, just click on Allot 10GB to Other OS. (Bear in mind that you can allot more space if you have a bigger hard disk.
* Now plug in the USB drive into the PS3 and go to Settings -> System Settings -> Install Other OS
* It will ask you to select the Other OS.
* Once you press the appropriate button, it will give you a warning. Accept it.
* You will see a black screen for a few moments. This is perfectly fine.
* Once done, you will be brought back to the PS3's Game OS.
* Go to Settings -> System Settings -> Default OS. Select Other OS from the list.
* Restart your PS3. You will be brought to the kboot prompt.
----
Installing Debian
At the kboot prompt we can type "install" and install just like we would normally install debian.
----
Cross Compiling Kernel
There are a number of ways to upgrade a kernel, I like to cross compile a kernel on a seperate machine to run on the PS3. You can get a kernel source from debian or from kernel.org. For now I would recommend the vanilla source from kernel.org. I would NOT recommend the PS3 git source that is available.
I really hope that the reader has compiled kernels in the past, as this will be slightly more difficult. If you are unsure of your abilities, maybe you may want to search for a yellow dog kernel or ubuntu kernel to use, although that is not a recommended behavior.
First let's install some packages.
- Code: Select all
sudo apt-get install bzip2 binutils kernel-package fakeroot debhelper module-init-tools initrd-tools initramfs-tools libqt3-mt-dev
Those are all the packages that you need to build kernels, it also includes a library for xconfig a qt gui for configuring the kernel.
We also most download compilers for the PS3's Cell Broadband Engine, and to install these compilers we will need the alien program to convert the rpm packages.
- Code: Select all
sudo apt-get install alien
These are the two rpm packages we need
- Code: Select all
wget http://mirror.lzu.edu.cn/software/Cell_SDK3.0/CellSDK-Open-RHEL/x86/ppu-gcc-4.1.1-57.i686.rpm
wget http://mirror.lzu.edu.cn/software/Cell_SDK3.0/CellSDK-Open-RHEL/x86/ppu-binutils-2.17.50-32.i686.rpm
--- Then install them and add them to your path.
- Code: Select all
sudo alien ppu-binutils-2.17.50-32.i686.rpm
sudo alien ppu-gcc-4.1.1-57.i686.rpm
sudo dpkg -i ./ppu-binutils_2.17.50-33_i386.deb
sudo dpkg -i ./ppu-gcc_4.1.1-58_i386.deb
export PATH=$PATH:/opt/cell/toolchain/bin
Checkout this site for more information on these packages.
http://www.free60.org/wiki/PPU-GCC
Now we can setup this kernel.
The new kernel sources contain default configs for the ps3 and this is what we will use. So to use it, first we must export our arch type.
- Code: Select all
export ARCH=powerpc
make ps3_defconfig
Now what I like to do is change the name of the kernel so I edit the makefile
- Code: Select all
gedit Makefile
and change the EXTRAVERSION line to "-playstation3" without the quotes, this will generate a package like 2.6.25-playstation3.
That command will cross compile and create the kernel image and kernel headers package for a PS3. Then all you have to do is put them on a USB disk and install them on your PS3.
- Code: Select all
fakeroot make-kpkg --initrd --arch=powerpc --cross-compile=ppu- kernel_image kernel_headers
When those packages are installed you need to edit your kboot.conf to boot to that kernel. This is what the beginning of my kboot.conf looks like.
- Code: Select all
sudo gedit /etc/kboot.conf
default=playstation
timeout=5
playstation='/boot/vmlinux-2.6.25-playstation3 initrd=/boot/initrd.img-2.6.25-playstation3 root=/dev/ps3da1 video=ps3fb:mode:129 splash vga=791'
single='/boot/vmlinux-2.6.25-playstation3 initrd=/boot/initrd.img-2.6.25-playstation3 root=/dev/ps3da1 single'
Obviously you want to change the names to the kernel version you are currently using. Then at the kboot prompt you will type "playstation" to boot into the new kernel, but it will also boot into it automatically, and single will boot into single user mode which is useful for fixing errors. To boot back into the regular PS3 game console just type "game", without the quotes, I always mean for you not to use the quotes.
Also note that I have commands in there that adjust my ps3 video mode and activate my splash screen, these shouldn't cause your kernel to fail if you don't have them installed. I have a regular TV, no HD, so I use fb:mode:129 to fit the screen to my TV. I would recommend compiling the newest version of ps3utils from the website.
To install ps3-utils first get the source.
- Code: Select all
wget http://www.kernel.org/pub/linux/kernel/people/geoff/cell/ps3-utils/ps3-utils-2.2.0.tar.gz
Then extract it. I'm writing this from memory so I don't remember if there were any dependencies.
First you must install the lib, so you have to navigate to ~/ps3-utils-2.2.0/lib
then
- Code: Select all
./configure
make
Then copy the created library files to /usr/lib/
- Code: Select all
cp ~/ps3-utils-2.2.0/lib/libps3-utils.la /usr/lib/
cp ~/ps3-utils-2.2.0/lib/flash.o /usr/lib/
Now go back to the root of the archive and compile the actual utility
- Code: Select all
cd ..
./configure
make
make install
I think make install will install the files, if not, you will have to copy all of the created binaries to /usr/bin/
Alright, that is all the information I have on the PS3. I haven't worked with it in a while, but at this point I still have not got the wireless to work. Also note that the hypervisor prevents access to the graphics card so the framebuffer is always used instead.


