Tutorial: installing Steam on PS4 Linux
A few days ago /Talk member OsirisX made the news (even up to mainstream sites) by announcing he was able to run Steam on the PS4. Yesterday he posted a tutorial on how to achieve this. We reproduce it below. You can find his original post here.
This guide is WIP and more pics will follow.
You may have seen my video running Steam on the PS4 and this tutorial will explain the procedure. Originally I intended to use Ubuntu for this guide since there’s already a tutorial for that but I was having problems enabling graphics acceleration. Instead I chose Fedora which seems to work fine.
(On your PC) Boot up Fedora using VirtualBox (with your usb disk attached) and wait until it reaches the welcome screen.
Before we actually install Fedora, we need to partition the usb disk. Open up a terminal and type the following the commands.
su fdisk -l
Find your usb disk location (Ex: /dev/sda) and use parted to partition it.
parted /dev/sda mklabel msdos mkpart primary fat32 1MiB 513MiB mkpart primary ext4 513MiB 100% quit mkfs.fat -F32 /dev/sda1 mkfs.ext4 /dev/sda2
Keeping the terminal open, go back to the welcome screen and click “Install to Hard Drive”. Click on “Installation Destination” once the summary page comes up.
Select your disk and click on “I will configure partitioning” under storage options. Then click “Done”.
Once the next screen comes up, select /dev/sda2 partition on the left. Use the mount point root “/” and select “Reformat” next to File System. Then click on “Update Settings”
Click on “Done” and then “Accept Changes” when the change summary page comes up.
Finally, click on “Begin Installation” when we’re back at the summary page. At this point, you should configure your root password and user.
Before shutting down Fedora, we need to install the ps4 Radeon drivers.
Go back to the open terminal and mount the partition that you just installed Fedora to.
mount /dev/sda2 /mnt
Enable ssh server.
systemctl restart sshd
Find the ip address of your VM.
Use WinSCP or Filezilla from your host to transfer over ps4-radeon-rpm.zip to /mnt/tmp. (Note: If you get connection errors, you may need to set your network adapter to bridged in VirtualBox network settings)
Go back to the VM’s terminal and chroot into installed Fedora.
cd /mnt mount -t proc proc proc/ mount -t sysfs sys sys/ mount -o bind /dev dev/ chroot /mnt
Now we can install the patched Radeon drivers.
cd /tmp unzip ps4-radeon-rpms.zip cd ps4-radeon-rpms dnf install --nogpgcheck *.rpm
If you get an error with drm-utils, do
rm -rf drm-utils-2.4.65-1.fc23.i686.rpm dnf install --nogpgcheck *.rpm
Gnome desktop can be too heavy for the ps4 to handle. I recommend installing something lighter such as “awesome”. Others may work as well but haven’t tested.
dnf install awesome
Edit /home//.xinitrc and add
Disable gdm at startup:
ln -sf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
We should also disable vsync to reduce graphical errors.
Edit /home//.drirc and add
Enable ssh server at startup if you like.
systemctl enable sshd
Finally install Steam.
dnf install http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm dnf install --nogpgcheck steam
Exit out of chroot, unmount your drive and power down VirtualBox.
exit cd / umount -R /mnt poweroff
Copy over bZimage & initramfs.cpio.gz to the fat32 partition of your drive if you haven’t done so already.
Startup your PS4 with your usb drive in and boot up Linux with PS4 Playground. Once you get to the init screen, type:
Find your Fedora partition and mount it.
mount /dev/sda2 /newroot
Start up Fedora
exec switch_root /newroot /newroot/sbin/init
You should then get a login screen. Login and type
This will boot up your DM.
Open up a terminal and type:
glxinfo | grep vendor
You should have a line saying “AMD LIVERPOOL”. This means graphics acceleration is working.
Finally open up a terminal and start Steam. Because Steam comes shipped with it’s own shared objects, we need to add LD_PRELOAD path before calling steam otherwise it will load older libs.
LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' steam &
To launch apps from remote computer through ssh, we can just add DISPLAY=:0
DISPLAY=:0 LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' steam -bigpicture &
To restart UI based login, you can do:
systemctl restart gdm
And make it permanent by
systemctl enable gdm
dnf install kodi kodi-standalone
What’s not working?
Sound over hdmi, wifi, bluetooth, ethernet(only gigabyte works)
Usb sound card, usb wifi, usb bluetooth, etc.
Whenever updating packages with dnf, remember to exclude Radeon lib updates as they are unpatched for the PS4.
dnf upgrade --exclude=libdrm*,mesa*,xorg-x11-drv-ati
Please report success/failure or questions in the comments below, or in OsirisX’s original thread here. And we appreciate if you take the time to thank him for the tuto!
More details on PS4 Hacks on our PS4 Jailbreak page