Set up your PS3 to run Linux

Here are some very simple instruction on getting Linux to run on your PS3

01 – Collect the items that you need for the installation.

*NOTE – It is possible to do everything up to step 5 using cut/paste within the Gento Live CD desktop with the exception of burning the Gentoo iso for obvious reasons. I would recommend reading this entire document as well as the following discussions before trying this unless you have some Linux experience.

You will need a computer with an internet connection as well as a PS3 with a hard wired internet connection

*USB Mouse
*USB Keyboard
* 256MB USB Thumb drive

(Any storage device that the PS3 can handle will work. Adjust commands accordingly)

* Addon CD iso

http://dl.qj.net/dl.php?fid=11308

*Gentoo Live CD BETA for PPC iso

http://gentoo.mirrors.pair.com/exper…ppc64-beta.iso

*Otheros.self

http://www.playstation.com/ps3-openplatform/terms.html

02 – Prepare your media

Burn the Gentoo iso onto a CD. Note that you cannot burn the iso as a regular file. It must be burned as a disk image. I also recommend burning important disks like this at very slow speeds. (4x or 8x if possible) Here is a link to more information regarding iso burning.

https://help.ubuntu.com/community/BurningIsoHowto

Plug your USB storage drive into your computer and create the directory structure

USB:\PS3\OTHEROS

In other words … create a folder called “PS3” then create a folder inside that called “OTHEROS”

Save the Otheros.self file that you downloaded in the “OTHEROS” folder

Extract the ADDON CD iso to the root of your thumb drive using 7zip or similar program. Make sure that you extract the iso so that the contents of the “CELL-Linux-CL_20061110-ADDON” folder are in the root of the USB drive.
Here is a link to a program that will help you if you cannot extract an iso

http://www.7-zip.org/

(note that there are some helpful documents in the /doc folder)

Copy otheros.bld from the new “kboot” folder on your USB drive into the “ OTHEROS” folder that we made earlier

Create another folder in the root of your USB drive called “config”

Create a file called “fstab” and copy/paste this into it. You can use notepad if you are in Windows. (If you do it in notepad, you may need to rename it to remove the file extension, You may want/need to edit your fstab file to get rid of the Windows return line characters (^M) at the end of each line … you can do this when you are in Linux with nano after you copy it over later in the guide. Another solution is to “save as” and type “fstab” with the quotes as the filename.)

Code:
# /etc/fstab: static file system information.
# file system mount point type options dump pass
LABEL=/ / ext3 defaults 0 0
LABEL=/boot /boot  ext2 defaults 0 2
LABEL=SWAP SWAP swap sw 0 0
proc /proc proc defaults 0 0
sys /sys sysfs defaults 0 0
/dev/fd0 /mnt/floppy auto noauto,rw,sync,user,exec 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro,user,exec 0 0
###### /etc/fstab done

Save your “fstab” file in the “config” folder that you made.

Create a file called “xorg.conf” and copy/paste this into it. You can use notepad if you are in Windows. (If you do it in notepad, you will need to rename it to change the file extension)

Code:
### PS3 xorg.conf for Ubuntu / Debian Linux
### http://www.louiscandell.com/ps3/files/xorg.conf

Section "Files"
    FontPath    "/usr/share/X11/fonts/misc"
    FontPath    "/usr/share/X11/fonts/cyrillic"
    FontPath    "/usr/share/X11/fonts/100dpi/:unscaled"
    FontPath    "/usr/share/X11/fonts/75dpi/:unscaled"
    FontPath    "/usr/share/X11/fonts/Type1"
    FontPath    "/usr/share/X11/fonts/100dpi"
    FontPath    "/usr/share/X11/fonts/75dpi"
    FontPath    "/usr/share/fonts/X11/misc"
    # path to defoma fonts
    FontPath    "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
    Load    "bitmap"
    Load    "ddc"
    Load    "dri"
    Load    "extmod"
    Load    "freetype"
    Load    "glx"
    Load    "int10"
    Load    "type1"
    Load    "vbe"
EndSection

