118w ago - Following up on his
previous update, over the weekend PlayStation 3 hacker
Graf Chokolo has released his PS3 Linux 2.6 Kernel and began documenting his PS3 CFW Custom Firmware with OtherOS++ Project.
His new PlayStation 3 Linux Kernel includes a new HDD, FLASH, VFLASH and RAM drivers for PS3 and
AsbestOS users can use the drivers as well.
Download:
Graf Chokolo PS3 Linux 2.6 Repo
To quote: The repository which is based on Linux 2.6 kernel, has several wicked stuff in it especially graf_chokolo’s ram block device. As kmeaw said; “It can read/write anything in PS3 RAM, and very useful for HV hacking”
You can read below the commits done to his version of Linux kernel.
- Added support of several storage regions to PS3 storage library
- Improved PS3 disk block device driver
- New drivers for PS3 NOR and 3 RAM misc driver for full access to HV memory
- Added new HV calls
- Added extra debug messages for SPU isolation
Finally, from http://ps3wiki.lan.st/index.php/Custom_Firmware_with_OtherOS%2B%2B:
PS3 CFW Custom Firmware with OtherOS++
- First we need a custom Hypervisor (lv1.self) with OtherOS++ support and other nice features like full access to HV services :-) (working on it)
- Second, we need a program like otheros.self which will resize VFLASH region and store there petitboot
- Third, we need a GameOS program/XMB plugin which will trigger OtherOS++ boot after GameOS reboot by setting a flag on the 5th VFLASH region
then you could have 2 ps3 systems 1 official for psn & stuff and another to let's say...
Test our extended demos?
This may be a stupid question, not sure...
If we can start to do all these things outside of GameOS, is it possible to have the best of both worlds? In other words can we run an unmodified GameOS so that Sony doesn't detect any funny modifications that lead to PSN bans, as well as running Linux & homebrew? I have zero interest in game backups or anything along those lines...
Download: AsbestOS Linux Kernel Installer v2.0 / AsbestOS v2.0 (Compiled) / [url=http://git.dukio.com/gitweb.cgi?p=install-asbestos;a=summary
PS3 Linux v2.6 Changelog:
Added ioctl PS3RAM_IOCTL_USER_TO_LPAR_ADDR cmd to ps3ram character device to convert user space addresses to lpar addresses
New PS3 VUART Dispatcher Manager (port 10) driver
New PS3 Dispatcher Manager Proxy character device driver for user space /dev/ps3dmproxy
AsbestOS Linux Kernel Installer v2.0 Changelog:
ICON0.PNG – Updated for v2.0
sfo.xml – Updated for v2.0
Makefile – Updated for v2.0
Progress bar and 128M bootmem fix.
To quote from http://ps3.khore.org/asbestos-v20-released: Well folks, it's done! I've been working with kmeaw last couple of weeks in asbestOS v2.0. This release is easyer to use, and eases the installation of Debian GNU/Linux in your PS3. Right now, it's the best way to overcome the loss of OtherOS feature. Hope everyone enjoys it!
To quote from http://grafchokolo.com/ps3-development-page.html/comment-page-1/#comment-395: Just pushed my newest PS3 Linux drivers to remote GIT repository
You can access Dispatcher Manager from User Space through /dev/ps3dmproxy and in Kernel Space through ps3dm interface.
But take care, some HV services are dangerous and you should know what you are doing, you could e.g. overwrite your metldr or EID on FLASH
I intend to write an updater for packages in the next days which will be able to update e.g. CORE OS package from Linux user space
For a long time i couldn’t decide where to implement the updater, in kernel space or in user space, kernel space makes e.g. easy converting memory addresses to LPAR addresses, but allocating large piece of memory in kernel is not simple, and implemnting HV services in kernel seems to me to be out of question, so i decied to do it from user space, more safe and easier
And we will need HUGEPAGE support for updater. I already tested it on my PS3 Linux and it works great
I also added a new IOCTL to /dev/ps3ram character device – PS3RAM_IOCTL_USER_TO_LPAR_ADDR. It allows you to convert a user space memory address to LPAR address. We will need it for updater e.g., because updater has to send LPAR address of package to Update Manager. Here is an example how to use it: http://pastie.org/1585460
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char **argv)
{
unsigned char *buf;
int fd, res;
struct ps3ram_ioctl_user_to_lpar_addr user_to_lpar_addr;
fd = open("/dev/ps3ram", O_RDWR);
if (fd < 0)
{
fprintf(stderr, "error: open failed with %d\n", fd);
exit(1);
}
posix_memalign(&buf, 4 * 4096, 4096);
mlock(buf, 4096);
printf("%llx\n", buf);
user_to_lpar_addr.user_addr = (unsigned long) buf;
res = ioctl(fd, PS3RAM_IOCTL_USER_TO_LPAR_ADDR, &user_to_lpar_addr);
if (res < 0)
{
fprintf(stderr, "error: ioctl failed with %d\n", res);
exit(1);
}
printf("0x%llx\n", user_to_lpar_addr.lpar_addr);
close(fd);
usleep(5000000);
exit(0);
}
Have fun and report any bugs to me please. HV hacking is cool
Just enabled ENCDEC and ATA debug messages in HV from Linux and now i can see those messages
http://pastie.org/1585891 HV rocks!!!
Here is my new PS3 updater on Linux in action
http://pastie.org/1589059
http://pastie.org/1589063
http://pastie.org/1589091
In case, you are wondering what those repo node value numbers mean, then read my HV page about UM inspect package service.
And here is an example if a package is damaged. I intentionally modified a package and let UM inspect it, It returns error
http://pastie.org/1589113
If SONY is reading it, they will know what those numbers mean
As i said previously, i allocated a huge page with mmap(MAP_HUGETLB) and stored there the package, then i converted the user space address of the buffer to LPAR address and sent a UM inspect package request to Update Manager through my /dev/ps3dmproxy.
To make Linux preallocate some huge pages during boot, i passed boot parameter “hugepages=1″, it means Linux kernel should preallocate 1 huge page of size 16 MB. And an application can grab this page with mmap syscall.
http://pastie.org/1589080
I will upload it soon
Extracting packages with Update Manager works now also
http://pastie.org/1589680
More PlayStation 3 News...