edepot World Religion Music Money Games Stores Forums Feedback Search Sitemap

PlayStation 3 Linux Secrets

The purpose of this webpage is to provide information (a majority are secret or are hard to find) on Linux running on the PS3. If you think you know all there is to know about Linux on the PS3, read the following and you might learn a thing or two that you didn't know before. It is updated as new information is uncovered in the public, so visit often if you wish to keep up to date on the latest secrets. Please link to this webpage rather than copy the contents. And do remember that the ads support this page so visit them if they interest you. Do you have a secret? Leave a post at: PS3 Discussion Forum.

PS3 Linux Table of Contents

Clicking on a link in the Table of Contents takes you to the selected topic, and while there, if you click on the topic title, it will take you back to this Table of Contents.
PS3 Discussion Forum

Linux on PS3

One of the most interesting things about the PS3 is that it allows you to install a separate operating system on the internal harddrive. The PS3 can fulfill many tasks of a regular personal computer. Initially, the PC was bought mainly for hacking and games. Then word processing and spreadsheets were added as major activities on the PC. Soon, developing and downloading unique 3d-party applications was added as a main attaction on the PC. After a while, surfing the internet was also added. Now recently, playing media files for home entertainment (movies, music, etc) also became important functions of the PC. The gaming consoles primarily took over the market for gaming (and hacking to some extent). With the PS3, surfing the internet and playing media files are possible with the included webbrowser and blu-ray. The last major PC function that have not been done by consoles was word processing, speadsheets, and easy applications development. Linux on the PS3 provides the outlet for these functions. It can be said that with the XMB providing one half and Linux providing the other half, the PS3 is a possible complete PC replacement.

One of the major complications new users on Linux will encounter is that everything is usually manually done via commands issued on a terminal. This is similar to how MS DOS was before Windows started taking over more and more of the mudane tasks with each new release. The difference with Linux is that although there are graphical windowing programs like KDE, Gnome, and others, they are treated more like an add-on that takes over some of the tasks.

Windows File and Directory Structure

In windows, the code and data for programs are stored on drives named after letters of the latin alphabet. The first drive would be A:, the second drive would be B:, and the third C:, etc on down the line. Because earlier computer only had two floppy drives, A: and B: are usually reserved for them. A big main harddrive will usually start with designation C:. Most of the code for the operating system is stored in directory "C:/windows", and the programs in "C:/program files", and documents in "C:/documents and settings". If your harddrive is big enough, you can partition it into a second drive (or purchase another harddrive) and designate it as your "D:" drive. Your media drives (like DVD drives) will normally get its own next available letter label (like E:).

Linux File and Directory Structure

Under Linux, there is no such thing as a C: or D: or E: drive. There is just a big drive with no label and it starts with "/" at the top. If you have another media or harddrive, you mount it to any location under "/". For example, you can mount your memory stick under "/mnt/memorystick/" and your optical disc drive under "/mnt/dvd/". Afterwards, if you go into those directories, it will point to the root of your memory stick or your drive.

Installing Linux

The internal harddrive is actually encrypted with the exception of the Linux (or otheros) partition. In other words, the data that is written on the PS3 area of the harddrive are encrypted via an algorithm before being written, while "what you see is what you get" for the other os partition. This means that if you were to take out the harddrive and try install it on a personal computer (which is possible), the data on the PS3 partition will look garbled. Location of the unencrypted linux partition may be hard to find though, unless gathered from a running PS3 linux. The harddrive is actually a standard SATA notebook 2.5" harddrive (not IDE) available on the market. You can actually use any speed (4200rpm, 5400rpm, or 7200rpm) and any capacity for the drive. Note that getting a very fast drive (7200rpm for example) won't improve speed by much as there is probably an encryption layer happening on-the-fly in the background that is providing a bottleneck.

Before installing Linux it is wise to understand how the PS3 goes about making this happen. The main XMB menu of the PS3 contain (under the system settings) options to format the harddrive, install another OS, and set the default bootable OS. When the PS3 boots up, it looks under a specific area of the harddrive for information on an operating system to boot. When you set the default OS to boot up, this is the area that is changed. By default it boots to PS3's own operating system (XMB), but if you change it to boot "otheros", this area will point to a new OS booter that Sony provides (called otheros.self). This otheros.self provides the capability to boot code by other OS manufacturers (otheros.bld) and let them take over after PS3 starts up. Because this otheros.bld can't be installed manually, you must use the PS3 side's "install other os" option to get otheros.bld and otheros.self installed on a special boot otheros section of the harddrive. After installing, it stays there until you use PS3 side's "install other os" option again to install another otheros.self and otheros.bld. During install, the PS3 side will read from a special directory from a removeable media ("/ps3/otheros/") for both otheros.self and otheros.bld. After installing, there is a priority on where otheros.bld looks for bootable Linux code. In fact depending on the build, the otheros.bld can either try to read the DVD drive (like Yellow Dog Linux), or put you into a minimal shell prompt for you to install manually (other Linux flavors).

