Well maybe once..
So I brought a PS3. I don't play games.. I have a reaction time that would make a sloth look fast. Then why buy a PS3.. Cheep quite Cell! Compared to the QS20! Yay blu-ray and SACD support for linux! (Yes I brought an older PS3) Since the new ones don't support 4+ USB ports and SACD! Good one Sony...
Let the fun start! With gentoo.. what else would eat up so much of my life! You need to create a 10gb partition on your PS3 via the system menu under the format option. You'll also need to download a install cd i used the "installcd-ps3-minimal-20071212-r1.iso" install media. This includes the "otheros" image from sony. You can find this on any good gentoo mirror. So now you just select "Install other OS" Set the default boot to be "otherOS" and your PS3 should reboot and boot from the CD.
I had huge issues using the "stage4" install method. Also whats the fun if its all done for you! I went down the path of doing a normal "Stage3" install. Nothing out of the normal. Although I did need to make a few changes to the default install.
make.conf addition :
CFLAGS = CFLAGS="-O2 -pipe -mcpu=cell -mabi=altivec" MAKEOPTS = MAKEOPTS="-j3"
Base use flags :
USE="altivec gsl cblas ps3"
emerge the following :
# emerge crossdev, petitboot-bin, ps3pf_utils, libspe2, spu-tools, dtc
Set up crossdev with the following :-
# crossdev -t spu -s1 --without-headers # crossdev -t spu
Set up libspe with the following entry in /etc/fstab :
none /spu spufs defaults 0 0</li>
You should use the overlay "cell" to get the patched kernel sources So emerge "layman" then do the following :
# layman --fetch # layman --add cell # echo "source /usr/local/portage/layman/make.conf" > /etc/make.conf
This will give you the gentoo ps3 cell overlay. Now emerge the ps3 sources :
# emerge ps3-sources
Relink your "/usr/src/linux" if you need to. Copy over the default .conf file for the PS3 :
# cd /usr/src/linux # cp arch/powerpc/configs/ps3_defconfig .config
Now you can run "make menuconfig" as per normal. Compile the kernel with what ever you need as per normal. Copy vmlinux to your /boot.
Next you will need to set up a kboot.conf file. You will need to create the "/etc/kboot.conf" file Mine looks like this :
default=gentoo timeout=10 gentoo='ps3da1:/boot/2.6.23-ps3 root=/dev/ps3da1 video=ps3fb:mode:3 rhgb' ps3='boot-game-os'
This will by default boot into gentoo, but also has the option to boot back to the original Sony OS via "boot-game-os"
You will also need to label your root volume so that the PS3 can boot it :
# e2label /dev/ps3da1 /
You will also need to install the latest version of petitboot.
You can get the latest "otheros.bld" download it from : Kernel.org -- petitboot
You can flash this to the PS3 during the gentoo install with the following command :
ps3-flash-util -w otheros.bld
This will get you the non GUI version. Thats fine for me. You should now have a working gentoo install. You can boot to "game-os" or into gentoo. petitboot will read your kboot.conf
I'll write again soon about updating the kernel and supporting the ps3vram device.
While you wait hears some info :
# uname -a Linux localhost 2.6.23-ps3-r1 #1 SMP ppc64 Cell Broadband Engine, altivec supported GNU/Linux # cat /proc/cpu processor : 0 cpu : Cell Broadband Engine, altivec supported clock : 3192.000000MHz revision : 5.1 (pvr 0070 0501) processor : 1 cpu : Cell Broadband Engine, altivec supported clock : 3192.000000MHz revision : 5.1 (pvr 0070 0501) timebase : 79800000 platform : PS3 # cat /proc/interrupts CPU0 CPU1 16: 0 86 ps3 Edge ipi call 17: 0 30183 ps3 Edge ipi reschedule 18: 0 0 ps3 Edge ipi migrate 19: 0 0 ps3 Edge ipi debug brk 20: 15 0 ps3 Edge ipi call 21: 30937 0 ps3 Edge ipi reschedule 22: 0 0 ps3 Edge ipi migrate 23: 0 0 ps3 Edge ipi debug brk 24: 0 0 ps3 Edge spe00.0 25: 0 0 ps3 Edge spe00.1 26: 0 0 ps3 Edge spe00.2 27: 0 0 ps3 Edge spe01.0 28: 0 0 ps3 Edge spe01.1 29: 0 0 ps3 Edge spe01.2 30: 0 0 ps3 Edge spe02.0 31: 0 0 ps3 Edge spe02.1 32: 0 0 ps3 Edge spe02.2 33: 0 0 ps3 Edge spe03.0 34: 0 0 ps3 Edge spe03.1 35: 0 0 ps3 Edge spe03.2 36: 0 0 ps3 Edge spe04.0 37: 0 0 ps3 Edge spe04.1 38: 0 0 ps3 Edge spe04.2 39: 0 0 ps3 Edge spe05.0 40: 0 0 ps3 Edge spe05.1 41: 7 0 ps3 Edge spe05.2 42: 28 0 ps3 Edge vuart 43: 293270 0 ps3 Edge ps3fb 44: 1 0 ps3 Edge ps3flash 45: 62730 0 ps3 Edge ps3disk 46: 34 0 ps3 Edge ps3rom 47: 142 0 ps3 Edge ehci_hcd:usb1 48: 33 0 ps3 Edge ehci_hcd:usb2 49: 1 0 ps3 Edge ohci_hcd:usb3 50: 1 0 ps3 Edge ohci_hcd:usb4 51: 1 0 ps3 Edge snd_ps3 52: 25077 0 ps3 Edge eth0 BAD: 0 # cat /proc/meminfo MemTotal: 220060 kB MemFree: 103360 kB Buffers: 17312 kB Cached: 59504 kB SwapCached: 8 kB Active: 26648 kB Inactive: 53160 kB SwapTotal: 1686816 kB SwapFree: 1685064 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 2956 kB Mapped: 3612 kB Slab: 32572 kB SReclaimable: 25244 kB SUnreclaim: 7328 kB PageTables: 252 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 1796844 kB Committed_AS: 10216 kB VmallocTotal: 8589934592 kB VmallocUsed: 876 kB VmallocChunk: 8589933604 kB # hdparm -tT /dev/ps3da1 /dev/ps3da1: Timing cached reads: 1634 MB in 2.00 seconds = 817.76 MB/sec Timing buffered disk reads: 120 MB in 3.01 seconds = 39.82 MB/sec