PC Gaming on a PS4 via Linux

Hello there. Time for a little adventure. If you want the short and sweet of it, continue following along, but I have a more scatterbrained story over here. Again, none of this would be possible without the reverse-engineering efforts of Marcan and the Devs helping out at SCE Party.

Having had a long history of working with more-savvy-than-I people in the community to get various forms of Linux running on things in the past, I’ve wanted to repurpose my PS4 that is no longer seeing any action.

My original Wii, that “OG” Nintendo DS, my original PSP and my prior Xbox 360 were all given the same homebrew treatment in the past, so why not the PS4 I no longer use? The upside to the PS4 is that it has the guts of a PC compared to the custom stuff of the past. Now, the adventure begins….

Note, for this guide I am using the original 2013 CUH100C1 PS4 model on firmware 7.00, and I will be connected to the internet via a wired Ethernet cable. Your model may differ, but the guide remains the same. For PS4 Pro owners and more recent models, follow the videos of this youtuber to stay up to date on jailbreaks.

The first thing I did, upon finding my old ps4, was get into settings and check out the firmware version. You can view this by going to Settings -> System -> System Information. At the time of my writing this, on Jan 4 2020, only systems running 7.02 or earlier firmware are jailbreak-able. Luckily, having not touched this machine in over a year, it is still on 7.00.

Next, we’ll want to head to our PC of choice, with a flash drive or external hard drive of 128gb minimum at the ready. I only recommend 128gb minimum if you wish to install PC games from Steam on there going forward- 64gb drives work just as well. My daily driver is my Thinkpad P51 running Fedora Linux, but your operating system doesn’t really matter for this part. Go grab the PS4 Gentoo image (this is the January 2020 update) compiled by Marcan and then download Etcher. Etcher has had the highest success rate amongst those I’ve talked to over Telegram and in Youtube comments thus far, so it’s a safe and easy choice. Next, take that Gentoo Image and extract it with 7Zip or gunzip until you have just the file ending in .img. Now, open Etcher, select your flash drive and then your .img file and flash away!

Once Etcher has completed flashing the image to the drive, close it, eject the drive in your OS of choice, and insert it into a free usb port on your PS4. It may be late in this article, but I also recommend having a USB 2.0 or 3.0 hub such as this cheapo one, so that you can have a mouse and keyboard plugged into one port with your drive plugged into the other. My PS4 only had two ports on the front.

Before we jump into the fun Linux-booting times, it is recommended to change some video settings for your PS4 so that the screen won’t turn black. Head over to Settings, and go to Sound and Screen, then Video Output Settings. Then set Resolution to 1080p instead of Automatic or prior settings. Next, turn off HDR from the same menu. Then, back out to the Settings screen again and head to System and disable HDCP! You should be good to go from there.

Now, with the drive inserted, open your built-in Web Browser on the PS4. Close any pages currently loaded and open a new one. Navigate to the Hakku Raifu Exploit Host at this address. Going forward, I’ll be referring to this as HL to keep things simple. Once you’ve reached the page, you should find a menu such as the below image…

Once you are at this menu, select the available exploits for your firmware version. Since my firmware version is closest to 7.02, I’ll select that option. Note that if you don’t want to keep getting nagged by the PS4 trying to update, run the Disable-Updates exploit until it successfully finishes- there will be a pop-up letting you know- in order to make sure you aren’t patched automatically.

For the Linux options in the 7.02 Exploit HL menu, I’ll select the Linux-3GBVRAM option, since I’ve had issues using the 1GBVRAM loader in the past. Note that newer consoles might not have issues using the 1GBVRAM exploit, however my console is apparently only able to load the Linux-3GBVRAM option. The good news here is that the GPU part of your PS4’s processor will gain more memory, allowing for smoother gameplay in Steam games and retro ROMs you load.

ps4linuxexploit.jpg

Note that you may need to leave the webpage open and let it re-run a few times, as it is common to get “not enough system memory” errors when running it. My suggestion here is to hit the Options button, go to Settings and “Clear Website Data” as well as “Delete Cookies” every time you get an out of memory error. Deleting browsing history from the main Options menu can help as well. Eventually, you’ll see the above page and that slide-in notification will let you know the exploit has taken off.

Now, if you have retained that patience, we wait! Eventually the screen will go black and your monitor or TV may complain of the lack of an input. This is totally normal! Just wait for a minute or two. Eventually you’ll be greeted by a screen with penguins at the top and various information scrolling vertically. After that, you should load into a screen that looks like the following…

Hello, Gentoo!

Once you’ve got to this step, congratulations! You’ve succesfully booted to the Linux image on the drive you’ve plugged in! Steam, Retroarch and various other programs have already been installed to this by Marcan, so we just need to do some minor logins and adding roms and we’re good to go!

If you want to know about the rom side of things, Modded Warfare covers that in detail, but I’m just interested in some PC gaming on the PS4 for now, so that’s what I’ll go over next.

Move your mouse down to the hidden dock at the bottom of the screen and click the Playstation icon on the far left.

Type in Gparted in this menu and click the only result. If it asks for a pasword, the default password for this should be “ps4". Click the drop down menu in the top right of this program and select your flash drive or hard drive you are booting from- in my case I’m booting from a 256gb flash drive, so I will choose that, as seen below.

After choosing the ext4 partition, you will want to extend it to fill the rest of the drive, so you have space to install games or download roms etc.

Make sure to drag the arrow to the end of the right side in the menu that follows.

After that, let’s open up Steam!

