At the end of 2020, I decided to look around at the tech I have as I downsized. Before selling or giving away what I no longer used, such as my PS4, I thought it would be a fun little project to document getting Linux to run on it!
Here, I will capture my journey as I leap down that rabbithole.
December 18th, 2020.
After recently moving back in with the parents, I survey the inventory of tech that I left here when I initially moved out. Remnants of a time before my coastal adventure, a time before Covid-19 ruined the livelihoods of so many good people.
I spot my PS4 I was gifted around the time it released. I recall some youtubers talking about there being a tethered-jailbreak for an older version of the firmware. Waiting on a hand-me-down TV to use as a display for this machine, I get to work finding sites like this for running the jailbreaks. I think this system would make a decent spare gaming desktop if I ever had anyone over, after we test negative, for LAN gaming. For that, we would need some Linux love.
Firstly, I would like to thank Marcan for all of the work he and others have done in reverse engineering the internals of the PS4 to enable full hardware acceleration and more for Linux to run well on it. Without your efforts, guides and easy exploit methods would not be possible.
December 26th, 2020
Having endured another family Christmas, although this time remote, I went back to my tech cave and got everything together. The hand-me-down TV from a nearby church that was upgrading their equipment is here, and I grabbed a mount/stand off eBay. A prior coworker from Salesforce also sent me a fairly decent Razer keyboard to use for this as well……..I wonder if it’s possible to RGB the PS4?
Anyway, outside of repasting, the best thing I can do for the PS4 now to speed it up pre-jailbreak is to reset it. Let’s make sure it’s on a jailbreak-able firmware version…
Jan 4 2021
Having found and dusted off the original PS4 I had in storage at the parents’ house, I found that it was indeed on firmware 7.00. The most recent exploit (at the time of writing) was for firmware 7.02, so I’m glad I didn’t update when I visited family in early 2020. Note that my model of PS4 is one of the original ones manufactured in 2013, the CUH100C1 series. Newer PS4s and PS4 Pros that are on 7.02 or older firmware may actually perform better in Linux gaming with these exploits.
Excuse the messy basement that I’ve temporarily moved into, but back to business. The first thing I did was head to the “Hacker Life” link here on my PS4 and loaded the available exploits for 7.02 firmware, even though mine was 7.00. The first exploit I decided to load was the one to disable automatic updates and background installs of said updates. It took three or four tries, but then worked!
I rebooted the PS4 and then loaded the main page of the website again, so that I could load “Mira”. Mira is apparently the main jailbreaking exploit that users of the PS4 Homebrew reddit use, so I’ll go with it as well! Having not played games on this in over a year, nothing bad could come of any issues. Just like Modded Warfare on Youtube or LBRY, it took me quite a few reloads and web browser cache clears to get this exploit loaded, but it eventually worked! I was presented with the below screen when I looked at the bottom of my settings after the exploit rebooted the console…
Now, after running Mira and the Update-Block exploits from the “Hacker Life” github site, I was ready to run Linux from an external device.
After grabbing a 256gb flash drive to lob this gentoo image from Marcan on via the Etcher program, I went back to the aforementioned github site and chose the “3GB VRAM Linux” launcher. Again, this was another game of waiting, rebooting and trying again to free up enough system memory…
Took about three or four tries before it would finally go….
After succesfully running the Linux exploit with the larger VRAM option (3GB Linux option), so that Steam games and emulators will run better, you should see the above result! Then, the screen will go black for a short while before coming back on and showing the loading screen for Gentoo Linux……..sadly I wasn’t fast enough to capture that screen. Apologies for no screenshot there, but you can reference this older video to see it boot. Alas, I have no capture card.
Now that I had Gentoo booted, this is the base wallpaper and desktop. KDE is the “Desktop Environment” that uses very little of the PS4’s 8gb of RAM. If you want to learn more about desktop environments, here is a good video to check out. Here is another good video that is a solid introduction to Linux, if further interested.
After logging in (ps4 is the password), I got busy seeing if any Steam games I had would run…
Hades, using Steam’s Proton 5.13, would seem to freeze after halfway loading to the menu, with sound still playing. Risk of Rain 2 seemed to just give a black screen with sound. I’m not too smart when it comes to knowing what would cause these things, so I installed custom Proton versions from GloriousEggroll. If you want an easy way to do this on Gentoo, there’s my friend’s Python script for easily updating custom builds of Proton. If booting Arch on the PS4, there’s this AUR package you can install. On Fedora, there’s the easy-to-grab ProtonUpdater.
Jan 5 2021
Testing Starcraft II and Lutris game performance today. I’ve never used Gentoo before, so I’m learning emerge now.
So far it looks like Hades ran fine
Now I’m fairly interested in seeing if I can get Blizzard games running via the BattleNet launcher though….
Time to install Lutris and grab the game dependencies for Gentoo!
Now I wait to see if the dependencies install correctly via Portage, Gentoo’s package manager, I’ve never used a Linux distro like this one before, so there’s always room for error!
The Gentoo command you need for installing the dependencies for Starcraft II is sudo emerge —ask gnutls libgpg-error sqlite app-crypt/p11-kit sys-libs/readline libusb
It worked! After visiting this github page to see what dependencies I needed to install via emerge and making sure they were installed, I then just ran the Lutris installer for Starcraft II (WINED3D). Starcraft II ran fine at around 30fps or so in Arcade custom games, though I wouldn’t recommend this for competitive matches!
Jan 14 2021
After finding that Hades, Java Minecraft and Starcraft II ran fine, I tried the fairly stable linux-native Last Epoch. That ARPG, and of course the far-more-glitchy Path of Exile, both opened and then closed almost immediately after eachother. I wonder if my old favorite Command and Conquer games or Team Fortress 2 would run well?
Jan 25 2021
Some time has passed since that last test. Last Epoch only ended up launching the loading image before failing. Flashed a fresh gentoo image to the USB I’m booting from and will check that soon. Then I’ll write up more on trying the Catjaro image featured in IT Mania’s recent video before testing the Fedora release they worked on.
Feb 1 2021
Now we try to see if we can get Last Epoch running again on Gentoo before trying another distro. Will have to research heavily how to get other distros to boot via USB.
First we update the Gentoo distro as best we can one last time.
Nope. Looks like it ended up opening and closing again.
Now let’s try Slime Rancher! This game has been out for a while and is a blast!
Looks like the native Linux client for Slime Rancher recommends low settings. Fine, I’ll go with them then! Now, let’s see if we can get the game successfully loaded…
Hmm looks like it takes a solid while to load. Note that this is all still running from that teeny little 256gb flash drive. It wouldn’t make much difference to load the games and OS from the internal hard drive, since that too is apparently using a USB bus.
Looks like Slime Rancher runs!