winesapOS icon indicating copy to clipboard operation
winesapOS copied to clipboard

Provide a PS4 release image

Open LukeShortCloud opened this issue 2 years ago • 7 comments

We want to make PS4 support official. I want to upstream the changes into winesapOS and have us test each release.

The image will be named something like: winesapos-ps4-<VERSION>.img

All PS4s will be supported: Original, Slim, and Pro.

LukeShortCloud avatar Jun 19 '22 15:06 LukeShortCloud

Here is the file system layout that PS4Linux recommends:

  • Partition table type: msdos
  • Partition 1: FAT32, 50 MiB
  • Partition 2: ext4, all remaining space, the label should match the name of the initramfs that is being used

https://ps4linux.com/run-ps4-linux-without-installing/

LukeShortCloud avatar Jun 20 '22 20:06 LukeShortCloud

We need to use a special Linux kernel and initramfs. Ideally, I would like to find out what makes those kernels so special.

Confirmed working:

  • Linux 5.3.18 for Aeolia made by ps4boot and microho.
  • initramfs.cpio.gz from psxita.

There are three different Linux kernels based on what motherboard the PlayStation uses. We should provide all three and default to one (the most popular PS4? the newest PS4?).

LukeShortCloud avatar Jun 20 '22 21:06 LukeShortCloud

A custom Mesa package is also required. I would like to try to get changes merged upstream so a custom Mesa won't be required.

LukeShortCloud avatar Jun 20 '22 21:06 LukeShortCloud

Upstreaming Mesa patches would be great. BTW, we also need patches in the libdrm and x11 packages for it to work on PS4.

As for the kernel, I haven't yet had the time to look into merging them for all the models (Aeolia, Baikal and Belize) and since you asked, I have been curious too, as to why a single kernel can't be made.

Another interesting thing is that often when the whoisthatsouhtbridge (https://ps4linux.com/ps4-linux-documentation-aio/#How_to_use_whosthatsouthbridge_to_find_if_my_PS4_is_Aeolia_Belize_or_Baikal) reports a certain model, the kernel for it doesn't work. It's confusing.

noob404yt avatar Jun 24 '22 04:06 noob404yt

I would love to get everything upstreamed! That way, any Linux distro would technically work in the future.

Do we know what those custom patches are for all of these packages? For Linux, Mesa, libdrm, x11, and anything else. Are they hosted in a git repository somewhere? That would be step one is to understand what's needed today. Step two is to find the right upstream developers to help and see how we can merge those patches in.

Interesting, so even the WhoIsThatSouthBridge payload is not even accurate. It at least worked for me. I suppose we will need a more accurate way of finding the hardware information. From my understanding PlayStation uses a BSD operating system so hopefully there's some sort of /proc/ and/or /sys/ information that may be useful.

LukeShortCloud avatar Jun 25 '22 15:06 LukeShortCloud

You can find the patches for the relevant packages at https://github.com/Ps3itaTeam/ps4linux-video-drivers

The Mesa patch might require very minor changes, especially the latest versions.

noob404yt avatar Jun 26 '22 11:06 noob404yt

Thanks for providing that link! Those patches are all very small in scope which is great news in terms of us being able to potentially upstream them! One of the AMD patches looks like a hack, though, and may need a bit more work.

For the short-term of winesapOS, we have an open issue regarding providing a chroot build instead of a full release image. [1] This should help with providing a customized PS4 build.

  1. https://github.com/LukeShortCloud/winesapOS/issues/121

LukeShortCloud avatar Jun 26 '22 20:06 LukeShortCloud