You guys would know that I have been working on MT7668 WiFi/Bluetooth drivers for PS4 7215/7216 (Baikal and Belize) since some months now. We had our first success in March, when I was able to get WiFi working on affected PS4 Pros, mainly 7215B/7216B. Here is the article for the initial release and this was all thanks to novice4321’s sponsorship.. Then, recently, I open sourced my edition of the MT7668 driver source code for Linux with detailed compilation instructions.
There was a small inconvenience though. The earlier method was distro-specific and required a separate set of files for installation on each distro. While we got it working with kernel 4.19 on Ubuntu, Debian and Fedora-based distros, Arch remained largely elusive. But, recently, a forum member, dhruvin was able to get it to work on Belize PS4s with MT7668, by converting the driver files from .deb (Ubuntu) to .pkg (Arch). Still, Baikal didn’t work.
Anyways, this was long overdue, but, I decided to go ahead and incorporate the drivers into the kernels themselves. What is the benefit here, you ask? Well, now, MT7668 WiFi and Bluetooth works on all PS4 Linux distros, for one. Moreover, no additional steps are required to get WiFi and Bluetooth working. All you have to do is, load your favourite distro on your PS4 with MT7668 chip using the provided kernel and a modified initram image.
As of now, I will be providing kernel 5.4.213 for Baikal (based on whitehax0r‘s source) and 5.15.15 for Belize (based on codedwrench’s source). Also remember that, the driver itself is based on a newer source and there is scope for improvement. So, do share any problems you face with these drivers and I’ll try to improve them. Once everything’s finalised, I will be cleaning up the source in my own time and then, I will open-source it.
Before we begin, I’d like to thank a few people who made this and several other projects possible. First of all, novice4321, for having sposnored the whole initial release of the drivers and for testing them. Next, we have Reo Au In, a long time supporter, hardware and Linux expert, who sponsored the inbuilt kernel drivers and also tested the drivers on Belize. Then, thanks to misfit-michief for testing on Baikal and DF_AUS for donating to the project.
If you can, please consider supporting my further endeavours by donating any amount on Ko-fi.
Compared to my previous drivers for MT7668 PS4s, this one does come with a few updates. This list will be updated as and when I discover new features. For now, here they are. By the way, if you did find a difference between the previous drivers and this one, please let me know.
- WPA3 capability – You can now connect to WPA3 access points.
- Works on all distros. No extra steps required. Just boot with the modified kernel and initram.
- You tell me…
- PS4 with MT7668 chipset (Instructions to check here)
- Modified kernel
- Modified initram (Instructions on modifying yourselves given here)
How to fix MT7668 WiFi and Bluetooth on PS4 with modified kernel?
It’s actually pretty simple. All you have to do is boot tour favourite distro with the modified kernel and initram. The drivers have been tested and confirmed to be working on all the major distros including Debian-based, Fedora-based and Arch-based ones too.
Here is an image shared by Reo Au In showing the drivers in action on Linuxfx (Aliyah Edition):-
As for the initram itself, it’s important to mention that the WiFi and Bluetooth firmware files have been added to them. This has been done so that the files become accessible to the kernel driver on boot itself. But, if you have a custom initram image or are running Linux on the internal PS4 drive, you will have to compile the initram yourself with the necessary firmware files. There are multiple ways to build an initram for PS4. While I love to do it from scratch, most people wouldn’t prefer that. So, I am sharing simple instructions, as shared in Zabovis’ tutorial.
How to build initram with MT7668 WiFi & Bluetooth firmware files ?
This will require a Linux machine or Virtual Machine.
- Copy initramfs.cpio.gz to a suitable folder (let’s call the folder – initram) and open a terminal there.
zcat initramfs.cpio.gz | cpio -idmv. This will extract the contents of the initram image.
- Delete the initram file (initramfs.cpio.gz).
- Go into lib/firmware folder and open a terminal there.
git clone https://github.com/noob404yt/mt7668-wifi-bt-firmware.git. This will download the necessary files into the firmware folder. Make sure you remove the file README.md.
- Open a terminal in the folder named initram and run
sudo chown -R noob404.noob404 "lib/firmware". Do not forget to replace
noob404.noob404with your superuser’s name.
- When satisfied, on the same terminal, run
find . | cpio -o -c -R root:root | gzip -9 > /home/noob404/initramfs.cpio.gz. Change the destination as you wish by changing
- Use the newly created initramfs.cpio.gz with the modified kernel to get WiFi and Bluetooth working on your MT7668 PS4.
Do not forget to share your feedback and talk about any issues with the driver, please leave a comment below or post on the forum thread. I will get back to you. If you’d like to support my projects, please consider donating on Ko-fi.