Section "InputDevice"
    Identifier    "Generic Keyboard"
    Driver        "kbd"
    Option        "CoreKeyboard"
    Option        "XkbRules"    "xorg"
    Option        "XkbModel"    "pc105"
    Option        "XkbLayout"    "us"
    Option        "XkbOptions"    "lv3:ralt_switch"
EndSection

Section "InputDevice"
    Identifier    "Configured Mouse"
    Driver        "mouse"
    Option        "CorePointer"
    Option        "Device"        "/dev/input/mice"
    Option        "Protocol"        "ExplorerPS/2"
    Option        "ZAxisMapping"        "4 5"
EndSection

Section "Device"
    Identifier    "Generic Video Card"
    Driver        "fbdev"

    Option        "ShadowFB"        "false"
#    Option        "UseFBDev"        "true"
EndSection

Section "Monitor"
    Identifier    "Generic Monitor"
    Option        "IgnoreEDID"
    HorizSync    30-90
    VertRefresh    20-150
    ModeLine "720p" 73.825 1280 1320 1368 1640 720 722 724 751 +hsync +vsync
    DisplaySize    320 180
EndSection

Section "Screen"
    Identifier    "Default Screen"
    Device        "Generic Video Card"
    Monitor        "Generic Monitor"
    DefaultDepth    24
    DefaultFbBpp    32

    SubSection "Display"
        Viewport    0    0
        Depth        24
        FbBpp        32
        Modes        "1024x720" "1124x644"
    EndSubSection

    SubSection "Display"
        Depth        15
        Modes        "1024x720" "1024x768" "800x600" "640x480"
    EndSubSection

    SubSection "Display"
        Depth        16
        Modes        "576x384" "1024x768" "800x600" "640x480"
    EndSubSection

EndSection

Section "ServerLayout"
    Identifier    "Default Layout"
    Screen        "Default Screen"
    InputDevice    "Generic Keyboard"
    InputDevice    "Configured Mouse"
EndSection

Section "DRI"
    Mode    0666
EndSection

Save your “xorg.conf” file in the “config” folder that you made.

Remove the USB storage drive from your computer and plug it into your PS3.
Insert the Gento Live CD into the PS3

03 – Install kboot on the PLAYSTATION 3

If you already have data saved on the PS3 hard drive, you may back it up using the PS3 backup utility and restore the data after you format and partition the hard drive. (These instructions have already changed due to PS3 firmware updates, but you should still be able to figure out what to do)

* On the XMB go into Settings Menu > System Settings > Format Drive
* Choose 10GB for the “other OS”
* After the drive is formatted, go into Settings Menu > System Settings > Install Other OS
* Click “OK” and it will install the kboot image onto your PS3.
* Once finished, go back into Settings Menu > System Settings > Default System > Choose “Other OS”
* Restart your PS3 and you should be on the kboot prompt

Now once you are on the kboot prompt you are within a minimal Linux environment.

04 – Partition and format the “Other OS” portion of the hard drive

We will partition the 10GB portion of the hard drive as follows using fdisk.
LABEL PARTITION SIZE SYSTEM
1) boot /dev/sda1 256MB ext2
2)SWAP /dev/sda2 512MB swap
3) / /dev/sda3 the remaining space ext3

We need to boot into Gentoo to do this since the Kboot environment does not support the creation of swap partitions. (If you have some experience with Linux, you may want to take care of the root and boot partitions now and worry about the swap partition after you can chroot into Ubuntu. If so, you can do this from the kboot prompt rather than booting the Live CD)

Use the <tab> key to select your screen resolution and press <enter>. Gentoo will boot up. This takes a while since the entire operating system is booting from the CD. You should be looking at the Gentoo desktop. (Note that you may boot into the command line by adding a space and “nox” after the resolution command.) Take it for a spin if you would like. You can install Gentoo from this disk if you like it.

Open a terminal (Alternatively, you can hit Ctrl+Alt+F1 to get to the command line as root … if you do this, you will not need the following two commands)
Click Applications>Terminal

Code:
$ sudo -s
$ /etc/init.d/xdm stop

You should now be looking at the command line.

Code:
$ cd
$ fdisk /dev/sda

At the fdisk prompt:

Create partition 1

N (new) <enter>
P (primary) <enter>
1 <enter>
(default) <enter>
256 <enter>