Click the playstation icon in the bottom dock again and search “steam”. Steam should come up, though it may need to update after getting clicked. Let it update, and then sign into your Steam account , if you have one! I’ve been playing PC games via this service for a few years, so there’s a good library I’ll get to testing soon.

As shown in the screenshot above, I recommend enabling the Proton compatibility layer before you start installing PC games. To do this, click Steam in the top left of the window, then Settings -> Steam Play -> Enable Steam Play For All Other Titles. You will likely have to restart Steam after clicking OK. That’s fine.

At the time of writing this, Proton Experimental should be available, so feel free to test out that option for more recent PC games, but I’m using proton 5.13 for my testing of Hades and Risk of Rain 2….although it seems Risk of Rain 2 may have some issues with the graphical hardware here as it doesn’t open…

But hey! I got Hades to run fine! Had to black out a friend messaging me in the below screenshot. Go ahead and play your Steam games to your heart’s content! ProtonDB can be a valuable resource for getting other Steam games to run…though I highly recommend playing games that are a Platinum rating, as the other rating tiers can require a bit more “hands-on” work to get things running.

Enjoy!

Hades is copyrighted by SuperGiant games, and I’m just using this to prove it will load.

Short Update: M1 Linux excitement, PS4 Future Project

Hello there again!

I’m waiting on some parts to come in for my Linux Gaming project on the PS4. Thankfully, many out there have already made some videos on how to run tethered exploits for the PS4, so it looks like getting Gentoo or Arch running won’t be that difficult. Looking forward to having a spare “gaming pc” sitting around for when people can visit again.

In other exciting news, Marcan, known for his Playstation reverse-engineering in the past, is going to wholly devote himself to working on getting Linux distros running on the new M1 Macs. The target of his project is initially the M1 Mac Mini, and then to support further laptops etc from there. From his Community Stream, he mentioned he intends on having this be a full-time effort he can devote himself to. My knowledge barely scratches the surface of the reverse-engineering and exploits he’s worked on in the past, but it appears the M1 Macs can run alternate kernels other than macOS, so it’ll be interesting to see what work he does there.

I’ve been working on some Raspberry Pi-powered retro consoles and little mini Nextcloud servers for friends, amongst fun handheld terminals, for xmas. We’ll see how everyone likes their little custom projects as presents. I love building little things :)

I’ll update this blog more, and likely have a timestamped dedicated project page, when I have more to report regarding a PS4 running Steam in Linux and am excited for what the future holds! I may be going more mobile in the future, with all the layoffs and economic disasters that have been happening in my country this year, so we’ll have to see.

Have a happy 2021!

Automated GPD Win Max Firmware

Hello there! I finally sort-of-automated the firmware fix for the GPD WIn Max screen!

All you have to do after an install of Fedora Linux, is run my script here and then reboot! One annoying thing is that I found that sudo couldn’t access /lib/firmware so I found that root was needed for the script.

That’s all for now. Maybe I’ll automate some more things in the future!

Fedora Install Script, GeForce Now on Win Max, etc

Just a sweet and short update.

I forked a post-install fedora setup script from a redditor on the fedora reddit.

You can find my script here. I try to keep the good stuff merged in my fork, but this is mainly for setting up a gaming/daily driver laptop with Fedora 32 or newer…though I’m sure it would work on older releases as well. It’s pretty straightforward.

Also found out GeForce Now runs well on the GPD Win Max, due to Wifi 6, so long as your router supports it! Our router is a bit aged so there seem to be intermittent lags, but sadly that’s out of my control so long as I share a residence.

Still working on the GamerOS PC, as the Dell 3020 is having some configuration issues with outputting on the GT 1030 that replaced the RX 550 LP I had laying around. Also, still waiting on the Argon40 M.2 case to properly cool an overclock on my pi 4 8gb model so I can start testing the newest improvements to box86 via TwisterOS!

Also it looks like my buddy Jason will be taking a look at the new all-in-one Raspberry Pi 400 keyboard-based pi computer in the future! Looking forward to that.

PinePhone, Win Max and Projects-In-Wait

Hello again! Just a few little updates as October seems to be progressing along. I have a game streaming post in the pipeline, but need to wait so I can test it on more devices before publishing. Regarding my prior post, I’m waiting on the Pi 4 M.2 case to be shipped as well as am currently troubleshooting an issue where Dell Optiplex 3020s won’t take certain AMD cards, like my RX550 Low Profile, so I may have to opt for a GT 1030 or similar.
I’m also looking into completing a Coursera course from Google so I can boost my resume in job hunts.


ppmanjaro.jpg

In other news, I’ve been testing postmarketOS and Manjaro images on the PinePhone that I have had for a bit. Seeing if I can find a daily driver happy medium. So far, it appears Ubuntu Touch is the most stable software for this device, as postmarketOS and Manjaro are both still in very rapid and active development. More updates on that when I find a decent daily driver.

winmaxrocketleague.jpg

I have also gotten Rocket League to run perfectly on my Fedora-running GPD Win Max through extracting this version of Proton (5.9-GE) from GloriousEggroll to my home/(user)/.steam/root/compatibilitytools.d/ folder. Well, I extracted it within my Downloads folder, and then moved the Proton-GE folder over to that compatibility tools folder. Maybe if some people are interested, I’ll write up another post on custom version of proton etc in the future.

Note that Rocket League does NOT support Linux anymore due to the Epic Games buyout of their developer (ugh) and that Valve’s newest-at-the-date-of-this-post version of Proton (5.13) does not work with Rocket League.
That’s it for the update so far!



Lastly, here are some things to note that I have stumbled across recently: