ricecake

Linux on a Retina screen, finally

2025-03-22

I had an old Macbook8,1 from early 2015 lying around. Many applications do not receive updates anymore from Apple. It is also difficult or impossible to install new applications because the device is too old.

I decided to revive the machine by installing linux.

Aside from rescuing a piece of perfectly functional hardware from landfills (or wherever the tech trash ends up), I had two other reasons:

  • The very superficial but enticing reason of the Retina display. I miss the Retina display. Nothing comes close to it and I will not be persuaded otherwise.
  • Macbook is slim, light, and I love how subtle the keyboard keys are. Again, superficial. But what can I say. The heart (and the hand) wants what it wants.

Here is how I did it:

Which Macbook? Which linux?

The macbook I have is a Macbook8,1, from early 2015, with no T2 security chip, with a built-in audio system (no HDA chip.)

I first tried to install Triskel 11 (with KDE desktop environment.)

Then, I tried with Ubuntu 22.04. I will explain why, and which worked, later on.

Preparing macbook for a dual-boot installation, and installing linux correctly

I first downloaded and installed the latest macOS that would work on the device. This was Big Sur 11.7.10 for my device, and I found it on this website:

https://mrmacintosh.com/macos-big-sur-full-installer-database-download-directly-from-apple/

To install Linux, I followed the instructions on this link:

https://www.makeuseof.com/tag/install-linux-macbook-pro/#step-1-prepare-your-mac-for-installing-linux

If, like me, you’re first interested in a dual-boot setup, you need to make a new partition in your macbook hard drive. You need to format the new paritition in MS-DOS, and during the installtion of linux you need to specify which partition linux needs to be installed on. The link above takes you through all these steps.

I had trouble making a new parition in macOS and formatting it in MS-DOS. So one thing I did a little differently was how I partitioned the mac hard driver:

  • I opened Disk Utility on macOS. I chose the highest volume in the side bar on Disk Utility.
  • I selected Partitions on the top bar, when asked to add volume or partition, I selected Add Partition (up to here it’s the same procedure as in the link above.)
  • To partition, as my first step, I only specified the volume of the new partition for my linux (120 GB on a 500 GB SSD). I left the format to be APFS.
  • Once the partition was made successfully, I then changed the format of my new partition to MS-DOS. This is the only way I got it to work for me.
  • I repeated this step to make a swap partition.
  • Note: You need to be careful with partitioning. You cannot merge and delete partitions just willy nilly. You can reverse your steps in partitioning only in the exact order that you did them. If you are not careful, you might delete your macOS boot, in which case you would have to re-install the macOS (Yes this happened to me, yes it took a long time.)

Issues with wifi and the solution

With Triskel-11, the wifi did not work out of the box.
This also happens when you install Triskel on a Lenovo Thinkpad. This is because the driver for the WiFi card is proprietary. Triskel does not come with any proprietary applications, drivers or firmware.
On a Lenovo Thinkpad this is relatively easy to fix. You need to download and install the .deb WiFi driver for the Intel card from Ubuntu’s or Debian’s packages.

However, macbooks come with a different WiFi card, from Broadcom.

So I tried to fix it, using this link as my main resource:

https://askubuntu.com/questions/55868/installing-broadcom-wireless-drivers

However, nothing worked.

The WiFi card on macbook is identified like so: BCMXXXX with the number specifying which BCM exactly.

You need to download the proprietary drive of Broadcom by installing packages linux-firmware, and firmware-b43-installer.

However

  1. Since trisquel does not have these drivers (linux-firmware, and firmware-b43-installer) in its package repository (apt), I needed to find the correct equivalent package on the ubuntu package website, and download them manually. I never knew for sure if the packages I am downloading are the correct one for my trisquel.
  2. These packages have dependencies, and because I was downloading them from the web, I had to take care of this myself. It’s tedious, and still a lot may go wrong.

I spent almost a full day on this, and I failed.

So I reverted back to Ubuntu.

I first tried with a bootable USB disk for Ubuntu 24.04. For some reason, this disk was not identified by macbook as a live disk.

So I made a bootable USB disk for Ubuntu 22.04. You can find the ISO file here: https://releases.ubuntu.com/jammy/

The mac did recognize this USB as a live image. I installed Ubuntu 22.04 on the mac (and therefore wiped trisquel), and it came with functional WiFi out of the box.

SUCCESS (with compromises on the OS)!

The keyboard and touchpad sometimes work, sometimes not

Along with WiFi, this is the biggest limitation in my opinion.
I tried, very hard, to fix this. There is a driver on github, but is no longer maintained: https://github.com/roadrunner2/macbook12-spi-driver

But people have forked other versions for newer linux kernels, and for other macbooks with touchbars. And many do report success. You need to find the appropriate fork for your situation. It is quite difficult to understand from the repository issues which one might work for you.