Create partition 2

N (new) <enter>
P (primary) <enter>
2 <enter>
(default) <enter>
769 <enter>

Create partition 3

N (new) <enter>
P (primary) <enter>
3 <enter>
(default) <enter>
(default) <enter>

Mark partition 1 with the boot flag

A <enter>
1 <enter>

Label Partition 2 as a swap file system

T <enter>
2 <enter>
82 <enter>

Write the partition table

W <enter>

This part is extremely important … reboot the PS3 at this point. I wasted about 3 hours trying to get this to work until I realized that the newly created partitions needed a reboot to be recognized.

Code:
$ reboot

This will shutdown Gentoo and reboot the PS3. It should automatically boot into Kboot.
<tab> to select your resolution and press <enter> to boot the Live CD again. (Remember we can type “nox” at the end to boot straight to the command line.)

Open a terminal
Click Applications>Terminal

Code:
$ sudo -s
$ /etc/init.d/xdm stop

You should now be looking at the command line again.
Now we will need to create a filesystem on our partitions and then mount them. The “-L” option adds a label to the partitions.

Code:
$ mkfs.ext2 -L "/boot" /dev/sda1
$ mkfs.ext3 -L "/" /dev/sda3
$ mkswap -L "SWAP" /dev/sda2
$ sync; sync; sync
$ swapon /dev/sda2
$ mkdir /mnt/ubuntu
$ mount /dev/sda3 /mnt/ubuntu
$ mkdir /mnt/ubuntu/boot
$ mount /dev/sda1 /mnt/ubuntu/boot

05 – Install Ubuntu on the PLAYSTATION 3

Code:
$ cd /tmp
$ wget http://archive.ubuntulinux.org/ubuntu/pool/main/d/debootstrap/debootstrap_0.3.3.0ubuntu7_all.deb
$ ar -xf debootstrap_0.3.3.0ubuntu7_all.deb
$ zcat < data.tar.gz | tar xv

We need to edit debootstrap since we are running it off of a Live CD

Code:
$ cd usr/sbin
$ vim debootstrap

Now you will be inside of a text editor. Use the arrow keys to go down to line 11 and over to the “/” in that line. Hit the <insert> key to go into edit mode. Add “/tmp” to the beginning of the path. Hit the <esc> key to exit editing mode. That line should look like this now.

Code:
DEBOOTSTRAP_DIR=/tmp/usr/lib/debootstrap

Type “:wq” to save and quit.
You should be back at the command line now.

Run debootstrap
(If you have a slow internet connection, you can use the Ubuntu CD to install by replacing the url with “file:/mnt/cdrom/ubuntu” … note that you will need the correct CD and have it mounted at /mnt/cdrom )

Code:
$ /tmp/usr/sbin/debootstrap --arch powerpc edgy /mnt/ubuntu http://archive.ubuntulinux.org/ubuntu

This will install your base Ubuntu system.
We still need to copy a few things from the CD onto the PS3 hard drive.

