kth5 / archpower

Unofficial Archlinux port to powerpc64le, powerpc64, powerpc and riscv64
https://archlinuxpower.org
71 stars 5 forks source link

Any chance this runs on a Playstation 3? #38

Open DarjanKrijan opened 2 years ago

DarjanKrijan commented 2 years ago

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/

kth5 commented 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

DarjanKrijan commented 2 years ago

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?

DarjanKrijan commented 2 years ago

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!

kth5 commented 2 years ago

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

kth5 commented 2 years ago

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

DarjanKrijan commented 2 years ago

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.

kth5 commented 2 years ago

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.

kth5 commented 2 years ago

We're getting there: archpower-petitboot-ps3

kth5 commented 2 years ago

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.

[1] https://github.com/kth5/petitboot--buildroot

kth5 commented 2 years ago

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.

DarjanKrijan commented 2 years ago

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).

DarjanKrijan commented 1 year ago

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.

IvantheDugtrio commented 7 months ago

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.

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.

kth5 commented 7 months ago

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.

CCF100 commented 5 months ago

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...

kth5 commented 2 months ago

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