PSGroove: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
(Created page with "PSGroove is an open source program for executing the 'PSJailbreak' exploit, and injecting unsigned code into the lv2 gameos kernel during the PS3 boot process. == Supported Ha...")
 
No edit summary
Line 15: Line 15:




Linux  
=== Linux ===
Prerequisites  
=== Prerequisites ===
avr-gcc / avr-libc / git  
=== avr-gcc / avr-libc / git ===
Under Gentoo:  
Under Gentoo:  


emerge -av portage-utils crossdev git
<pre>emerge -av portage-utils crossdev git
USE="-openmp" crossdev -t avr --without-headers
USE="-openmp" crossdev -t avr --without-headers
</pre>
Under Ubuntu:  
Under Ubuntu:  


sudo apt-get install gcc-avr avr-libc git-core
 
dfu-programmer (for installing)  
<pre>sudo apt-get install gcc-avr avr-libc git-core</pre>
=== dfu-programmer (for installing) === 
Download here: http://sourceforge.net/projects/dfu-programmer/files/  
Download here: http://sourceforge.net/projects/dfu-programmer/files/  


Older version available in the Ubuntu repository.  
Older version available in the Ubuntu repository.  


sudo apt-get install dfu-programmerCloning the repository  
<pre>sudo apt-get install dfu-programmer</pre>
 
=== Cloning the repository ===
The repository uses the LUFA library as a submodule. To clone, use something like:  
The repository uses the LUFA library as a submodule. To clone, use something like:  


git clone git://github.com/psgroove/psgroove.git
<pre>git clone git://github.com/psgroove/psgroove.git
cd psgroove
cd psgroove
git submodule init
git submodule init
git submodule update
git submodule update
Configuring  
</pre>
 
=== Configuring ===
Chip and board selection can usually be handled in the Makefile. In particular, update the MCU, BOARD, and F_CPU lines. Suggested values:  
Chip and board selection can usually be handled in the Makefile. In particular, update the MCU, BOARD, and F_CPU lines. Suggested values:  


Teensy 1.0:  
Teensy 1.0:  


MCU = at90usb162  
*MCU = at90usb162  
BOARD = TEENSY  
*BOARD = TEENSY  
F_CLOCK = 16000000  
*F_CLOCK = 16000000  
Teensy++ 1.0:  
Teensy++ 1.0:  


MCU = at90usb646  
*MCU = at90usb646  
BOARD = TEENSY  
*BOARD = TEENSY  
F_CLOCK = 16000000  
*F_CLOCK = 16000000  
Teensy 2.0:  
Teensy 2.0:  


MCU = atmega32u4  
*MCU = atmega32u4  
BOARD = TEENSY  
*BOARD = TEENSY  
F_CLOCK = 16000000  
*F_CLOCK = 16000000  
Teensy++ 2.0:  
Teensy++ 2.0:  


MCU = at90usb1286  
*MCU = at90usb1286  
BOARD = TEENSY  
*BOARD = TEENSY  
F_CLOCK = 16000000  
*F_CLOCK = 16000000  
AT90USBKEY / AT90USBKEY2:  
AT90USBKEY / AT90USBKEY2:  


MCU = at90usb1287  
*MCU = at90usb1287  
BOARD = USBKEY  
*BOARD = USBKEY  
F_CLOCK = 8000000  
*F_CLOCK = 8000000  
AVROpendous v1.1:  
AVROpendous v1.1:  


MCU = at90usb162  
*MCU = at90usb162  
BOARD = USER (need to manually attribute LED pins in Board/LEDs.h)  
*BOARD = USER (need to manually attribute LED pins in Board/LEDs.h)  
F_CLOCK = 8000000  
*F_CLOCK = 8000000  
ATAVRXPLAIN:  
ATAVRXPLAIN:  


MCU = at90usb1287  
*MCU = at90usb1287  
BOARD = XPLAIN  
*BOARD = XPLAIN  
F_CLOCK = 8000000  
*F_CLOCK = 8000000  
Minimus AVR USB:  
Minimus AVR USB:  


