PS4 Baikal & Belize Kernels opensourced: MT7668 WiFi & DNS Fix, VPN with Wireguard support, and more

Baikal & Belize kernels for PS4 (7215/7216) with MT7668 WiFi/Bluetooth and VPN (Wireguard, OpenVPN) support have been opensourced.

Over the past year or so, thanks to the donations from novice4321, Reo Au In, eioltesr1 and many other members of the community, I was able to release a fix for the infamous WiFi and Bluetooth issue on PS4 7215 and 7216 models, both Baikal and Belize. For those unversed, here is a quick history (chronological) of all the fixes and tutorials related to the matter:-

The latest set of kernels for Baikal and Belize on top of supporting MT7668 WiFi/BT chip also support VPN with Wireguard support on both Baikal and Belize. After all these months’ work, I am happy to release it to the public.

For people who are new to the world of PS4 kernels, let me quickly remind you what this release potentially entails. Other devs or users can use these kernels to build their own versions with support for more features like Docker, NTFS, exFAT. You could even add any later patches like FSR to allow for better gaming performance. By the way, if you are on a PS4 Pro, use these Linux payloads for better gaming performance.

PS4 Baikal & Belize Kernels by noob404

Let me quickly recap the additional features that these kernels provide over their base versions – codedwrench‘s 5.15.15 for Belize and whitehax0r‘s 5.4.213 for Baikal. Here they are:-

  1. Inbuilt kernel-level support for MT7668 WiFi/Bluetooth chipset on PS4, i.e., will work on any distro
  2. Fix for DNS error on some models
  3. VPN support – Wireguard and OpenVPN
  4. WPA3 support

Download source

The sources are available on GitHub:-

How to compile Baikal & Belize kernels with MT7668 and VPN support?

Previously, I have talked in about adding drivers to Linux kernels. And, even shown how you can compile PS4 Kernels from source. You can use a combination of both these to compile from the kernel source above. Anyways, just for the sake of this article, here are the steps to follow:-

Step 1. Setup build essentials

  1. Open a terminal.
  2. On Fedora and Fedora-based distros, type sudo dnf install gcc git flex make bison openssl-devel elfutils-libelf-devel and press Enter.
  3. On Ubuntu and Ubuntu-based distros, type sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison and press Enter.
  4. On Arch and Arch-based distros, type sudo pacman -S base-devel bc python and press Enter.

This should set you up for kernel compilation. Infact, we may have overdone.

Step 2. Download kernel from source

  1. Go to the Github page that I have linked above – either Baikal or Belize.
  2. On the top right, click on Code and under Clone, making sure HTTPS is selected, copy the address, for example, https://github.com/noob404yt/baikal-5.4.213-mt7668-dns-vpn.git, i.e., if you chose the Baikal variant.
  3. Make a folder to contain the kernel in a suitable location on your system, say, a folder named kernel.
  4. Open a terminal within that folder.
  5. Type git clone followed by a space and the Git address we just copied. The final command should look like this – git clone https://github.com/noob404yt/baikal-5.4.213-mt7668-dns-vpn.git if you chose the Baikal variant. Then, press Enter.
  6. This will create a folder within the kernel folder, we created earlier and download the kernel source within that folder.

Step 3. Compile PS4 Linux kernel from downloaded source

  1. Change directory into the newly created folder within the kernel folder holding the kernel files. If you cloned the Baikal kernel, the folder will be named baikal-5.4.213-mt7668-dns-vpn. So, you could type cd baikal-5.4.213-mt7668-dns-vpn and press Enter.
  2. Optional – If you want to add new features, like for example, exFAT support, type make menuconfig and press Enter. Make necessary changes here and save it. Check the driver addition tutorial for a better look into the customisation process.
  3. Now, check how many cores your PC has. Assuming you are doing it on a quad core (4 cores) CPU, on the terminal we already had open, type make -j5 bzImage and press Enter. The general rule of thumb is in the command, j should be followed by the number cores plus 1. So, if you were to compile on a PS4 Linux distro, you would type make -j9 bzImage as PS4 has an octa core (8 cores) APU.
  4. Once the process is complete, you will find the compiled kernel (bzImage) in the folder – arch/x86/boot.

Step 4. Boot the newly compiled kernel on PS4

  1. Download modified initram (Alternatively, modify yourselves with instructions here)
    • Note: The kernel still requires firmware files to be supplied via the initram.
  2. Copy the modified initram and bzImage (from Step 3) to the FAT32 partition of your PS4 Linux drive.
  3. Boot Linux as usual.

Conclusion

That’s it for this one, guys. Let me know if you hit any roadblocks. I will try to help.

Be the first to comment

Leave a Reply

Your email address will not be published.


*