Spuldrfs

From PS3 Developer wiki
Jump to: navigation, search

Introduction[edit]

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

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

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

Filesystem Layout[edit]

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