121w ago - Over the weekend
Graf Chokolo has continued on his
project updating his PS3 Linux kernel with new drivers while
Kmeaw has made available AsbestOS Linux Kernel Installer v2.0, although he states it is still a work-in-progress.
Download:
PS3 Linux v2.6 (New Drivers) /
AsbestOS Linux Kernel Installer v2.0 /
AsbestOS v2.0 (Compiled) /
GIT
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
Khore.org: 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
Graf_Chokolo: 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

So be careful.
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

And then i will upload it.
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

One page is 16 MB large, more than enough for updating packages. The updater can allocate a huge page, store there the package, lock this page in memory so that swapper doesn’t move it to swap space, convert the address of the page to LPAR address and send it to Update Manager
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 <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <asm/ps3ram.h>
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!!!

Maybe i should enable RSX debug messages and see what they do.
Here is my new PS3 updater on Linux in action

We don’t need PUP files or GameOS anymore to do updates

It can be done now on Linux easily

HV rocks

It can inspect packages now

Didn’t try updating yet, too dangerous, have to check everything 1000 times at least because i don’t have a NOR flasher
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

Stay tuned. PS3+Linux+HV rock !!! And i know where to patch Update Manager in HV process 6 so it will allow us to do downgrades without Product Mode

I also improved my DM drivers, will upload them soon too.
Extracting packages with Update Manager works now also
http://pastie.org/1589680
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...
If we will have CHV with Virtual Machine (VM), we will have Separate boot (CHV-terminal(root)(LV1), Linux(LV2), XMB(LV2), custom XMB(LV2)).
If convert (or clone root LV2 fs directly) lv2.self to native VM format (XEN\Qemu\VBox), we got ability to start CHV and emulate 2 XMB (Offecial\Custom).
In Offecial - transparent eth0 interfaces walkthrough CHV to PSN servers. In Custom - block ports to PSN servers and open only for Homebrew apps (Like CustomPSNs and etc.)
Sorry for my pure English.