-
Notifications
You must be signed in to change notification settings - Fork 3
Home
A list of all devices which rockbox supports (and to what degree) can be found here. However, it is important to note that the only devices which are currently supported by this project are the ones which use the ARC USB controller (found in the PP502x chipset).
If you can confirm more platforms, feel free to edit this page.
- ipodnano1g
- ipodvideo
- sansae200
- gigabeats
- gogearhdd1630
- gogearhdd6330
- gogearsa9200
- ipod4g
- ipodcolor
- ipodmini1g
- ipodmini2g
- iriverh10
- iriverh10_5gb
- mrobe100
- sansac200
- vibe500
The following USB controllers are known not to meet the hardware requirements necessary, and all rockbox targets based on them will never work with this exploit:
- AS3525
- Lacking access to the USB Address register.
Porting is fairly simple - the most challenging part is discovering if the platform in question has a capable USB controller. In order to qualify, the USB controller must support:
- The ability for software to modify the "USB Address" register of the target USB controller.
- A way to manually reset the Data Toggle on an arbitrary endpoint.
In addition, the USB driver must be augmented to provide the following features:
- A blocking recv() function.
- 8 byte packet size for in/out control endpoints.
- USB Full Speed (not High Speed).
If the hardware meets the requirements, adding support should be easy: just try to mimic the changes introduced into ARC driver, and provide a suitable alternative for Endpoint_ResetDataToggle()
git clone git://github.com/shuffle2/rockbox_psgroove.git
cd rockbox_psgroove
sudo tools/rockboxdev.sh
git submodule init
git submodule update
There are a few ps3 toolchains available, I prefer the one at HACKERCHANNEL/ps3chain. Clone the repo and follow the readme to install the toolchain. Remember to install build-essentials and libncurses5-dev( naming as pr ubuntu )
cd firmware/usbstack/pl3
# now, edit config.h to your liking, or just type make and it will give you all options
make
cd ../../..
mkdir build_yourdevicenamehere
cd build_yourdevicenamehere
../tools/configure
make
If you don't already have it installed, install the rockbox bootloader. Now, replace the firmware file on the device with the one you just compiled.
Note: you can install directly while compiling like so:
make PREFIX=/path/to/device bininstall
Currently, in order for rockbox_psgroove to work with AsbestOS, one must modify stage1's source to agree with rockbox_psgroove's nomenclature:
diff --git a/stage1/usbdev.c b/stage1/usbdev.c
index 91e7c2d..cd9a250 100644
--- a/stage1/usbdev.c
+++ b/stage1/usbdev.c
@@ -16,8 +16,8 @@ enum {
REQ_READ_STAGE2_BLOCK
};
-#define TYPE_HOST2DEV 0x40
-#define TYPE_DEV2HOST 0xc0
+#define TYPE_HOST2DEV 0x43
+#define TYPE_DEV2HOST 0xc3
volatile int cv;
volatile int u_result, u_count;
In addition, you'll need to change the toolchain path if you're using HACKERCHANNEL/ps3chain as mentioned above:
diff --git a/common/ppu.mak b/common/ppu.mak
index b63e0ea..e5dca77 100644
--- a/common/ppu.mak
+++ b/common/ppu.mak
@@ -5,7 +5,7 @@
# This code is licensed to you under the terms of the GNU GPL, version 2;
# see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
-PREFIX=$(PS3DEV)/bin/powerpc64-linux-
+PREFIX=$(PS3DEV)/ppu64/bin/powerpc64-linux-
CFLAGS=-ffreestanding -mbig-endian -mcpu=cell -m64
LDFLAGS=-nostartfiles -nostdlib -mbig-endian