Latest kernels with MT7668 WiFi & Bluetooth Drivers for PS4 7215/7216B (Baikal & Belize): Release

Fix WiFi and Bluetooth on PS4 (7215, 7216, etc.; Baikal & Belize) with MT7668 chip very easily using modified kernel with inbuilt drivers.

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.

UPDATE (18th January, 2024) – Fix for DNS issues on MT7668 kernels.
UPDATE 2 (20th June, 2024) – PS4 Baikal & Belize Kernels with MT7668 (incl. DNS fix) and VPN support opensourced.

What’s new?

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.

  1. WPA3 capability – You can now connect to WPA3 access points.
  2. Works on all distros. No extra steps required. Just boot with the modified kernel and initram.
  3. You tell me…

Requirements

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):-

WiFi and Bluetooth working on a PS4 Belize with Mt7668 chipset using inbuilt kernel drivers for 5.15

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.

  1. Copy initramfs.cpio.gz to a suitable folder (let’s call the folder – initram) and open a terminal there.
  2. Run zcat initramfs.cpio.gz | cpio -idmv. This will extract the contents of the initram image.
  3. Delete the initram file (initramfs.cpio.gz).
  4. Go into lib/firmware folder and open a terminal there.
  5. Run 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.
  6. Open a terminal in the folder named initram and run sudo chown -R noob404.noob404 "lib/firmware". Do not forget to replace noob404.noob404 with your superuser’s name.
  7. 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 /home/noob404/initramfs.cpio.gz.
  8. Use the newly created initramfs.cpio.gz with the modified kernel to get WiFi and Bluetooth working on your MT7668 PS4.

Conclusion

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.

25 Comments

  1. I’m having issues installing psxitarch using this kernel and initram on my Belize system. When I run install-psxitarch.sh it’ll reformat the drive properly but it doesn’t actually copy any files to the new partitions. It’ll say that it’s installing but then it says it’s finished within a few seconds and I’m dropped back to the rescueshell unable to boot with the start-psxitarch.sh script. any advice? https://i.imgur.com/MGBQLfb.jpeg

  2. Great work. I managed to get this working, but had to spend a while figuring out how. I will let you know of my experience in case it helps you fix issues. Here’s my specs:

    Model: Pro CUH-7216B
    Southbridge: Belize
    Distro: PSXITarch

    I was wanting to install Linux on the internal HDD. However, it simply did not work. I tried compiling my own initramfs using your instructions, but when Linux was booting up I was given a ‘Kernel Panic’ (in the output) which was due to an error not being able to find the right device.

    So I wiped this internal install and tried external instead, with your provided modified kernel and initramfs. However when installing, it couldn’t find the storage device (which is strange considering it found the bzImage and initramfs) to install Arch to. Maybe it’s the old bug to do with the partition alignment issue that Modded Warfare mentioned in his PS4 Linux install video? So then I reverted to the old bzImage and initramfs, and it installed fine. After that, replaced these with your modified versions, and it now worked.

    So yes, in the end it works, with a bit of extra steps. However it’s not internal, which is what I wanted. Still, progress is progress, and I hope you can keep improving on this project. Hope my experience helps you sort out these kinks.

    • I have the same PS4 Pro model. I used modified kernel 5.15.15 Belize (codedwrench) and Modified initram from here with with Linuxfx (Aliyah Edition). No need to install twice. Everything OK, only there are som problems with Wi-Fi. Connection is stable, but I have some problems with DNS resolving. I tried to modify the symlink /etc/resolv.conf 3 times, but it didn t help. Also tried to insert static IP manual config. Nothing helped to resolve the problem. Anyway BT works likes a charm.

  3. Im trying to build the initram file for my internal internal HDD install. All goes well until the very last line. when I type in

    find . | cpio -o -c -R root:root | gzip -9 > home/psxita/out/initramfs.cpio.gz

    I get this error:

    bash: home/psxita/out/initramfs.cpio.gz: No such file or directory

  4. Finally! I got WiFi on my PS4 Pro model CUH-7216B. Here is the solution:

    1. sudo nano /etc/NetworkManager/NetworkManager.conf
    2. change the line: managed=false to managed=true
    3. sudo service restart NetworkManager

    ——————————————————————————————————————————————-
    [SOLVED] I have the same PS4 Pro model. I used modified kernel 5.15.15 Belize (codedwrench) and Modified initram from here with with Linuxfx (Aliyah Edition). No need to install twice. Everything OK, only there are som problems with Wi-Fi. Connection is stable, but I have some problems with DNS resolving. I tried to modify the symlink /etc/resolv.conf 3 times, but it didn t help. Also tried to insert static IP manual config. Nothing helped to resolve the problem. Anyway BT works likes a charm.

  5. This doesn’t work for me , it just says move dev new root dev failed and the install linux line code doesn’t work. I do that code a few times then it freezes when it says its switching a new root

  6. Hello, im getting permission denied when modifying initramfs.. can someone pls provide a modified initramfs for internalhdd booting linux!

  7. I got kernel panic when modifying internal hdd initram not working can you please make modded file for internal drive boot (belize)

Leave a Reply

Your email address will not be published.


*