After installation, linux will look under "/etc/kboot.conf" (Yellowdog 5.0) or "/etc/yaboot.conf" (Yellowdog 6.0) on the harddrive for the correct instructions. This file usually points to "/boot/" directory for the Linux OS code to execute. You may be wondering, what about otheros.bld? Didn't that provide a Linux prompt already? Yes, but that one is a minimal subset of Linux with commands to load up a real full blown Linux under "/boot/" directory. In other words, you can change versions of Linux by simply modifying files in "/boot/" directory and pointing to them from "/etc/kboot.conf" or "/etc/yaboot.conf".

Flavors of Linux

There are now many flavors of Linux that runs on the PS3. The most famous is Yellowdog Linux, and it happens to be the official one. However, most other distributions should be able to install given enough patience. Other Linux flavors include Fedora, Gentoo, and the many flavors of Ubuntu. Yellow Dog Linux is actually based on Fedora. Any of these other PS3 Linux OS should provide their own compatible version of OS booter to take over from Sony's PS3 "other os" booter.

This writeup will concentrate mainly on the official Yellowdog Linux for the PS3.

Yellowdog Linux Versions on PS3

Yellowdog Linux 5.0

The first official PS3 linux was Yellow Dog Linux ver 5.0, and that is recommended as it was originally made for POWER architectures (which the Cell is based on), and comes with drivers for most of the important hardware. The initial 5.0 version had problems with the graphics processing unit, wireless networking (802.11b/g), and SIXAXIS motion detection (regular button detection possible via wired USB cable). You had to use a wired internet connection to update your software and operating system.

Yellowdog Linux 6.0

The next version.

Yellowdog Linux 6.1

The next version.

Yellowdog Linux 6.2

The latest version.

Configuring Linux on PS3

Setting up FULL 1080p displays on Linux

One of the commands that came with the PS3 is ps3-video-mode. What is unknown by many people is that you can use either fullscreen or non-fullscreen mode. In fullscreen mode you actually get to use more of the available space on your display under Linux. If you do not use fullscreen mode, there is a black border on all four sides of your display and they take up valuable display space. But note that if you go this route your display must be capable of using the "full over scan" of the display. This is usually settable via the display's internal menus. If you are already in a Linux terminal and logged in as root, you can activate fullscreen mode using ps3videomode, just add 128 to the video mode provided in the standard documentation. Below is a summary with mode description following the commands...
ps3-video-mode -m 1           black border mode  480i  
ps3-video-mode -m 2           black border mode  480p
ps3-video-mode -m 3           black border mode  720p
ps3-video-mode -m 4           black border mode 1080i
ps3-video-mode -m 5           black border mode 1080p

ps3-video-mode -m 129         fullscreen mode  480i
ps3-video-mode -m 130         fullscreen mode  480p
ps3-video-mode -m 131         fullscreen mode  720p
ps3-video-mode -m 132         fullscreen mode 1080i
ps3-video-mode -m 133         fullscreen mode 1080p

Note that the above commands are from the Yellowdog 6.1 Linux DVD. Yellowdog 5.0 came with an older version of this ps3-utils and it was named and used differently. Instead of "ps3-video-mode -m", use "ps3videomode -v" for the equivalent operations above for Yellowdog 5.0 Linux installs.

Yellowdog 5.0 video configuration

If you have installed Linux on PS3 successfully, then it should have a file "/etc/kboot.conf". This file contains information for the otheros.bld to follow after taking over from Sony's booter. Think of it as autoexec.bat under MS Windows. The "default=ydl" tells the other OS to look for "ydl" for the default boot options, and in this case it boots up 1080p (see mode 133 below and above).
# kboot.conf generated by anaconda