MCU = at90usb162  
*MCU = at90usb162  
BOARD = USBKEY  
*BOARD = USBKEY  
F_CLOCK = 16000000
*F_CLOCK = 16000000


Building  
=== Building ===
On Linux, use the AVR GCC toolchain (Debian/Ubuntu package: gcc-avr).  
On Linux, use the AVR GCC toolchain (Debian/Ubuntu package: gcc-avr).  


make clean
<pre>make clean
make
make</pre>
Programming  
=== Programming ===
Now program psgroove.hex into your board and you're ready to go. For the AT90USBKEY and other chips with a DFU bootloader preinstalled, you can get the dfu-programmer tool, put your board in programming mode, and run  
Now program psgroove.hex into your board and you're ready to go. For the AT90USBKEY and other chips with a DFU bootloader preinstalled, you can get the dfu-programmer tool, put your board in programming mode, and run  


make dfu
<pre>make dfu</pre>
For the Teensy boards, you probably have to use the [Teensy Loader](http://www.pjrc.com/teensy/loader.html) software.  
For the Teensy boards, you probably have to use the [Teensy Loader](http://www.pjrc.com/teensy/loader.html) software.  


Windows  
=== Windows ===
Download and install WinAVR .  
Download and install WinAVR .  


Line 104: Line 110:




OSX  
=== OSX ===
Once the prerequisites are installed, this is pretty much the same as the Linux process listed above.   
Once the prerequisites are installed, this is pretty much the same as the Linux process listed above.   


Prerequisites  
=== Prerequisites ===
Install the following to get started :  
Install the following to get started :  


Line 117: Line 123:
Open a new terminal window and enter the following:  
Open a new terminal window and enter the following:  


sudo port install git-core dfu-programmer
<pre>sudo port install git-core dfu-programmer</pre>
Everything else  
== Everything else ===
<pre>
# get the source
# get the source
git clone git://github.com/psgroove/psgroove.git
git clone git://github.com/psgroove/psgroove.git
Line 132: Line 139:
# put the board into programming mode
# put the board into programming mode
make dfu
make dfu
Notes  
</pre>
=== Notes ===
MacPorts includes a portfile for the AVR toolchain, however, the included version of avr-gcc(4.0.2) does not support the AT90USB1287, it may be suitable for other boards.   
MacPorts includes a portfile for the AVR toolchain, however, the included version of avr-gcc(4.0.2) does not support the AT90USB1287, it may be suitable for other boards.   


Haven't tested the programming part yet, still waiting for a board to arrive. The programming command is likely to be "sudo make dfu".  
Haven't tested the programming part yet, still waiting for a board to arrive. The programming command is likely to be "sudo make dfu".  


Using  
=== Using ===
To use this exploit:  
To use this exploit:  


Line 148: Line 156:




Board-specific notes  
=== Board-specific notes ===
Teensy boards only have one LED, so it will turn off when the exploit succeeds rather than turn green. Older Teensy 1.0 boards also have the polarity inverted. In general, a LED should do something when the board is powered, and do something different when the exploit works.  
Teensy boards only have one LED, so it will turn off when the exploit succeeds rather than turn green. Older Teensy 1.0 boards also have the polarity inverted. In general, a LED should do something when the board is powered, and do something different when the exploit works.  


Line 155: Line 163:




Links  
=== Links === 
Github Page  
Github Page  


Retrieved from "http://ps3wiki.lan.st/index.php/PSGroove"
Retrieved from "http://ps3wiki.lan.st/index.php/PSGroove"

Revision as of 16:27, 25 February 2011

PSGroove is an open source program for executing the 'PSJailbreak' exploit, and injecting unsigned code into the lv2 gameos kernel during the PS3 boot process.


Supported Hardware

  • AT90USB162
  • AT90USB646
  • AT90USB647
  • AT90USB1286
  • AT90USB1287
  • ATMEGA32U4

... and maybe more

Compiling

Linux

Prerequisites

avr-gcc / avr-libc / git

Under Gentoo:

emerge -av portage-utils crossdev git
USE="-openmp" crossdev -t avr --without-headers

Under Ubuntu:


sudo apt-get install gcc-avr avr-libc git-core

dfu-programmer (for installing)

Download here: http://sourceforge.net/projects/dfu-programmer/files/

Older version available in the Ubuntu repository.

sudo apt-get install dfu-programmer

Cloning the repository

The repository uses the LUFA library as a submodule. To clone, use something like:

git clone git://github.com/psgroove/psgroove.git
cd psgroove
git submodule init
git submodule update

Configuring

Chip and board selection can usually be handled in the Makefile. In particular, update the MCU, BOARD, and F_CPU lines. Suggested values:

Teensy 1.0:

  • MCU = at90usb162
  • BOARD = TEENSY
  • F_CLOCK = 16000000

Teensy++ 1.0:

  • MCU = at90usb646
  • BOARD = TEENSY
  • F_CLOCK = 16000000

Teensy 2.0:

  • MCU = atmega32u4
  • BOARD = TEENSY
  • F_CLOCK = 16000000

Teensy++ 2.0:

  • MCU = at90usb1286
  • BOARD = TEENSY
  • F_CLOCK = 16000000

AT90USBKEY / AT90USBKEY2:

  • MCU = at90usb1287
  • BOARD = USBKEY
  • F_CLOCK = 8000000

AVROpendous v1.1:

  • MCU = at90usb162
  • BOARD = USER (need to manually attribute LED pins in Board/LEDs.h)
  • F_CLOCK = 8000000

ATAVRXPLAIN:

  • MCU = at90usb1287
  • BOARD = XPLAIN
  • F_CLOCK = 8000000

Minimus AVR USB:

  • MCU = at90usb162
  • BOARD = USBKEY
  • F_CLOCK = 16000000

Building

On Linux, use the AVR GCC toolchain (Debian/Ubuntu package: gcc-avr).

make clean
make

Programming

Now program psgroove.hex into your board and you're ready to go. For the AT90USBKEY and other chips with a DFU bootloader preinstalled, you can get the dfu-programmer tool, put your board in programming mode, and run

make dfu

For the Teensy boards, you probably have to use the [Teensy Loader](http://www.pjrc.com/teensy/loader.html) software.

Windows

Download and install WinAVR .

Download and install msysgit


After installing msysgit, follow the Cloning the repository, Configuring and Building instructions listed for the Linux section.


Upload the hex to the appropriate device using the appropriate software.


OSX

Once the prerequisites are installed, this is pretty much the same as the Linux process listed above.

Prerequisites

Install the following to get started :

XCode - download from apple or install directly from an OSX DVD MacPorts - BSD ports functionality on OSX CrossPack AVR AVR toolchain for OSX


Open a new terminal window and enter the following:

sudo port install git-core dfu-programmer

Everything else =

# get the source
git clone git://github.com/psgroove/psgroove.git
cd psgroove
git submodule init
git submodule update

# do the build
make clean
make


# put the board into programming mode
make dfu

Notes

MacPorts includes a portfile for the AVR toolchain, however, the included version of avr-gcc(4.0.2) does not support the AT90USB1287, it may be suitable for other boards.

Haven't tested the programming part yet, still waiting for a board to arrive. The programming command is likely to be "sudo make dfu".

Using

To use this exploit:

Hard power cycle your PS3 (using the switch in back, or unplug it) Plug the dongle into your PS3. Press the PS3 power button, followed quickly by the eject button. After a few seconds, the first LED on your dongle should light up. After about 5 seconds, the second LED will light up (or the LED will just go off, if you only have one). This means the exploit worked! You can see the new "Install Package Files" menu option in the game menu.



Board-specific notes

Teensy boards only have one LED, so it will turn off when the exploit succeeds rather than turn green. Older Teensy 1.0 boards also have the polarity inverted. In general, a LED should do something when the board is powered, and do something different when the exploit works.



Links

Github Page

Retrieved from "http://ps3wiki.lan.st/index.php/PSGroove"