Archive for July, 2009

ps3vram and updated and optimized kernel for the PS3

Posted in Code, HowTo, Projects on 14/07/2009 by Undersys

So we left off with a working PS3 kernel.
An older version…
So  lets get that up to date. I will be using 2.6.30. You can find the .conf at the end of the post.
I am sure theres more that can be done to make this run faster on the PS3. Also I have not enabled the card readers yet.

To make use of the ps3vram as a high priority swap space I did the following.

  1. Create a file called /etc/ps3-vram-swap.sh
  2. Add the following to the file:-
    #!/bin/sh
    mkswap /dev/ps3vram  > /dev/null
    swapon -p 10 /dev/ps3vram  >/dev/null
  3. Make the file executable.
  4. Add the following line to  /etc/conf.d/local.start
    /etc/ps3-vram-swap.sh

Now the ps3vram will get added as priority 10 swap so it will get used before the HDD swap.
Output of swapon -s
Filename                Type        Size    Used    Priority
/dev/ps3da2                             partition    1686816    0    -1
/dev/ps3vram                            partition    250872    0    10

Hear is the .config file I did for the 2.6.30 kernel. I will keep working to make it better.
The PS3 is a LOT faster now compared to the kernel we build using the 2.6.23-ps3 source.
Keep in mind that its advisable to use main kernel.org sources now and not a patch-set.
Pretty much all PS3 patches from the early patch-sets have been merged.

Save the following as .config under /usr/src/linux . run make menuconfig if you need to edit it.
Rebuild your kernel with :-

  • make && make modules_install

Copy the vmlinux to your /boot and update kboot.conf.

Hear is a copy of my .config PS3 vmram Kernel .config
Save this file as a .txt its not a .doc file, wordpress is just been crap.

Advertisements

PS3.. As if you’d use that for games..

Posted in HowTo, Projects on 13/07/2009 by Undersys

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. ( wtf sony it would of been nice to have a custom size, rather then 10gb to game-os or 10gb to linux)
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
    “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 for fstab:-
    none   /spu    spufs   defaults    0 0

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 via:-

  • 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
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

USE="altivec gsl cblas ps3