%HTMLlat1; %HTMLsymbol; %HTMLspecial; ]> Debian GNU/Linux on the PlayStation 3
Roland van Ipen­burg
To be stolen or blogged

De­bian GNU/Lin­ux on the PlayS­ta­tion 3

Mon­day 11 Jan­uary 2010 17:21

I still had some orig­i­nal fat 60GB PlayS­ta­tion 3 stand­ing around and af­ter some end-of-the-year disk­space in­ven­to­ry I de­cid­ed that for some se­ri­ous me­dia stor­age a 1TB ex­ter­nal dri­ve or a NAS with a cou­ple of TB space is more fu­ture-proof than try­ing to keep every­thing on that 60GB disk (I mean, there are USB sticks that are larg­er than that). So I moved and re­moved a cou­ple of 10's of gi­ga­bytes from the sys­tem to cre­ate some free space for Lin­ux. What was left could be backed up on my 16GB USB stick, so I was ready to mess things up.

Mess­ing things up start­ed with a dead live cd. Usu­al­ly a live cd means you can burn the ISO to a cd, put it in the sys­tem and boot some kind of Lin­ux from it. This is not how it works with the PlayS­ta­tion 3, be­cause it doesn't just boot from some­thing that isn't it's own in­ter­nal hard­disk. The trick is that the "In­stall Other OS" op­tion in the Sys­tem Set­tings menu of the PlayS­ta­tion also doesn't re­al­ly do what it says. What that op­tion does is copy a boot­loader from a pre­de­ter­mined fold­er on a USB stick to a spe­cial place on it's in­ter­nal hard­disk. The boot­loader might be some kind of very small Oper­at­ing Sys­tem, but it's not the moth­er­load. With the "Other OS" in­stalled, the PlayS­ta­tion 3 can then be set to boot that "Other OS". Only af­ter you have done that the PlayS­ta­tion can boot a boot­loader that can give you the op­tion to switch to boot­ing the real op­er­at­ing sys­tem that is on the cd-rom or on a USB stick.

A user friend­ly boot­loader should also give you the op­tion to boot the orig­i­nal PlayS­ta­tion OS, but if it doesn't do that you can al­ways boot that by first hold­ing the on/off "but­ton" un­till the sys­tem goes down af­ter the sec­ond beep. Then hold that "but­ton" on the qui­et sys­tem again un­til it beeps for the sec­ond time while the sys­tem switch­es on again. The chance of ac­tu­al­ly ru­in­ing the PlayS­ta­tion 3 in the process is much low­er than when you're work­ing with oth­er dual boot at­tempts be­cause the Other OS you're in­stalling is still run­ning un­der the PlayS­ta­tion's hy­per­vi­sor, which is some kind of vir­tu­al ma­chine that won't even let you see the disks or par­ti­tions where Sony's own stuff is hid­den. So while do­ing the par­ti­tion­ing you will only see the 10GB that's al­lo­cat­ed to you, and not some PlayS­ta­tion sys­tem stuff that would brick your sys­tem should you erase it by ac­ci­dent.

With an oth­eros.bld that pro­vid­ed kboot I was able to boot the live cd and in­stall de­bian on the 10GB par­ti­tion made for it by the PlayS­ta­tion sys­tem. Just don't go all ex­pert, be­cause a lot of the op­tions the ex­pert mode gives you don't work any­way. The nor­mal in­stall worked fine with my Bravia con­nect­ed through HDMI, wired net­work with DHCP, Ap­ple USB key­board and Log­itech USB mouse. And since that all was fine the next thing to do is up­date every­thing to the lat­est state of lenny.

Jump­ing from some live cd from 2007 straight to to­day's lenny will get you into some is­sues. Is­sues that no longer boot lin­ux. But you can al­ways go back to the PlayS­ta­tion OS and give up, or start all over again. I didn't give up and found out the main is­sue is that you have to have both the ker­nel and the sys­tem make the switch to udev at the same time, and maybe also the boot­loader needs to know about udev. So maybe three parts of the sys­tem need to be in sync to keep lin­ux bootable, and that is easy to mess up. What I end­ed up with was a boot­loader that didn't boot any of my ker­nels, or a boot­loader that could load a ker­nel that didn't fit the sys­tem that was al­ready switched over to udev.

The so­lu­tion was to look at the mes­sages on the screen and no­tice that af­ter some ex­per­i­ments us­ing pe­tit­boot /dev/sda point­ed to my 16MB Me­moryStick, and not to the 10GB par­ti­tion it point­ed to pre­vi­ous­ly when work­ing with the live cd and kboot. Some­how now that par­ti­tion was called /dev/ps3­da1. So in the kboot shell I mount­ed that par­ti­tion to edit /etc/kboot.conf and re­placed every oc­cur­ance of sda with ps3­da. And af­ter that it boots again. It even boots the lat­est ker­nel from ker­nel.org I com­piled on the PlayS­ta­tion 3.

The oth­er stu­pid thing I en­coun­tered was get­ting the wire­less to work. The prob­lem is that there is noth­ing wrong with the wire­less. You can use /sbin/iwlist to scan for net­works, use /sbin/if­con­fig to see the in­ter­face wlan0_re­name_re is there and up, but it's un­us­able be­cause it doesn't have an ipv4 ad­dress. Com­bined with the cu­rios­i­ty that the wired and the wire­less in­ter­face have the same MAC ad­dress it was old fash­ioned de­bug­ging with­out an in­ter­net con­nec­tion. Every­thing seems to work, but dhclient doesn't see the in­ter­face.

The so­lu­tion is to drop the bug­gy dhclient and in­stall dhcpcd in­stead. Ap­par­ent­ly it pro­vides the same func­tion­al­i­ty, but in a way that can han­dle the funky way the wire­less hard­ware is set up through the PlayS­ta­tion 3's hy­per­vi­sor. Us­ing dhcpcd the wire­less is up and run­ning.

The sys­tem isn't per­fect yet, but af­ter those big is­sues I'm hap­py to see things like blue­tooth just work with­out any has­sle and I can in­stall Opera 10 with­out any prob­lems. So now I'm run­ning Win­dows 95 in qemu on it and play­ing Soli­taire on my PlayS­ta­tion 3.


Book­mark this on De­li­cious

Add to Stum­bleUpon

Add to Mixx!



application away browser buy cool data days different flash game gta html ibook internet linux movie open play playstation possible run screen server side site stuff system train web windows work

Blog Posts (418)

Image Gal­leries

ipen­bug Last.fm pro­file

ipen­bug last.fm pro­file

Fol­low me on Twit­ter

Roland van Ipen­burg on face­book
Lin­ux Regis­tered User #488795
rolipe BOINC com­bined stats


Add to Google

Valid XHTML + RFDa Valid CSS! Hy­phen­at­ed XSL Pow­ered Valid RSS This site was cre­at­ed with Vim Pow­ered by Bri­co­lage! Pow­ered by Post­greSQL! Pow­ered by Apache! Pow­ered by mod­_perl! Pow­ered by Ma­son! Pow­ered by Perl Made on a Mac Pow­ered By Mac OS X XS4ALL This site has been proofed for ac­cu­ra­cy on the VISTAWEB-3000 Creative Com­mons Li­cense
This work by Roland van Ipen­burg is li­censed un­der a Creative Com­mons At­tri­bu­tion-Non­com­mer­cial-Share Alike 3.0 Un­port­ed Li­cense.
Per­mis­sions be­yond the scope of this li­cense may be avail­able at mail­to:ipen­burg@xs4all.nl.