Spuldrfs
Jump to navigation
Jump to search
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
- It's a really neat trick :)
- First, create a pseudo platform device. Then use it to request firmware. After that destroy the platform device.
- We could use it to load metldr automatically into kernel space.
- http://www.crashcourse.ca/wiki/index.php/Loading_external_firmware