Code:
$ cp /boot/* /mnt/ubuntu/boot
$ cd /mnt/ubuntu/boot
$ cp kernel-genkernel-ppc-2.6.16-ps3 /mnt/ubuntu/boot/vmlinux
$ cp initramfs-genkernel-ppc-2.6.16-ps3 /mnt/ubuntu/boot/initrd.img
$ cp -R /lib/modules/* /mnt/ubuntu/lib/modules/

Now we can reboot the PS3 and take out the Live CD since we no longer need it.

Code:
$ reboot

06 – Configuring Minimal Install of Ubuntu Base System

We will have to mount the partitions manually for now.

Code:
$ umount /mnt/root
$ mkdir /mnt/ubuntu
$ mount /dev/sda3 /mnt/ubuntu
$ mount /dev/sda1 /mnt/ubuntu/boot

Copy the “fstab” file from your USB drive. We have to mount the USB drive first. You can find the location of your USB drive by typing

Code:
$ fdisk -l

Try to locate which one your USB drive is by the size. If it says “sdd” then your drive will be recognized as “sdd1”

Code:
$ mkdir /mnt/usbdrive
$ mount /dev/sdd1 /mnt/usbdrive
$ cp /mnt/usbdrive/config/fstab /mnt/ubuntu/etc/fstab

CHROOT into ubuntu and install nano. (You can use nano to create your config files or you can create them on your computer to save some typing and then transfer them via the usb drive)

Code:
$ chroot /mnt/ubuntu /bin/bash
$ source /etc/profile
$ apt-get install nano

The above command has you in your new Ubuntu system in its infant state.

You can manually mount each filesystem once you are chrooted into your Ubuntu System, or you can automatically mount them with …

Code:
$ mount -a

The above game some errors, so make sure that both /proc and /sys were mounted. Check to see if they are mounted by seeing if there is anything in them:

Code:
$ ls /proc /sys

If /proc and /sys are not mounted then you will manually mount them like this:

Code:
$ cd /
$ mount -t proc proc proc
$ mount -t sysfs sysfs sys

07 – Installing The Xubuntu / Ubuntu / Kubuntu desktop

At this stage you have a choice of installing whatever desktop you like. You can either install the Ubuntu, Xubuntu or the Kubuntu desktop. You will want to issue one of the following commands depending on what desktop you want. (The Ubuntu desktop install had too many dependencies to resolve and eventually stopped after running out of system memory in my case. You may try it, but it would not work for me. Don’t worry though … we can install the Ubuntu desktop later … go ahead and install Kubuntu for now)

Code:
$ aptitude -y install '~txubuntu-desktop'
$ aptitude -y install '~tubuntu-desktop'
$ aptitude -y install '~tkubuntu-desktop'

Once the above is done you are finished. You have installed Ubuntu on your PS3.

08 – More Configuration and Adding Users

We need to create a username and give the user the ability to use sudo. We will go ahead and add you to the audio, admin, and users groups now also

Code:
$ passwd root
$ adduser YOUR_USER_NAME
$ addgroup --system admin
$ adduser YOUR_USER_NAME admin
$ adduser YOUR_USER_NAME audio
$ adduser YOUR_USER_NAME users
$ visudo -f /etc/sudoers

add this to the end of the file so that users in the admin group can use sudo

Code:
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Configure the Keyboard

Code:
$ dpkg-reconfigure console-setup

Configure /etc/network/interfaces

Code:
$ nano /etc/network/interfaces

Make it look like this

Code:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

configure /etc/resolv.conf

Code:
$ nano /etc/resolv.conf

Make it look like this (just an example … you will have to configure it for your internet connection) If you are running linux on another computer in your house, just look at the /etc/resolv.conf on that computer.

Code:
search hsd1.ma.comcast.net.
nameserver 192.168.1.1
nameserver 192.168.1.2
domain YOUR_WORKGROUP

Edit your hostname (this can be whatever you want)

Code:
$ echo playstation > /etc/hostname

Edit /etc/hosts

Code:
$ nano /etc/hosts

Make it look like this

Code:
127.0.0.1 localhost
127.0.1.1 YOUR_HOSTNAME.YOUR_WORKGROUP

Don’t leave that command line because we will be using it in the next section.

09 – Configuring /etc/X11/xorg.conf and ps3videomode.

We need to copy a few more files from our USB drive. We will also have to install alien to tranform our rmp packages into deb packages.

Code:
$ exit
$ cp /mnt/usbdrive/target/ps3pf_utils-1.0.9-2.ppc.rpm /mnt/ubuntu/tmp/
$ cp /mnt/usbdrive/target/vsync-sample-1.0.1-4.ppc.rpm /mnt/ubuntu/tmp/
$ cp /mnt/usbdrive/config/xorg.conf /mnt/ubuntu/etc/X11/xorg.conf
$ chroot /mnt/ubuntu /bin/bash
$ cd /tmp
$ apt-get install alien
$ alien ps3pf_utils-1.0.9-2.ppc.rpm
$ alien vsync-sample-1.0.1-4.ppc.rpm
$ dpkg -i ps3pf-utils_1.0.9-3_powerpc.deb
$ dpkg -i vsync-sample_1.0.1-5_powerpc.deb
$ sudo nano /etc/kboot.conf

We need to create a kboot.conf file. It should look like this

Code:
default=ubuntu
timeout=10
root=/dev/sda3

ubuntu="/boot/vmlinux initrd=/boot/initrd.img video=ps3fb:mode:5"

Make sure you edit the video mode to match what you found on the chart earlier. Here is the chart for reference.

Video mode ID:
0:automode
YUV 60Hz 1:480i 2:480p 3:720p 4:1080i 5:1080p
YUV 50Hz 6:576i 7:576p 8:720p 9:1080i 10:1080p
RGB 60Hz 33:480i 34:480p 35:720p 36:1080i 37:1080p
RGB 50Hz 38:576i 39:576p 40:720p 41:1080i 42:1080p
VESA 11:WXGA 12:SXGA 13:WUXGA

full screen mode: <video mode ID> + 128
dither ON mode : <video mode ID> + 2048

Now you should be in good shape.

Make sure that you are at the actual kboot prompt and not still inside the chroot at this point. Use the exit command if you are still in the chroot.

Code:
 $ exit

This is the command for starting Ubuntu from kboot.

Code:
$ mnt/ubuntu/boot/vmlinux initrd=mnt/ubuntu/boot/initrd.img root=/dev/sda3

We should go ahead and reboot first just to make sure that Ubuntu will boot automatically now.

Code:
$ reboot

You should then be booting Ubuntu and end up at the login screen. Do not press any keys when the kboot prompt comes up. It will take 10 seconds for the command to kick in.
If all went well you should be at the login screen. Use the user name that you just created and login. You will then be prompted to setup your KDE configurations.

10 – Install the Ubuntu Desktop (this section is optional and should be used if you wanted the Ubuntu desktop and it wouldn’t work during the normal installation)

If you would like to use the Ubuntu desktop rather than the Kubuntu or Xubuntu that you installed. Open up a terminal and issue the commands …

Code:
$ sudo apt-get install ubuntu-desktop

Choose “gdm” as your desktop when the install screen pops up at the end.

When that is finished installing everything, you should reboot. (you can do this using the graphical interface or by issuing the command in the terminal)

After the system reboots, you should be looking at the Ubuntu log in screen. Go ahead and login. Open a terminal by clicking Applications>Accessories>Terminal and issue the following command to uninstall the KDE components of the desktop. (This is if you installed the KDE desktop previously)

Code:
$ sudo apt-get remove adept kaddressbook kaffeine kamera kappfinder karm katapult kate kaudiocreator kcron kde-guidance kde-systemsettings
kdeadmin-kfile-plugins kdebluetooth kdegraphics-kfile-plugins kdemultimedia-kappfinder-data kdemultimedia-kfile-plugins kdemultimedia-kio-plugins
kdenetwork-filesharing kdenetwork-kfile-plugins kdepasswd kdepim-kio-plugins kdepim-wizards kdeprint kdm kghostview khelpcenter kicker kio-apt kio-locate
klipper kmail kmenuedit kmilo kmix knetworkconf knotes konq-plugins konqueror-nsplugins konsole kontact konversation kooka kopete korganizer kpdf kpf kppp
krdc krfb krita kscd kscreensaver ksmserver ksnapshot ksplash ksvg ksysguardd ksystemlog kubuntu-artwork-usplash kubuntu-default-settings kubuntu-desktop
kubuntu-docs kubuntu-konqueror-shortcuts kwalletmanager kwin

If you ever want to get back to the PS3 XMB from the kboot prompt or from inside of Ubuntu, open a teminal and type …

Code:
$ sudo boot-game-os

If you are using the Kubuntu desktop and issue the command “boot-game-os”… you might notice it doesn’t work. The reason is that the script depends on another script, “find-other-os-flash”, that uses at least one bash-ism, yet the script specifies that it should be run by sh. sh on Kubuntu will be using Dash, not Bash… so it will fail. To fix it, open up /sbin/find-other-os-flash with your favorite editor and change the first line from: “#! /bin/sh” to ‘#! /bin/bash”.

Code:
$ sudo nano /sbin/find-other-os-flash

The command “boot-game-os” should work fine after that.

Enjoy!

1 Comments

  1. Pingback: Tweets that mention Set up your PS3 to run Linux -- Topsy.com

Leave Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.