ydl='/dev/sda1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/initrd-2.6.16-20061110.ydl.2ps3.img root=/dev/sda2 init=/sbin/init video=ps3fb:mode:133 rhgb'
ydl480i='/dev/sda1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/initrd-2.6.16-20061110.ydl.2ps3.img root=/dev/sda2 init=/sbin/init video=ps3fb:mode:129 rhgb'
ydl1080i='/dev/sda1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/initrd-2.6.16-20061110.ydl.2ps3.img root=/dev/sda2 init=/sbin/init video=ps3fb:mode:132 rhgb'
ydltext='/dev/sda1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/initrd-2.6.16-20061110.ydl.2ps3.img root=/dev/sda2 init=/sbin/init 3'

After you have changed this and rebooted (type reboot), you will find that your graphical windowing will have a screwed up display if you use 1080p. So before you reboot, you need to fix a few more things. Reconfigure X windows (the underlying windowing module under Gnome, KDE, and others like Enlightenment) to use the current display and not try to set a special mode or resolution. Again, if you have configured YDL to start in graphical mode, then it is advised that you also modify the X stuff below before you reboot upon finishing editing "/etc/kboot.conf". The X windows module resolution configuration file is actually located in "/etc/X11/xorg.conf". You should edit it to remove the resolution modes for the current 24bit display so that it defaults to using the current display already set by you in "/etc/kboot.conf". Here is the modified section of "/etc/X11/xorg.conf"...
Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth     24
        DefaultFbBPP     32
        SubSection "Display"
                Depth     8
                FbBPP     32
                Modes    "1920x1080" "1280x720" "720x576" "720x480"
        SubSection "Display"
                Depth     16
                FbBPP     32
                Modes    "1920x1080" "1280x720" "720x576" "720x480"
        SubSection "Display"
                Depth     24
                FbBPP     32

Note that in the code above, the line "Modes..." line is missing for the Depth of 24. This forces the X windows to just use the current settings defined in "/etc/kboot.conf".

Yellowdog 6.1 video configuration

Yellowdog 6.1 for the PS3 fixed a few problems of not being able to display all the pixels of a 1920x1080p display without going into /etc/X11/xorg.conf and commenting out your current display parameters. Enabling the mode (133 instead of 5) is done by going into /etc/yaboot.conf and changing:
append="video=ps3fb:mode:5 rhgb quiet root=LABEL=/1"
append="video=ps3fb:mode:133 rhgb quiet root=LABEL=/1"

Enabling Volume Control Gadget under Gnome

In order to get the volume control (located in the top right corner) in gnome working with yellowdog 6.1, you need to create a file named "PS3.conf" and save it and an exact copy to /etc/alsa/cards/PS3.conf and /usr/share/alsa/cards/PS3.conf with the following contents in both files:
# Alsa configuration for PS3
# 08.04.09
# Place in your system's alsa cards directory:
# /etc/alsa/cards/PS3.conf
# /usr/share/alsa/cards/PS3.conf

