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