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
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
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
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
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
Code: Select all
gedit Makefile
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
Code: Select all
sudo gedit /etc/kboot.conf
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
First you must install the lib, so you have to navigate to ~/ps3-utils-2.2.0/lib
then
Code: Select all
./configure
make
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/
Code: Select all
cd ..
./configure
make
make install
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.