Open DarjanKrijan opened 2 years ago
Short: As of right now, there is no support for PS3 directly in Arch POWER as there isn't anyone with hardware available to work on supporting these.
Long:
If you have a working (and recent enough) Petitbook available on your PS3 and use the powerpc
ISO, it could potentially work with a PPC64 kernel configured for PS3 and the 32bit userland provided in Arch POWER for powerpc. That is under the assumption that Petitbook can read grub.cfg and load kernels that way (like on OpenPOWER platforms like the Talos or Blackbird) or you somehow manage to start the kernel manually.
Limitations in RAM will quickly start giving you a hard time too. The consumer models only have 256MB RAM of which after boot you'll have around 180 available I guess.
I'd be interested to work on this should someone donate a PS3, my wife would kill me though if I'd purchae one. :D
I have yet to install any OtherOS on a PS3, planning to do so though for getting some further insight into the hardware.
I have a FAT CECHP01 CECHL01 console that I can downgrade to 3.15 OFW (for native OtherOS support with HDD partitioning option, OtherOS++ is apparently riddled with further issues) and donate it to you.
Bought it by accident recently as I focus mainly on the first editions CECHA/B (C/E).
Arch on that thing with the latest packages would be very awesome.
Can I contact you through your archlinux.org E-Mail? And do I just need to add an "@" there in-between name and domain?
Right, I have it almost readied up, booted one of the Xubuntu images on it off of a DVD, slow af, eventually ended up hanging for 10 minutes. Will check that the disc drive is fine, hoping that a newer petitboot can boot off USB, only used an old one from 2008.
Will contact you today!
Petitboot in theory can boot from USB just fine for as long as the Linux kernel shipped with it has drivers for it and the appropriate filesystems supported. This is something that really needs to be tested on actual hardware. rpcs3 just isn't there yet unfortunately. :D
I still think that the newer community maintained OtherOS++ is a better target. Downgrading a PS3 is much harder and also leads only to an old unmaintained version of OtherOS which introduces it's own problems.
From what it looks like acellerated graphics aren't worked on for the old OtherOS anymore and thus became incompatible at some point.
Rene has some adventures with it on his Youtube channel: https://www.youtube.com/watch?v=UkFCOUMHEpU&list=PLLjYwv0RogAQ6aliSQsDVZD77R8XbLnca
OK, I'll leave it on 3.15 for your choice, just need to update to 3.55 OFW -> CFW (I use REBUG_4.84.2 CEX)
Just from what I gathered from (dated) BSD forum posts, OtherOS++ was frowned upon for some reason.
Some BSD guys got RSX acceleration somewhat working from what I read.
But anyway, I think it's good to check what Rene did to get this running so far.
I'm mostly interested in getting the PCI bus running on that thing:
https://www.psdevwiki.com/ps3/PCI
Is that something you could check out as well? lspci
on that Xubuntu had an empty output, I would need to open it up and hook up UART to enable the PCI flag in the Syscon for this I guess.
Apparently it (the PS3 OS) has support for an Intel gigabit network card. The internal PS3 network card claims to be gigabit but the best I get is like 32 MB/s.
That's interesting, I wasn't aware the PS3 even had (a variant of) PCI. I'm not a kernel hacker by any means but if someone did it before and Rene might have checked this for T2 out before, I can certainly enable the right options/patches.
I do although believe that would mean bypassing the Hypervisor completely or cracking the right bits open which I doubt would be possible for things like the NIC since the host OS probably still holds on to it and SIOV probably being a stretch in this scenario.
We're getting there:
I have a pre-alpha of the petitbook buildroot [1] working on real hardware but it is still unable to boot a kernel + initramfs. It attempts to and then crashes the system with blank screen, beeps and the red power LED flashing.
My current assumption is that petitbook 1.13 + kex and or my Arch kernel+initramfs may be buggy on PS3. The original version of the buildroot I forked from had petitboot version 1.12 and a custom built binary with no source of kexec. I had to tweak loads to get it to build on anything >=2017 version of gcc, so the latter had to go and many changes occured.
This needs more work but getting there.
Released the two images I am testing kernel configurations with (unsuccessfully so far):
https://archlinuxpower.org/iso/petitboot/ps3/20220616/
Use otheros.bld
for oldskool native OtherOS and dtbImage.ps3.bin
works in Rebug 4.86 with the latest Rebug Toolbox via Install Petitboot
.
Awesome work so far.
Am currently on vacation, but planning to test this later this week.
Will be looking into adding final PPU + SPU toolchain PKGBUILDs based on gcc 9.5.0 (as SPU support was purged with 10.x).
Was experimenting a bit on my Slim PS3 w/ Rebug 4.84.2.
Trying the stock archpower-2022.12.10-powerpc.iso
image from CD (USB segfaults pg-discover
daemon for me) when I try to boot ppc64
I get:
Performing kexec load
Performing kexec reboot
kexec_load failed: Function not implemented
A chance this gives some hints?
Normal ppc
boot option I get nowhere either:
Performing kexec load
Performing kexec reboot
[eth0] PXE autoconfiguration failed <-- this shows up every couple minutes
And then nothing, can try another boot option over, no freezes, as if it just stopped somewhere. Maybe this PXE autoconfiguration messes with things.
Also went ahead and tried old Ubuntu ps3 images ubuntu-9.04-alternate-powerpc+ps3.iso and ubuntu-9.04-server-powerpc+ps3.iso which I had success booting with an older petitboot, but no success with this petitboot build.
Same behavior as ppc
boot option.
Was experimenting a bit on my Slim PS3 w/ Rebug 4.84.2.
Trying the stock
archpower-2022.12.10-powerpc.iso
image from CD (USB segfaultspg-discover
daemon for me) when I try to bootppc64
I get:Performing kexec load Performing kexec reboot kexec_load failed: Function not implemented
A chance this gives some hints?
Normal
ppc
boot option I get nowhere either:Performing kexec load Performing kexec reboot [eth0] PXE autoconfiguration failed <-- this shows up every couple minutes
And then nothing, can try another boot option over, no freezes, as if it just stopped somewhere. Maybe this PXE autoconfiguration messes with things.
Also went ahead and tried old Ubuntu ps3 images ubuntu-9.04-alternate-powerpc+ps3.iso and ubuntu-9.04-server-powerpc+ps3.iso which I had success booting with an older petitboot, but no success with this petitboot build. Same behavior as
ppc
boot option.
I'll experiment on my PS3 Slim 4.90.1 CFW with this this weekend. I only just dug out my PS3 from my closet after years of storage and figured it could still be of some use before it's gone. I'm also new to OS/kernel development so I'm learning some of the processes bit by bit.
I'm currently using Red Ribbon Linux, which is based on Debian Jessie but uses a custom kernel build with PS3 specific patches. The problem with such old distros is constantly running into version compatibility issues such as outdated GCC, GnuPG, SSL, etc that make compiling and even downloading things difficult. At least Jessie still has archive mirrors for PPC64 still up. I wouldn't count on any mirrors for Ubuntu 9.04 PowerPC to still be up.
I've loosely followed some of the steps in this repo which has me still troubleshooting some packages for Debian Sid before getting to updated kernel compilation. Also trying with debootstrap so I don't nuke my host OS though it gets stuck at configuring usrmerge.
I have also briefly tried T2 SDE Linux with success booting the installer and setting up an install. The kernel is modern though I encountered a driver issue during installation where I could not install to the OtherOS partition (/dev/ps3dd on most installs, /dev/ps3da4 in this case) on my hard drive, and instead opted to install to a second USB disk. This made for a very sluggish system which I also needed time to learn T2's package management system and build system. Running swap from the USB stick didn't help things either.
I recall hearing about a way to turn the vram into an additional swap space since nobody really has RSX 3D hardware acceleration working yet, but I haven't found instructions on how to do this.
If anyone wants me to try some new kboot settings with ArchPower or a different vmlinux then hit me up.
I've started to get bootstrapped already and the powerpc
as well as the powerpc64
variants just need a working kernel plus ps3-utils
(and maybe some X.org/Wayland) enablement. Then the donated PS3 (thanks again @DarjanKrijan) became unstable likely due to heat issues, which I haven't been able to find time to solve just yet due to $DAYTIMEJOB & $MEMBERSOFFAMILY. :(
The work done on Petitboot here: https://github.com/kth5/petitboot--buildroot
The latest binaries (OtherOS and dtbImage) can be found here: https://archlinuxpower.org/iso/petitboot/ps3/20220616/
The problem with this is that kexec
simply won't load any kernel I could throw at it so I wasn't able to proceed much further.
https://www.psdevwiki.com/ps3/Distributions#Arch The PSDevWiki has an entry that mentions an Arch variant... Maybe its possible to figure out how they got the bootloader working? Here's the archive.org link that the wiki links to: https://web.archive.org/web/20110101160947/http://www.archlinuxppc.org/download/ Edit: All of the iso links for this Arch distro appear to be dead...
Currently in the process of reviving the topic since I'm working on porting petitboot
to all 4 Arch POWER ISAs as a bootloader alternative to Grub or Linuxboot (riscv64).
As it stands right now, all kernels enable kexec
and I have working stuff for powerpc64{,le}
and riscv64
. Chainloading it on OF is a bit ticky though and it has to be hashed out.
powerpc6432
is now supported as well (see split ISO announcement on the 2024.05.05-release
) and we'll get somewhere, hopefully this year. :D
Quick question: was this ever tested if it runs on a PS3?
Kinda don't know what it takes to boot on it. Older linux distros tagged their ISOs working with it with
+ps3
, see e.g. http://old-releases.ubuntu.com/releases/xubuntu/ports/releases/10.04/release/