Since the keyboard does work upon reboot almost half the time, I abondoned this issue as well after two days. I might go back to it later, but for now, I’ll live.

EDIT: After about a week of working with the mac, my keyboard is recognized after every reboot.

Dual boot is possible, but not exactly as expected with rEFInd

Ideally, when you install rEFInd (as mentioned in the link above when you install linux), you should get a menu when you start the computer, asking you which OS you want to boot. This did happen before I installed linux, but not anymore once I installed linux.

Instead, the computer defaults to booting linux. If I want to boot macOS, I need to press and hold the option key. Only then the computer asks which one I want to boot.

I guess there is a solution to this, but because there is a simple workaround, I haven’t cared enough to fix it. Unless using the option key frequently for booting is somehow bad for the computer(?)

The speakers don’t work

The speakers do not work.

The good news is out of the box, the headphone jack does work. Online, people say getting audio through USB and HDMI work, too. This is already great in my opinion.

For the speakers, I found drivers for macbook on this repo: https://github.com/davidjo/snd_hda_macbookpro

However, there are two challenges with this driver:

  1. The developer’s macbook model was apparently macbook14, and therefore it’s tested on this model. The driver might work with other models, since others report success with other models. You could check which model you have by booting the macOS, select the Apple icon –> select About this Mac, and click on System Report. Mine is macbook8,1.

  2. The second and bigger issue: The driver would only work if the macbook has an HDA audio chip. Mine has an internal built-in audio system. You could check which one you have by running $ system_profiler SPAudioDataType on the macOS terminal. If you have an HDA audio chip, the driver might work for you.
    Note: The developer of the hda firmware mentioned that my device “[doesn’t] have the 8409 HDA chip but [it does] have an HDA chip - but much more standard. However Apple being Apple they use a proprietary version of it - one thing this allows them to do is add so called vendor commands - which are”useful” because there is no documentation of those commands.” He also recommended to look at this bug. The discussion is interesting but is a little over my head.

I searched for solutions for macbook8,1 and internal audio system. No luck. I am abandoning this issue for now, since as I mentioned the headphones do work.

The bluetooth does not work

I have found a potential solution, which I have not tried yet, on this repo: https://github.com/Dunedan/mbp-2016-linux

In general Dunedan’s repo has a lot of resources one could try.

The Facetime camera is not recognized (FIXED!)

My mac (Macbook8,1) has a 480p FaceTime camera (as seen on Apple’s website.)

I found the following repository for firmware for the FacetimeHD camera: https://github.com/patjak/facetimehd/

In short, you have to

  1. Extract the firmware from OSX - find instructions here.
  2. Follow the steps on installation.

The installation went without a hitch. However, since my camera is 480p FaceTime and not FaceTimeHD, it did not work. The camera was not responsive.

Then I found out that someone in the repository issues made modifications in the driver files to adapt for a 480p camera. I followed what they had suggested and the camera works now!

If you have a 480p camera, you need to make changes to the fthd_isp.c and the fthd_v4l2.c files. You can find the modifications they made here:

https://github.com/patjak/facetimehd/issues/196#issuecomment-569858722

Upgrade to Ubuntu 24.04

After installing Ubuntu 22.04, I upgraded to Ubuntu 24.04 (meaning on Ubuntu 22, I chose to upgrade, not through making a new bootable USB.)

Everything looks the same as Ubuntu 22. The wifi works, the headphone jack works, bluetooth does not work. The keyboard issue did not appear in the 24 hours I had Ubuntu 22.04 installed.

General issue for the macbook8,1 (Early 2015)

Overheating.
I have noticed that sometimes the laptop overheats. A couple of times the screen went blank. I first chalked it up to the battery issue (which I was aware of). However, someone else also has mentioned this issue for this particualr macbook:

https://github.com/DavidMorton/macbook12-audio-driver?tab=readme-ov-file#david-morton-update-aug-2023

I have not tested linux on any other macbooks but I suspect this is an issue of this particular model.

Verdict

Macbook8,1 is a pretty old device. There is a reasonable chance that the drivers people have developed for bluetooth or keyboard work better on slightly newer models.

Nevertheless, I have an almost functional linux on mac.

Is it perfect?
No.
Did I try very hard to fix the issues?
Yes.
Did I succeed in fixing the issues?
For the most part, no.
Did I revive a macbook into a functioning computer I can use on a daily basis, customize it to my liking and install new applications on?
So far, absolutely.

And I am looking at a Retina screen again.

tech linux
back to posts

ricecake.space by T.K. is licensed under CC BY-NC-ND 4.0 unless otherwise noted.
This website is built with python and html, and hosted by IN-Berlin e.V. Source code available here.

The fonts are whoismono by Raphaël Bastide, and tuoitre from Carrois Type Design.
Background image by Tananuphong Kummaru, and dithered with Ditherit!