While I’m thrilled with popOS as a desktop environment, it’s not without certain issues. The biggest one for me was the recurring backlight flicker that would manifest after waking the MacBook Pro from suspend.
I took several arrows on my journey to fix the backlight flicker that was occurring with popOS and my MacBookPro. I’m sharing my solution in the hopes that it helps others. These steps worked for me. Your mileage may vary…
First, my 2014 Retina MacBook Pro’s specs:
The backlight is the light that allows an LCD screen to create an image. In normal operation, the light is uniform. In my case, the backlight would flicker across the entire display. The flickering behavior was reminiscent of a CRT monitor’s response to a lower-than-60Hz refresh rate. On a dark wallpaper, the flickering was subtle. Switching to a light wallpaper would make the flickering more visible. Eventually, the flicker would subside and disappear. Putting the machine back into suspend mode and re-waking it would once again cause the display to flicker.
Rebooting the MacBook Pro did not help, as the flickering would persist. Turning off the MacBook Pro for a few minutes and restarting it would temporarily fix the issue, but the flickering would re-appear after the machine was awakened from its suspend state.
At first, I assumed it was a hardware issue*. Testing the MacBook Pro with another USB boot disk ruled that out quickly. Next, I futzed around with popOS’s Display settings. I initially thought it may be a refresh rate issue. But there weren’t any options to change the refresh rate from the reported 59.97Hz. Then I tried the Power Management settings.
Nada.
While searching for a solution online, I ran across other popOS / Ubuntu users suffering from the same issue. I read every suggestion and tried every fix. Nothing seemed to work. Even a fresh popOS install didn’t help.
While searching across various forums, I came across a few comments where users were noticing a relationship between screen flicker and wifi; when wifi was on, their display would flicker. Ultimately, this page on the Ask Ubuntu forums was the biggest help.
Below are the lines I ran in the Terminal:
lspci -nn -d 14e4:
sudo apt update
sudo update-pciids
sudo apt install bcmwl-kernel-source
sudo nano /etc/rc.local
The first line gives you the specific PCI ID for your Broadcom wifi modem. The second line runs updates to make sure your popOS is current. The third line updates the list of PCI.IDs. The fourth line downloads the bcmwl-kernel-source package.
Next, I created a new file called rc.local inside the /etc folder. (I followed the aforementioned Ask Ubuntu guide, so I don’t pretend to understand what these lines do.) Inside the rc.local file, I put the following lines:
#!/bin/bash
modprobe -r b44 b43 b43legacy sub brcmsmac bcma
modprobe -rf wl
modprobe -vv wl
After saving the file, I rebooted the machine.
After a few hours of use (primarily inside Firefox), the machine went to suspend mode. Waking it up caused the flickering to reappear. I was flummoxed. Had all my efforts been in vain? Digging around a bit more, I discovered that Firefox’s hardware acceleration setting could also be a culprit. I disabled it.
I’m writing this post after two days of testing and it seems to be working well. Of course, this is just one data point, so ultimately, I can’t confirm that this will work for everyone. If you have other solutions, please feel free to share them in the comments below.
-Krishna
*Update: If you opened your MacBook Pro’s internals to perform any upgrades / modifications – double-check to insure that the wifi modem connectors are not coming into contact with some of the small integrated circuits near it. This can cause interference. The wifi modem connector wires should be positioned as close as possible to the heatsink.
No comments yet. Be the first!