PS3.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
type softvol
slave.pcm {
type hw
card $CARD
device 0
control {
name "PCM Playback Volume"
card $CARD

# Default to dmix + softvol

PS3.pcm.default {
@args [ CARD ]
@args.CARD {
type string
type asym
playback.pcm {
type plug
slave.pcm {
type softvol
slave.pcm {
@func concat
strings [ "dmix:CARD=" $CARD ",FORMAT=S16" ]
control {
name "PCM Playback Volume"
card $CARD

Using RSX VRAM as swap drive

Yellow Dog Linux v6.x

TOPIC: Using ps3vram as swap

Required Hardware and OS Versions

Configuring ps3vram as swap

The kernel used in YDL v.6.1 has ps3vram enabled by default. This is a way of using excess framebuffer memory as a fast drive. You may want to use this excess memory for swap.

Download and run our script to use vram as swap on the PS3.

  1. Open a terminal window.
  2. Switch to user root:

su -

3. Enter the root password once prompted.
4. Change to the /etc/init.d directory:

cd /etc/init.d

5. Create the script by typing:

gedit ps3-vram-swap

and enter the following and save and quit gedit...
#! /bin/bash
# ps3-vram-swap Use vram for swap
# chkconfig: 345 99 99
# description: makes and enables vram swap on the PS3 platform

# Source function library.
. /etc/init.d/functions

#Check if we are a PS3
if `grep -q PS3 /proc/cpuinfo `; then

###Check if swap is already made

# See how we were called.
case "$1" in
if ${ISPS3}; then
mkswap /dev/mtdblock0
swapon -p1 /dev/mtdblock0
echo "This is only for PS3's and you do not appear to be running on a PS3"
swapoff /dev/mtdblock0
if `grep -q /dev/mtdblock0 /proc/swaps`; then
echo "vram swap is running"
echo "vram swap is stopped"
echo $"Usage: $0 {start|stop|status}"
exit 1

exit 0

6. Enter:

chmod 755 ps3-vram-swap

7. Type:

chkconfig --add ps3-vram-swap
chkconfig ps3-vram-swap on
service ps3-vram-swap start

8. Click the X in the top right-hand corner of the terminal to close the window.

Confirm that ps3vram is being used as Swap

1. From the command line, type:

swapon -s

2. You should see output similar to the following:
Filename                                Type            Size    Used    Priority
/dev/ps3da3                             partition       522104  145856  -1
/dev/mtdblock0                          partition       241656  239624  1

This HOWTO was prepared by Community Members.

YUM and PUP (emerge and apt)

One unique quirk of the Linux operating system is that to install new software you would actually download the source of the program and compile and install. This is because a majority of the code on the Linux system is free and not bought. This was the case in the past and is slowing changing as new ways to package the software was created. Since there are many flavors of Linux, there are many different ways of packaging the files. One of the early ones is RPM. Files got packaged in RPM and you would simply use "rpm" to find, download, and install the software. Because using RPM packages sometimes require other RPM packages to exist before it can be compiled or installed, you sometimes get error messages that require you to look for its dependencies and download and install them first. This became Linux's version of "dll hell". To alleviate the whole mess, things were built on top it to take care of the dependencies so that it automatically would handle download and install of dependent modules. Gentoo calls it emerge. Red Hat calls it apt. Yellow Dog Linux calls it YUM, and a separate OS updating module called PUP. Yum superceded apt, and is the choice for Red Hat Linux distributions now. By default Yellow Dog Linux has them installed and they are renamed under the "Applications->System Tools->Software Management" menu option as "add/remove software" for YUM and "software updater" for PUP. They are equivalent to "yum" and "pup" commands under Linux shell prompt.

Yellowdog Linux 5.0 DVD yum repo

The first Yellowdog Linux released on the PS3 was version 5.0. You could download the Yellow Dog Linux 5.0 DVD iso and use it to install linux on your PS3. However, it did not have the correct settings for YUM and PUP to work. You needed to manually edit some files on your PS3 to point to correct repositories on the internet. In fact, if anytime you are unable to update your software or operating system, it is because the URL for the repositories are not valid (either the site is down or you forgot to reboot). In short, the following files need to be created or edited and placed inside directory "/etc/yum.repos.d/" (Note: the files have been updated to reflect the newer 6.2 version of Yellow Dog Linux. Substitute text "yd62" with "yd61", "yd60", or "yd50" for Yellowdog version 6.1, 6.0, or 5.0 appropriately.)

Note that you can replace the URL's below with functioning ones if one of them should go down. Once they are edited, you should be able to use yum and pup commands or via the "software management" menu. After you have verified that they work, you can try searching for important things left out of the Yellow Dog Linux distribution.

Yellowdog Linux 6.2 DVD yum repo

The release of yellowdog 6.2 requires updated list of the yum repository files.

name=Yellow Dog Linux 6.2 Base

name=Yellow Dog Linux 6.2 Updates

name=Yellow Dog Linux 6.2 Extras

Sometimes when you are using other repositories, they may contain newer libraries of ones existing in your own repository. Yellowdog Linux was originally based on commercial Red Hat Enterprise Linux. Fedora Linux was started as a non-commercial effort to keep Red Hat Linux stuff in the public domain. EPEL (Extra Packages for Enterprise Linux) is a volunteer effort to get Fedora packages running on Red Hat Enterprise Linux (what Yellowdog is based on). So, given the above circumstances, certain Fedora packages and EPEL packages should run on Yellowdog Linux without much effort.

EPEL 5 repository...

name=EPEL 5

Fedora 6 extras repository...

name=Fedora Extras

These libraries may cause problems if they replace the ones installed on your machine. There is a yum-protectbase rpm that you can install from the above fedora-extras.repo:
yum install yum-protectbase
Afterwards, you would append the line
to repository config files to indicate that you do not want other repositories having newer libraries to update what you have installed from "protected" repositories. Therefore, you should add "protect=1" to the end of all your yellowdog 6.1 repository config files (the core, updates and extras). This way newer libraries from other repositories will be ignored, and won't be installed on your current PS3, if older versions are found in your yellowdog 6.1 repository. We do this to "protect" working libraries from being updated, and yum will only add and update software and libraries that won't break our existing installation of Yellowdog 6.1 Linux.

The following is for a popular repository of games for yellowdog 6.0 (and 6.1) on PS3:

name=PS3Bodega.com YellowDog Compatible Packages

Note that "protect=1" is enabled here because this repository we know for sure is made specifically for PS3. When multiple repo contain "protect=1" they are treated equally, and newer versions will have higher priority. This is ok in this case because Yellowdog 6.1 updates will eventually release newer packages that will take precidence.

At the time Yellowdog Linux 6.1 was released, the dribble, freshrpms, and livna repositories merged to become the rpmfusion.com repository. This repository can be substituted for any of the above three repositories in the future.
name=RPM Fusion

If you wish to access livna (for fedora 7): try at your own risk

name=Livna.org Fedora Compatible Packages (stable)

Fedora 7 repository has new stuff but may not work...

name=Fedora 7 Everything

Fedora 8 repository... definitely try at your risk.

name=Fedora 8 Everything

Executing yum from a terminal

If you wish for more control, you can issue the yum commands inside a terminal. The following are commands to upgrade, remove a package, and install a package, respectively.
yum upgrade
yum remove NAME
yum install NAME

VideoLan-Client (vlc) on Yellow Dog Linux for PS3

One of the main problems with the PS3 was it's inability to playback PAL DVD-ROM from an NTSC machine, or inability to playback NTSC DVD-ROM from a PAL machine. Apparently, the PS3 XMB side actually does a check on the resolution and mode of the DVD-ROM (if it is a movie) and displays an error if it encounters a difference with its own machine type. Apparently this is a software check and with the european release of the firmware this problem is already non-existant. Those wishing to playback DVD can always use videolan client (vlc) for Linux. This program can support user burned DVD-ROM and commercial DVD discs as well. To get it to work you need to set up additional YUM repositories available from Fedora Linux (at least until it gets moved over to the Yellow Dog Linux repositories whenever this may be). These extra files need to be added to "/etc/yum.repos.d/". After adding the files below (reboot is a good idea), go to the yum (use gnome or enlightenment if you are using YDL) link under "software management" and do a search for "videolan-client". Select it and hit "Apply" and it should get installed automatically.

name=Fresh RPM Master

name=Livna.org Fedora Compatible Packages (stable)

name=Fedora Core

name=Fedora Extras

After installing you can run the command "vlc" and it should bring up the program. Note that you can now get rid of these special repositories by deleting them or renaming "enabled=1" to "enabled=0" in each of the files.

RPM introduction

In case there are no YUM for resolving rpm package dependencies, you may need to manually install using the "rpm" command from a terminal prompt. To install a package (for example abc.rpm), you would enter the command...
rpm -i abc.rpm

Sometimes you have an updated version of an existing package. In that case you can use the update command...

rpm -Uvh abc.rpm


Because Linux lack games that you can purchase at retail, many people resort to running emulators for old arcade machines. One of the most popular is a program called XMAME. This program can be installed by simply doing a search for xmame from yum (the graphical version) after you have added the extra files that point towards the new rpm sites (listed above for VLC).

Programming in Linux on the PS3

The following section is under construction...

The Yellow Dog Linux 5.0 DVD iso came with Cell SDK 1.2, and if you wish to use Cell SDK 2.0 from IBM, you need to remove old packages and install new ones. Since the yum repository does not reflect these newer stuff, you need to manually use rpm (or equivalent) to install and remove. The following are simplified instructions until someone is willing to create a new yum repository for the increasing YDL PS3 Linux users...
rpms after install:


rpms added

files copied
cp /lib/modules/2.6.16-20061110.ydl.2ps3/build/include/asm/ps3*

spu-binutils-3.2-6 spu-gcc-3.2-6.ppc
spu-newlib-3.2-6 spu-gdb-3.2-6

Installing Cell SDK 2.0
./cellsdk install --nosim

Using RPM, if you get dependency or conflicting library, you can quit the script, fix the problem, delete the sdk folder in the /tmp folder and rerun the script.
If you are itching to try out a PS3 Linux homebrew, you can download ps3lines.zip.

Feedback and Donation

Thank you for reading this webpage of secret PS3 information. You can help out contributing and supporting this page by doing the following: contribute in the PS3 forums, provide feedback, purchase art, register great shareware, or...

Return to PS3 Secrets