Difference between revisions of "PSGroove"

From PS3 Developer wiki
Jump to: navigation, 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...")
 
m
 
(7 intermediate revisions by 2 users not shown)
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:  
 
+
<pre>sudo apt-get install gcc-avr avr-libc git-core</pre>
sudo apt-get install gcc-avr avr-libc git-core
+
=== dfu-programmer (for installing) === 
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 .  
  
 
Download and install msysgit
 
Download and install msysgit
 
 
 
After installing msysgit, follow the Cloning the repository, Configuring and Building instructions listed for the Linux section.
 
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.
 
Upload the hex to the appropriate device using the appropriate software.
  
 
+
=== 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 116:
 
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 132:
 
# 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:  
  
Hard power cycle your PS3 (using the switch in back, or unplug it)  
+
*Hard power cycle your PS3 (using the switch in back, or unplug it)  
Plug the dongle into your PS3.  
+
*Plug the dongle into your PS3.  
Press the PS3 power button, followed quickly by the eject button.  
+
*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.  
+
 
+
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  
+
=== 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 154:
  
  
Links  
+
=== Links === 
 
Github Page  
 
Github Page  
  
 
Retrieved from "http://ps3wiki.lan.st/index.php/PSGroove"
 
Retrieved from "http://ps3wiki.lan.st/index.php/PSGroove"
 +
 +
 +
{{Custom Firmware}}<noinclude>[[Category:Main]]</noinclude>

Latest revision as of 21:33, 14 July 2017

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[edit]

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

... and maybe more

Compiling[edit]

Linux[edit]

Prerequisites[edit]

avr-gcc / avr-libc / git[edit]

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)[edit]

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[edit]

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[edit]

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[edit]

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

make clean
make

Programming[edit]

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[edit]

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[edit]

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

Prerequisites[edit]

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[edit]

# 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[edit]

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[edit]

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[edit]

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[edit]

Github Page

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