Coffeehouse Thread

35 posts

What prevents me from installing Linux on a XBox 360?

Back to Forum: Coffeehouse
  • User profile image
    Shining Arcanine

    I put my Linksys WRT54GS v2.1 back into service yesterday and installed the latest DD-WRT firmware on it, which is based on the Linux 2.4.37 kernel. The ability to SSH into the router (which is how I found out it ran Linux 2.4.37) is really cool and I would like to be able to SSH into more stuff in my house.

     

    That made me start thinking of getting some sort of Linux file server setup so I could pipe backups of my laptop to it like I do with a virtual machine I have running on my desktop at the moment. I asked on the Gentoo forums about the possibility of installing Gentoo on a Linksys NSLU2 to act as a file server, but a developer there told me that the NSLU2 file server performance was poor and suggested that I consider other hardware.

     

    I then about the possibility of using an XBox 360 to do it. From what I have read online, it seems that I need to either boot my XBox 360 with a hacked DVD every time I want to run Linux or I need to physically modify the hardware. It seems that for some reason, I cannot just have it boot Linux automatically when I turn it on, so I am wondering, exactly what keeps me from installing Linux on a XBox 360 similarly to how I did it on my router? Is Microsoft deliberately trying to prevent people from installing other operating systems on the platform?

     

    I realize that I could build a conventional PC for this sort of thing, but I am a computer science student and I find it more educational to take a more unconventional approach to doing this. Assuming I install Linux on both a NSLU2 and a XBox 360, I would have 5 to 6 different computer architectures (i.e. x86-32 via my laptop, x86-64 via my desktop, Sparc via my university's unix server, MIPS via my linksys router, ARM via the NSLU2 and PowerPC via the XBox 360) on which I could run software I compile/assembly, which would give me a wider range of flexibility to experiment with C/assembly programming on different computer architectures in my free time.

  • User profile image
    Cream​Filling512

    The Xbox 360 will only run signed code, it doesn't matter if its on a DVD or installed, it can't run Linux on the hardware.  Only way you can run your own code (without access to an official SDK), is with XNA.  But you're sandboxed by the runtime, which is fine for homebrew games.

  • User profile image
    JoshRoss

    Every time an Xbox boots Linux, a baby seal is beaten with a club.  It is an unfortunate series of events. But hey, c'est la vie.

  • User profile image
    W3bbo

    Point-by-point analysis and comment:

    • The command-line paradigm isn't suited to everything. Arguably most routers don't need to run Linux (or even an OS in the first place). But that's another discussion.
    • Just an FYI, but Windows Server includes an NFS server.
    • The Xbox 360 hardware employs a variety of systems to keep unsigned code from running. The Playstation 3 uses a hypervisor (that's currently being cracked), I assume the X360 uses something similar.
    • Yes, Microsoft is actively and deliberately trying to stop unsigned code from running on the console because it's the only sure-fire way to counter game piracy. Stopping free homebrew is an unfortunate side-effect, but it's also to stop development of commercial programs published without royalties to the console MFG.
    • If you want to make games for the console without the XDK, use XNA which is officially sanctioned. If you just want to hack around with it, look elsewhere.
    • The whole point of C programming is that it's the same accross different platforms (or rather, it's meant to be). So with the exception of assembly programming your point is moot.
    • And you don't actually need the right hardware to run assembly, often the chip mfgs make available cross-compilers with suitable emulators. Visual Studio comes with an ARM emulator for its Windows CE / Windows Mobile development stuff (and Visual eMbedded came with SH-3, MIPS, and ARM emulators too IIRC).
    • You envisage an overly complicated setup, and if you want to run your own assembly code on one of those devices you're going to invariably end up taking it out of service (if not during deployment, then certainly during debugging).
    • As you said, you're a CS guy, you should be more concerned with the mathematical underpinning of your work, rather than the hardware it runs on, which is the job of an EE person, which you aren't.
  • User profile image
    Shining Arcanine

    JoshRoss said:

    Every time an Xbox boots Linux, a baby seal is beaten with a club.  It is an unfortunate series of events. But hey, c'est la vie.

    I do not speak French, but I know some Spanish and Latin, so I am going to guess that "c'est la vie" means "that is the life".

     

    Anyway, why does the XBox 360 only run signed code? Is there some software in the BIOS that looks for a signature? What would prevent me from removing the signature requirement? Is it possible to circumvent the signed code requirement by cracking the signing keys for the XBox 360 like a project did for Texas Instruments calculators?

     

    http://www.schneier.com/blog/archives/2009/09/texas_instrumen.html

     

    I know that my university has access to computing time on one of the most powerful super computers in the world at the moment and I have been itching to write some programs for Nvidia processors via CUDA. In theory, either approach should be sufficient to crack the signing keys, although it might take a while before whatever program I write to crack the signing keys finds a match. If I obtain the signing keys via this method, could I then use them to digitally sign the Linux kernel so that it will run on the XBox 360? Provided I have the signing keys, how would I go about digitally signing the linux kernel that assuming it is possible?

  • User profile image
    W3bbo

    Shining Arcanine said:
    JoshRoss said:
    *snip*

    I do not speak French, but I know some Spanish and Latin, so I am going to guess that "c'est la vie" means "that is the life".

     

    Anyway, why does the XBox 360 only run signed code? Is there some software in the BIOS that looks for a signature? What would prevent me from removing the signature requirement? Is it possible to circumvent the signed code requirement by cracking the signing keys for the XBox 360 like a project did for Texas Instruments calculators?

     

    http://www.schneier.com/blog/archives/2009/09/texas_instrumen.html

     

    I know that my university has access to computing time on one of the most powerful super computers in the world at the moment and I have been itching to write some programs for Nvidia processors via CUDA. In theory, either approach should be sufficient to crack the signing keys, although it might take a while before whatever program I write to crack the signing keys finds a match. If I obtain the signing keys via this method, could I then use them to digitally sign the Linux kernel so that it will run on the XBox 360? Provided I have the signing keys, how would I go about digitally signing the linux kernel that assuming it is possible?

    a) "c'est la vie" it's a common expression translated to "...such is life"; you say it with a sigh in your voice. People express it when they're resigned to life, as opposed to bitching about something.

     

    b) For reasons described in my post above

     

    c) Sort-of, but you're incredibly naive to think as an undergradate your university would allow you to use precious (and expensive) supercomputer time to try to crack the private signing key for the code-signing certificates used on the Xbox 360. Not only would it still take a few years with today's computational power, but I understand Microsoft probably has a revocation service running too, so as soon as you crack it it's worthless and you have to start all over again.

  • User profile image
    W3bbo

    Shining Arcanine said:
    JoshRoss said:
    *snip*

    I do not speak French, but I know some Spanish and Latin, so I am going to guess that "c'est la vie" means "that is the life".

     

    Anyway, why does the XBox 360 only run signed code? Is there some software in the BIOS that looks for a signature? What would prevent me from removing the signature requirement? Is it possible to circumvent the signed code requirement by cracking the signing keys for the XBox 360 like a project did for Texas Instruments calculators?

     

    http://www.schneier.com/blog/archives/2009/09/texas_instrumen.html

     

    I know that my university has access to computing time on one of the most powerful super computers in the world at the moment and I have been itching to write some programs for Nvidia processors via CUDA. In theory, either approach should be sufficient to crack the signing keys, although it might take a while before whatever program I write to crack the signing keys finds a match. If I obtain the signing keys via this method, could I then use them to digitally sign the Linux kernel so that it will run on the XBox 360? Provided I have the signing keys, how would I go about digitally signing the linux kernel that assuming it is possible?

    a) "c'est la vie" it's a common expression translated to "...such is life"; you say it with a sigh in your voice. People express it when they're resigned to life, as opposed to bitching about something.

     

    b) For reasons described in my post above

     

    c) Sort-of, but you're incredibly naive to think as an undergradate your university would allow you to use precious (and expensive) supercomputer time to try to crack the private signing key for the code-signing certificates used on the Xbox 360. Not only would it still take a few years with today's computational power, but I understand Microsoft probably has a revocation servicerunning too, so as soon as you crack it it's worthless and you have to start all over again.

  • User profile image
    Minh

    Shining Arcanine said:
    JoshRoss said:
    *snip*

    I do not speak French, but I know some Spanish and Latin, so I am going to guess that "c'est la vie" means "that is the life".

     

    Anyway, why does the XBox 360 only run signed code? Is there some software in the BIOS that looks for a signature? What would prevent me from removing the signature requirement? Is it possible to circumvent the signed code requirement by cracking the signing keys for the XBox 360 like a project did for Texas Instruments calculators?

     

    http://www.schneier.com/blog/archives/2009/09/texas_instrumen.html

     

    I know that my university has access to computing time on one of the most powerful super computers in the world at the moment and I have been itching to write some programs for Nvidia processors via CUDA. In theory, either approach should be sufficient to crack the signing keys, although it might take a while before whatever program I write to crack the signing keys finds a match. If I obtain the signing keys via this method, could I then use them to digitally sign the Linux kernel so that it will run on the XBox 360? Provided I have the signing keys, how would I go about digitally signing the linux kernel that assuming it is possible?

    From my hazy memory...

     

    Detection of signed code is done w/ hardware via a chip... which can be bypassed with a hardware mod... ie another chip... Google for the mod chip if you want...

     

    But becareful, MS can detect the mod somehow... and will prevent you from logging onto Xbox Live...

     

    Also, the only way to sign a file so it would have the signature MS expects is to use MS's key file... Which, I hear, MS guards with 10 German Shepards.

     

    It's easier to mod the Xbox to ignore the signature.

  • User profile image
    Shining Arcanine

    W3bbo said:
    Shining Arcanine said:
    *snip*

    a) "c'est la vie" it's a common expression translated to "...such is life"; you say it with a sigh in your voice. People express it when they're resigned to life, as opposed to bitching about something.

     

    b) For reasons described in my post above

     

    c) Sort-of, but you're incredibly naive to think as an undergradate your university would allow you to use precious (and expensive) supercomputer time to try to crack the private signing key for the code-signing certificates used on the Xbox 360. Not only would it still take a few years with today's computational power, but I understand Microsoft probably has a revocation servicerunning too, so as soon as you crack it it's worthless and you have to start all over again.

    How would this revocation service work? Is there something inside of the XBox 360 that would cause it to connect to Microsoft's servers to get new keys, even after its software has been replaced with custom software like Linux? If that is the case, what stops someone from spoofing Microsoft's servers to issue new keys?

     

    Minh, I think it would be educational for me to attempt to work with the signature rather than around it. Do you have any advice on how I would use Microsoft's key file assuming I had it? Also, do you have any suggestions (e.g. read x book and apply what it says to y signed file) for how I would determine the contents of Microsoft's key file?

  • User profile image
    Minh

    Shining Arcanine said:
    W3bbo said:
    *snip*

    How would this revocation service work? Is there something inside of the XBox 360 that would cause it to connect to Microsoft's servers to get new keys, even after its software has been replaced with custom software like Linux? If that is the case, what stops someone from spoofing Microsoft's servers to issue new keys?

     

    Minh, I think it would be educational for me to attempt to work with the signature rather than around it. Do you have any advice on how I would use Microsoft's key file assuming I had it? Also, do you have any suggestions (e.g. read x book and apply what it says to y signed file) for how I would determine the contents of Microsoft's key file?

    I believe MS's key file is impossible to brute-force decrypt unless you have NSA-type computers. They say it takes longer than the age of the universe to crack the existing SSL 128-bit certificate. So, I'm not sure if it's doable w/ a university type hardware.

     

    Also, in the US I, I think they made it illegal (at least on paper) to try to crack a company's encryption w/ the Digital Millenium Copyright Act... but I'm not a lawyer.

     

    But if you had MS's encryption file, think about putting it on the black market... you could get millions Smiley j/k MS lawyers, I'm totally j/k...

  • User profile image
    Bass

    Shining Arcanine said:
    W3bbo said:
    *snip*

    How would this revocation service work? Is there something inside of the XBox 360 that would cause it to connect to Microsoft's servers to get new keys, even after its software has been replaced with custom software like Linux? If that is the case, what stops someone from spoofing Microsoft's servers to issue new keys?

     

    Minh, I think it would be educational for me to attempt to work with the signature rather than around it. Do you have any advice on how I would use Microsoft's key file assuming I had it? Also, do you have any suggestions (e.g. read x book and apply what it says to y signed file) for how I would determine the contents of Microsoft's key file?

    The key is secret, as Minh said, probably guarded by at least 10 German Shepards. Did you manage to acquire it? I don't think there was ever a case of a hacker discovering the private key for a console. The original Xbox was cracked open pretty damn hard. But it was done so by utilizing a buffer overflow hack.

  • User profile image
    Cannot​Resolve​Symbol

    Bass said:
    Shining Arcanine said:
    *snip*

    The key is secret, as Minh said, probably guarded by at least 10 German Shepards. Did you manage to acquire it? I don't think there was ever a case of a hacker discovering the private key for a console. The original Xbox was cracked open pretty damn hard. But it was done so by utilizing a buffer overflow hack.

    If you're really interested in coding on a game console (for whatever reason), you might look at the PS3 or the Wii...  an original PS3 is capable of running Linux (as in, it's officially supported) and you can play around with the Cell processor (which is interesting in and of itself).

     

    The Wii doesn't have official Linux support, but has been hacked to run homebrew software...  if you want to get really close to the hardware, this would be the way to go (Linux on the PS3 runs under a hypervisor and doesn't have access to graphics hardware, etc.).

     

    Both systems are PowerPC based.  On a side note, the XBox's CPU is actually a three-core variant of the PPE inside the PS3's Cell processor...  interesting that all three current gaming consoles are using the POWER architecture (or variants thereof) while POWER is essentially dead as a general desktop computing platform.

  • User profile image
    magicalclick

    JoshRoss said:

    Every time an Xbox boots Linux, a baby seal is beaten with a club.  It is an unfortunate series of events. But hey, c'est la vie.

    Poor poor baby seal Crying

    Leaving WM on 5/2018 if no apps, no dedicated billboards where I drive, no Store name.
    Last modified
  • User profile image
    PerfectPhase

    Shining Arcanine said:
    W3bbo said:
    *snip*

    How would this revocation service work? Is there something inside of the XBox 360 that would cause it to connect to Microsoft's servers to get new keys, even after its software has been replaced with custom software like Linux? If that is the case, what stops someone from spoofing Microsoft's servers to issue new keys?

     

    Minh, I think it would be educational for me to attempt to work with the signature rather than around it. Do you have any advice on how I would use Microsoft's key file assuming I had it? Also, do you have any suggestions (e.g. read x book and apply what it says to y signed file) for how I would determine the contents of Microsoft's key file?

    Have a look at http://en.wikipedia.org/wiki/Free60

     

  • User profile image
    figuerres

    well if you just want to run linux on a ppc why not find a used ppc mac to do it with ?

    then you have a pc with a keyboard, mouse etc.... and way less hassle to make it work.

  • User profile image
    Cream​Filling512

    CannotResolveSymbol said:
    Bass said:
    *snip*

    If you're really interested in coding on a game console (for whatever reason), you might look at the PS3 or the Wii...  an original PS3 is capable of running Linux (as in, it's officially supported) and you can play around with the Cell processor (which is interesting in and of itself).

     

    The Wii doesn't have official Linux support, but has been hacked to run homebrew software...  if you want to get really close to the hardware, this would be the way to go (Linux on the PS3 runs under a hypervisor and doesn't have access to graphics hardware, etc.).

     

    Both systems are PowerPC based.  On a side note, the XBox's CPU is actually a three-core variant of the PPE inside the PS3's Cell processor...  interesting that all three current gaming consoles are using the POWER architecture (or variants thereof) while POWER is essentially dead as a general desktop computing platform.

    It's not really very interesting, PS3 only gives you access to a single execution unit in the processor, and no GPU access.

     

    In general, running unsigned code on the 360 is pretty much impossible today with any hardware or software modification.  You'd have to find a console that hasn't been updated in years and still has an exploitable hypervisor, good luck with that.

     

    However, you gotta consider that MS already gives you an official suppported way to make homebrew stuff on the 360 (it costs some money, but still), you get tools and the XNA framework is pretty good.  Since that exists, there is little point in allowing unsigned code to run on the hardware since it'll just encourage piracy, and although you could run a different OS or something, there's not much point to it IMO other than to say "hey it runs Linux!".

  • User profile image
    Cannot​Resolve​Symbol

    CreamFilling512 said:
    CannotResolveSymbol said:
    *snip*

    It's not really very interesting, PS3 only gives you access to a single execution unit in the processor, and no GPU access.

     

    In general, running unsigned code on the 360 is pretty much impossible today with any hardware or software modification.  You'd have to find a console that hasn't been updated in years and still has an exploitable hypervisor, good luck with that.

     

    However, you gotta consider that MS already gives you an official suppported way to make homebrew stuff on the 360 (it costs some money, but still), you get tools and the XNA framework is pretty good.  Since that exists, there is little point in allowing unsigned code to run on the hardware since it'll just encourage piracy, and although you could run a different OS or something, there's not much point to it IMO other than to say "hey it runs Linux!".

    Actually, the PS3 does give you access to six of the eight SPEs in the PS3, along with the PPE (which runs the OS and controls whatever it is you're running on the SPEs).

     

    It is gimped relative to a full-blown IBM Cell blade or native game code on the PS3--  you get no GPU access (as you mentioned), one of the eight SPEs is disabled to allow higher yield (so Sony doesn't have to throw out units with one bad core), and a second SPE is dedicated to the PS3's operating system and security software.  Still, if you're into exotic processor architectures and you don't need to do intense graphical stuff, the PS3's an interesting option...  and you're not going to find a (nearly) fully functional Cell system for anywhere close to the same price. Wink

  • User profile image
    W3bbo

    CannotResolveSymbol said:
    CreamFilling512 said:
    *snip*

    Actually, the PS3 does give you access to six of the eight SPEs in the PS3, along with the PPE (which runs the OS and controls whatever it is you're running on the SPEs).

     

    It is gimped relative to a full-blown IBM Cell blade or native game code on the PS3--  you get no GPU access (as you mentioned), one of the eight SPEs is disabled to allow higher yield (so Sony doesn't have to throw out units with one bad core), and a second SPE is dedicated to the PS3's operating system and security software.  Still, if you're into exotic processor architectures and you don't need to do intense graphical stuff, the PS3's an interesting option...  and you're not going to find a (nearly) fully functional Cell system for anywhere close to the same price. Wink

    Don't forget the new "slim" PS3 doesn't run Linux anymore, and it drops back-compat with the PS2 (since the earlier PS3s actually contained the same graphics hardware as the PS2 specifically for backcompat).

     

    I don't get why Sony gimps the GPU access on the PS3 though. I understand why they don't want to give out full capabilities to 'enthusiasts' but it seems particularly stingy. Couldn't they just rate-limit it or something?

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.