Spuldrfs

From PS3 Developer wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Introduction

  • spuldrfs is a Linux virtual filesystem which allows you to execute isolated SPU modules from user-space.
  • spuldrfs is like spuisofs but can also execute loaders like lv1ldr or isoldr.
  • I used this driver e.g. to run modified lv1ldr to dump my ENCDEC keys.
  • GIT repo: http://gitorious.ps3dev.net/ps3linux/spuldrfs

Features

  • MFC data segment faults are handled by the driver. That means you do not have to worry about it.
  • Large data buffers which can be used for data exchange between SPU and PPU.
  • Data buffers are not physically continuous which eliminates the RAM allocation problem.
  • Full access to all SPU registers from user-space.

Mounting

glevand@debian:~$ sudo mount -t spuldrfs none /mnt

Filesystem Layout

glevand@debian:~$ ls -l /mnt
total 0
-rw-rw-rw- 1 root root 1048576 Aug 16 10:33 buf1
-rw-rw-rw- 1 root root 1048576 Aug 16 10:33 buf2
-rw-rw-rw- 1 root root 1048576 Aug 16 10:33 buf3
-r--r--r-- 1 root root       0 Aug 16 10:33 info
-rw-rw-rw- 1 root root 1048576 Aug 16 11:07 ldr
-rw-rw-rw- 1 root root  262144 Aug 16 10:33 ls
-rw-rw-rw- 1 root root 1048576 Aug 16 11:07 metldr
-rw-rw-rw- 1 root root  131072 Aug 16 10:33 priv2
-rw-rw-rw- 1 root root  131072 Aug 16 10:33 problem
--w--w--w- 1 root root       0 Aug 16 11:07 run
-r--r--r-- 1 root root    4096 Aug 16 10:33 shadow
glevand@debian:~$ cat /mnt/info 
buf1 d000000003746000
buf2 d000000003847000
buf3 d000000003948000
glevand@debian:~$ 

Loading Firmware From Linux Kernel Module