It’s easy to forget that the PS3 is a fully-equipped PC in your living room attached to your house’s best monitor. Installing Ubuntu can help you remember, and play SNES games in the process.
It still kind of surprises me (in a good way) that Sony was, from the start, very OK with PS3 owners tinkering with Linux on their PS3s. A modified release of Yellow Dog Linux was available from the very beginning, and some very handy hard drive partitioning and dual-boot utilities are baked right into the PS3’s XMB; Ubuntu gets installed on an entirely separate partition of your PS3’s hard disk, so your default system doesn’t get touched and switching between Ubuntu and the XMB is a piece of cake.
There is a flipside to this coin, however. Since the PS3’s Cell Processor is PowerPC based, you won’t be able to use any Linux software that’s compiled for x86, which is, unfortunately, most of it. However, Ubuntu has always had a PPC distro, and most of the basic stuff will work just fine. You can even load up a PPC-compiled Super Nintendo Emulator, SNES9X, and play some classic games pretty easily on your Sixaxis controller paired via Bluetooth. Also, doing web browsing and other basic computing is a lot more natural and elegant on Ubuntu running on your TV than in the PS3’s somewhat gimped browser.
Another downside is performance–the PS3 obviously has a lot of hardware muscle, but there are no Linux drivers to take full advantage of the Cell processor’s multi-core architecture, or the PS3’s hardware graphics acceleration. Plus, Ubuntu can only see and use 221.7 MB of the PS3’s 512MB of RAM for some reason. So it won’t be a speed demon (and you won’t be able to play HD videos or anything), but it’s definitely functional for the basics.
And, even over two years into the PS3’s life, doing all of this still requires a fair amount of Linux geek forum sifting, which I have humbly take upon myself to do so you don’t have to. And believe me, you don’t. So let’s get started!
What You’ll Need:
• Ubuntu 8.10 PS3 Install Disc Image
• Blank CD
• USB hard drive formated to FAT32 to backup your PS3 data
• USB keyboard and mouse (wireless if possible)
Install Ubuntu 8.10
1. Installing an alternate OS requires you to wipe the hard disk completely, so you’ll want to back up your PS3 data–this includes game saves, downloaded games and the hard drive installs many games require. For this, you’ll need a FAT32-formatted USB disc (Mac HFS+ volumes won’t work). This won’t save your trophies, so if losing them will be a tragedy for you, go to Game -> Trophy Collection, press triangle and choose “Sync with Server.”
2. Plug in your disc and go to Settings -> System Settings -> Backup Utility in your XMB. Choose Back Up and select your USB disk. The data will be saved at /PS3/EXPORT/BACKUP. It took about 25 minutes for me. When you’re done installing Ubuntu, the first time you switch back to the XMB you’ll want to use the Backup Utility to restore your backup.
3. Now you’re ready to install Ubuntu. This Ubuntu help page can assist, but like it says at the top, it was written for Ubuntu 7.10, so some things may change. Our guide here is using 8.10. I would use the alternate install disc, because some folks say the graphical Live CD install can give them some problems. The alternate install disc is the exact same thing, only with old-school DOS-y graphics. Grab that (I recommend the torrent, which will blaze down as fast as your connection will let it) and burn the ISO file to a CD.
4. Drop that CD into your PS3, and go to Settings -> System Settings -> Install Other OS. This will install the dual-boot loader kboot in a matter of seconds, and ask you if you want to restart into the the Other OS’s install disc. Make sure your PS3 is connected to the web via ethernet (wi-fi could possibly work, but it might confuse the Ubuntu instllaer), plug in your USB keyboard, which you’ll need, and say yes.
Pair Your Sixaxis or Dual Shock via Bluetooth
One advantage of using Ubuntu over, say, the PS3-specific Yellow Dog distro is that it’s easier to wirelessly pair your PS3 controller with a little downloadable utility. For these steps, you should switch to your PS3 running Ubuntu.
A wireless USB keyboard and mouse here are essential, but stick with wireless USB over Bluetooth. Logitech’s MX1100 mouse worked immediately with Ubuntu without any futzing, but the Logitech DiNovo Edge BT keyboard I had was a different story–Ubuntu’s Bluetooth utility found it and paired with it, but I couldn’t get it to actually type. I’m sure there’s a way, but that’s some forum sifting you’ll have to do on your own. Instead I used an old Apple keyboard I had laying around with the USB extension cord.
2. Double click to install the packages inside, first the “bluez-sixaxis-bin_powerpc.deb” package and then the one named “bluez-sixaxis_rc1.1_all.deb.”
3. Now, with your controller turned off, go to Applications -> Accessories -> Sixaxis-gui in Ubuntu and start the app. Choose “Setup Menu” and then “Setup first connection” and follow the instructions. Don’t press the PS button until it tells you to. The lights will keep blinking even after it’s connected.
4. After that’s done, you can connect this or any of your other controllers by simply going to “Connect Sixaxis to PC” under “Task menu.” But to use it with the SNES emulator you’re about to install, you have to do one more thing:
5. Under “Task menu” choose “Enable Keyboard and Mouse” and then pick “Fake Joystick.” This will pair your controller as a Linux joystick. After that, you’ll have to disconnect (with “Turn Off Sixaxis”) and re-connect your controller.
Install SNES9X Emulator
SNES9X works fairly well on the PS3, with a few minor caveats, which we’ll get to below.
1. Open up a terminal window in Ubuntu and type the following command:
sudo apt-get install snes9express snes9x-x
This will install the emulator.
2. When it’s done, “snes9express” will appear under Games in Ubuntu’s application launcher. Fire that up.
3. To configure it properly, do the following: under the ROM tab, select the folder that houses all your SNES ROMs (for games you already owned as a kid, of course!); under Sound, make sure “Thread Sound” is selected, or else everything will sound horribly garbl
ed; under Video, check “Scale,” “Hi-Res” and “Full Screen.”
4. Getting SNES9X to recognise your Sixaxis takes a little bit more juju, but even then, there is still some weirdness. To config, go to the Controllers tab and press “Devices.” Change the entries of “Pad 1” (and “Pad 2” if you’re using two) from “/dev/js0” to “/dev/input/js0” and hit close. Don’t try to Configure Button Maps… for the joysticks.
5. Go back to ROM, choose your game, and hit Power, and it should start up.
Here, though, are the aforementioned caveats: the PPC version of SNES9X on the PS3 chokes hard when you try to use an alternate button configuration for your controller (it will take the configuration, but just won’t play any games). But it’s default configuration, while wacky, is still playable. You’ll just have to find where each SNES button is mapped for each game. You’ll have trouble with something like Street Fighter 2, but simpler games like F-Zero and Pilotwings are totally playable.
And, less damaging, total full-screen does not appear to work (or at least I couldn’t get it to work) on the PS3. But you can still drag the window as big as it will get and get the same effect, just with your Ubuntu desktop visible behind.
So, all in all, this won’t be as elegant as dusting off your old SNES and plugging it in, but it’s fun to squeeze all of the potential out of your PS3 and see it play some vintage classics.
If Ubuntu locks up on you at any time, don’t trip the main power switch on the back: all you have to do is hold down the regular power button on the front for five seconds to force a shutdown.
And, theoretically, all you have to do to get back to the XMB is type “boot-game-os” at the kboot prompt. This has yet to work for me. Instead, power down the PS3 (so the power light is red), and then hold down the power button for 5-10 seconds until it beeps a few times, then let go. This will boot back into XMB by default (you may have to re-select your TV resolution, but don’t worry, all the rest of your configurations should be saved). If you’re done playing around with Linux for a while, you can simply set the PlayStation OS as the default in your XMB System settings.
A couple of things that are possible, but I have not fully tested:
Setting Ubuntu to Your Exact TV Resolution
This thread will help there–in my default installation on my Samsung 720p LCD, Ubuntu was sufficiently high-res, but with a black border an inch or two thick around the edges. If you’re experienced with Linux config files though, you can dive into the xorg.conf (which is blank by default in Ubuntu 8.10, much to my initial confusion) and calibrate it to the exact resolution of your TV.
Using the Sixaxis as a Mouse
I don’t think this works by default, but if you want to ditch the USB mouse and use the PS3 controllers analogue stick, see this thread for more guided xorg.conf config file tweaking. I tried it but the buttons were oddly mapped, so I gave up. Many have gotten it to work though.
Oh, and I think you guys will enjoy this: while researching this article and diagnosing some problems with using the Sixaxis with SNES9X, I found perhaps the greatest moment in geek troubleshooting forum history. But thanks to this guy, I was able to get it working, so mad props to him and his Olive-Garden-fuelled troubleshooting.
As of JAN/06/2008 @ 11:43AM EST – For some reason, SNES9EXPRESS does not like it if i turn JOYSTICK on, i have to go to JOYSTICK tab and turn it off for the Emulator to run without an error code 1. I will look further into this and see if i can make sense of it.
*(UPDATE)* Going to Olive Garden for lunch, going to let a few ideas rattle around in my brain before i take another stab at this.
And that’s about it. Enjoy Ubuntu on your PS3, and if you come up with any more fun uses for it, please let me know in the comments. And if there are any other topics you’d love to see covered by a weekend how-to, speak up! Have a good Saturday tweaking everyone.