I'm writing yet another guide on installing linux on the Playstation 3, not because there is a lack of information on the topic elsewhere, but because the guides that are available, as a whole, fell short of my needs. Seeing as my needs didn't seem to be extraordinary, I wrote down what I learned for you. This guide is specifically geared to installing Fedora Core 6, and doing a minimal installation. It also walks though what you'll need to install to make the minimal installation useable.
The first part of my project involved reading various guides to get a feel for which distribution was 'the best' for the Playstation 3. Before I actually owned the machine, the only distribution I heard about was YDL 5. After a little bit of reading on Wikipedia[1] it became clear that it was also possible to install Fedora Core 5, 6, or 7 and people were also running Ubuntu and Gentoo as well. As of this writing, it appears Mac OS X is only speculation, and has not been installed successfully. Windows XP is also not possible, although people have run it through virtualization on top of linux, very, very slowly.
Reviews of YDL tended to be mediocre, apparently much of the software is already out of date. I have never used Ubuntu or Gentoo, and this didn't seem to be the time to start picking it up. That left me with the decision of which FC version to install. The main guide I was working from installed FC 5, because that was the version that IBM's Cell BE SDK 2.0 was designed to run on. However, the current version of the Cell BE SDK is 2.1, and it requires FC 6. That was a good reason for me, because I wanted to use the SDK. As for FC 7, the PS3 only has 512MB of RAM, and I didn't want to push my luck if FC 7 wasn't required for what I wanted to do.
So ideally, you not only skipped to this part and read it first, you read it two days ago and started downloading the software you're going to need. That means this will just be a refresher for you, right? Otherwise, you need to start downloading now if you want to do the installation anytime soon.
You're going to need:
Thus far, I've been following pretty closely to a well written guide out of University of Tennessee Knoxville called 'A Rough Guide to Scientific Computing On the PlayStation 3', or SCOP3.[3] It's a good read and I recommend it still, but it's already outdated on some key points. For one, they are doing a FC 5 install, but that's hardly different. For the Addon CD, they recommend getting the 20061110 version. When you go to download the CD,[4] you will notice there are multiple versions. Logical as I am, I figured that since SCOP3 is dated May 11, 2007, they wouldn't know about any improvements in the newest versions of the Addon CD. I opted to get the current release, the 20070817 version. DON'T DO THIS. For whatever reason, some asshat at Sony removed the install script from that version, so I'm all the way further down this page into trying the run 'install-fc sda' at the kboot prompt, and it doesn't know what I'm talking about. I read through the 'CHANGES' document and decided that the 20070516 didn't look like it had anything useful in it to an FC 6 install either.
All that said, get the 20070425 version. It's designed to run with FC 6, and it's got all the source on the same CD.
Because you're also going to be developing software to harness the awesome power of the Cell BE, you want to download the SDK from IBM.[5] You will have to fill out a form and confirm that you really want to download it in order to get it.
The Fedora image will need to be burned to DVD, and the Addon CD will also need to be burned to CD. The Cell SDK is your option, depending on how Linux savvy you are. If you want to wait until you get networking services started on the PS3 and then transfer it over as an image, you can do that. I just made another CD. Furthermore, you can go ahead with the installation with the first two items, and download the SDK while you're doing the install.
Also, many guides out there direct you to the PlayStation Open Platform website[6] to download the Other OS Installer, otheros.self. Don't waste any time doing that. As of this writing, the current PS3 firmware is 1.92, and the otheros.self has been included in the firmware since 1.60 at least. In fact, you can look at the same two pages on information on the Playstation site over and over, and you won't find otheros.self, because it's not there anymore. If you really want it though, I have a copy.[7]
Depending on how much foresight you had into your plan to install Linux, and how much game playing, demo and movie trailer downloading, or media storage you've been doing on your PS3, this will be the time for you to start backing things up, or realizing that you can't back things up. You can copy things like movie trailers, pictures, music, and game saves onto a flash drive. Things like game demos, and the Folding@Home client, including the work unit you're working on, will be lost.
Ideally, when you took your PS3 out of the box, you did the firmware update, made your PSN account, set the time or whatever, and then went into System settings and formatted your hard drive for Linux. The formatting will remove all your downloaded junk, so backup what you want before you do it. I gave myself 10 GB for the Game OS and the rest of the ~50 GB to Linux, because I'm more likely to use it for something there. Do the quick format, there's no reason not to.
Now let's install the bootloader. This is the part where otheros.self was supposed to be needed. Also, many guides say you need to dig out the otheros.bld file from the Addon CD and put it on a flash drive. That is no longer needed either, just pop the Addon CD in the PS3, go to System Settings, and select Install Other OS. Confirm your choice, and go back to System Settings when the install finishes, in about two seconds. Then pick Default System and choose Other OS. It will give you the option to reboot immediately, which is very convenient, just make sure you've got your USB keyboard plugged in.
Pretty soon, if you're like me, you'll be looking at tiny bootloader startup information scrolling past on your cruddy standard definition television. You can eject the Addon CD whenever you're ready and put in the Fedora Core 6 DVD. After a minute or so the text will stop moving and you can make out the kboot prompt at the bottom of the screen. Type 'install-fc sda' and hit enter. You'll be asked for the DVD, make sure it's in and press 'y' followed by enter.
Soon you'll be making the next important choice after picking the Addon CD version, which is do you want the minimum or the full install. I've done both, so I can tell you the minimum install is rather quick, but it doesn't even have basic network services running out of the box. The full install has everything, and it takes a long, long time to install it all, three to four hours at least. This guide assumes you're going to pick minimum. If you pick full you won't have any of the fun of picking packages to install later, but you're also going to have way more stuff installed than you'll ever realize. Picking off stuff you don't want could end up being more challenging. Have fun using all those languages.
Go forward with the minimum install, and then watch some TV for a bit. When you see the disc pop out, you'll know it's time to mess with the install again. As I recall it only take a half hour, maximum.
The DVD pops out because the installer would like to have the Addon CD again. Switch discs, press 'y' and enter to let the installer know it has the CD, and it will add the finishing touches. It only takes a couple minutes. Then, PICK YOUR ROOT PASSWORD. My second time installing I thought I'd be clever and not pick a root password. The script will let you get away with it, but it won't be good when the install is finished. You'll be sitting at the login screen trying to figure out the root password you didn't pick. Some guru out there probably knows what happens when you don't pick a password. Maybe there's a default that the script assigns. I don't know though, so just pick one and be done with it. It gets upset if you pick a bad password, but that's okay and you can do it anyway, way better than no password.
Then you're finished with the install script. Type 'reboot' and hit enter to startup on Fedora Core. You'll start back with the kboot initialization page, with two big tuxes on the top of the screen. When you get to the prompt you won't have to type anything this time. It will time out after a couple seconds and boot into Fedora Core. That's when you'll see two big tuxes and six little tuxes marked SPU. I'm not sure why there are two big tuxes, but each little tux represent one SPU unit in the Cell processor that Linux has access to. Why six? You may know that the Cell has 8 SPU units. In the Playstation 3, you're only going to have 7. That's done for yield reasons; if any single SPU was defective during manufacturing, it was turned off. If your chip had all 8, one was disabled anyways, because the Playstation 3 expects everyone to have exactly 7. Why six then? One of the seven is being used to manage the hypervisor that allows Linux to run as a guest OS. It's doing important things like keeping Linux from corrupting the Game OS and protecting some trade secrets about certain hardware by implementing hypervisor routines.
After you're through the final startup screens, you should be able to login as root. You may notice that you're logging in as root on mysql. That's because, even though you probably setup your PS3 with a hostname and static IP on your DHCP server the day you got it out of the box, right now your new minimal Linux install doesn't have any network services running. Or even installed.
That's a bummer, because I was ready to go sit at my desk and use ssh to play around, but now I've got to squint at the TV some more.
Okay, let's deal with the squinting first. Type 'ps3videomode -v 1' and hit enter. This is as big as the text gets on SD TV. If you want to set your resolution to something else do 'ps3videomode -h' for the other options. If you want to send me an HD TV, or the money to buy one, my email is on the homepage.
SCOP3 recommends that we start NetworkManager and NetworkManagerDispatcher to get our connectivity running.
That's fine and well, except that they didn't come along with the minimal install. Yum isn't going to work
until you get the net up either. Well, suck it up, and put the Fedora DVD back in your PS3. Type
mount /dev/dvd /mnt/cdrom/
and enter. You'll be reminded that you're mounting a read-only device, but that's fine. Type
cd /mnt/cdrom/Fedora/RPMS/
and enter. Now you get to play the rpm game. It's going to be easier for you though, because I already know
what you need to install before you'll be allowed to install NetworkManager. Enter the following lines.
rpm -i dhcdbd-2.1-1.fc6.ppc.rpm dhclient-3.0.4-21.fc6.ppc.rpm
rpm -i wpa_supplicant-0.4.8-10.1.fc6.ppc.rpm
rpm -i libnl-1.0-0.10.pre5.4.ppc.rpm
rpm -i NetworkManager-0.6.4-5.fc6.ppc.rpm
You could probably enter all those rpms on the same installation instruction, but I like the confirmation
that each package was successfully installed, and I wasn't missing anything in the process. Don't forget
about the magic of tab completion. Just type a few letters into the package name, then press tab. If it's
already a unique name, the rest will be typed for you, although many packages also have a ppc64 version,
so it will stop at ppc and you'll need to type a period and then tab again to finish it up. Tabbing twice quickly will give you a list of options if your name is not unique.
Now that you have NetworkManager, turn it on by entering the following lines.
/sbin/chkconfig --level 345 NetworkManager on
/sbin/chkconfig --level 345 NetworkManagerDispatcher on
/sbin/service NetworkManager start
/sbin/service NetworkManagerDispatcher start
Assuming you have a hostname assigned to your PS3 on a DHCP server somewhere, your PS3 would know about it
the next time you boot.
Still no ssh running, but yum should work properly now. There's probably a way to tell yum that all the packages it needs are in the current directory, but I couldn't figure it out. So I play the rpm game like this: First I try to install the package I want with rpm. If it needs something else, I try to install that first. If I ever get a dependancy that I don't know what package contains, I tell yum to do the install and see what it wants to download, then I tell yum to give up, and I install the package with rpm. Yum lets you cheat at rpm, in my opinion.
Right, so we're still in the RPMS directory. Enter these lines.
rpm -i openssh-4.3p2-10.ppc.rpm
rpm -i tcp_wrappers-7.6-40.2.1.ppc.rpm
rpm -i openssh-server-4.3p2-10.ppc.rpm
/sbin/chkconfig --level 345 sshd on
/sbin/service sshd start
There you go, now you can log on to your PS3 from Windows using Putty, or Mac OS X, if you're into that.
Bygones. Sitting comfortably at your desk you may choose to install other things. I recommend
mlocate-0.14-2.1.ppc.rpm for one. Locate is a great command for finding things, especially when you don't
know what you're doing. Enter 'updatedb' from time to time to refresh locate on where things are. I also
installed man-1.6d-1.1.ppc.rpm, bzip2-1.0.3-3.ppc.rpm, and vnc-server-4.1.2-3.fc6.ppc.rpm. VNC server is
a bit more challenging from the installation point of view, but yum makes it doable. Once I have my
VNC server setup, I'll share that configuration as well.
When you're ready to play games again, use the 'boot-game-os' command.
Look forward to future updates on installing the Cell BE SDK
- Greg Chabala, September 10th, 2007