r/linux_on_mac • u/bxparks • 14h ago
Disable Thunderbolt, Decrease Power Consumption 1.5W, Increase Battery Life by Up To 25%, on Intel MacBook Air (2013-2017)
This information is not new on this subreddit, but it is often buried inside a lot of other cruft, which made me overlook this for a long time. I think it's useful enough to deserve its own posting.
Tl;dr: On the Intel MacBook Air 11"/13" (2013-2017), and potentially other MacBook Airs and Pros from this era, disabling the thunderbolt ports can save 1.5W of power consumption, potentially increasing battery life up to 25% under idle conditions. (Others reported up to 2W of savings, I did not observe that.)
The screenshot above shows a projected battery life of 10h45m for my MacBook Air 11" (2015). That is unrealistic of course, because it assumes that the laptop is completely on idle. In real life, with some moderate Firefox browsing, I'm seeing 5-6h of battery life, which is noticeably better than the 4-5h that I was seeing before.
The instructions below are for Linux Mint 22.x which uses GRUB as the boot loader.
Kernel Parameters
First, edit `/etc/default/grub`, and add the following option to any other parameters which are in this variable:
GRUB_CMDLINE_LINUX_DEFAULT="... acpi_osi=!Darwin"
Second, regenerate GRUB:
$ sudo update-grub
Third, reboot the machine. The default kernel selected on the GRUB menu will be configured with the `GRUB_CMDLINE_LINUX_DEFAULT` variable, and thunderbolt will be disabled. (If you select any other kernel version from the Advanced menu, it will get the `GRUB_CMDLINE_LINUX` parameter, which will not contain this flag, and thunderbolt will be enabled. See how to use this to your advantage below).
Results
The power consumption of the MacBook fluctuates up and down every few seconds. I looked for the minimum power consumption over a few minutes, with the display set to about 1/3 brightness.
On my MBA 11 (2013) 4GB/128GB, I saw:
- Thunderbolt disabled: 4.2W
- Thunderbolt enabled: 5.6W
On my MBA 11 (2015) 8GB/256GB, I saw:
- Thunderbolt disabled: 4.5W
- Thunderbolt enabled: 6.0W
(The 2015 model seems to use slightly more power than the 2013 model, probably because of the larger RAM and larger SSD.)
This ArchLinux wiki page (https://wiki.archlinux.org/title/Mac/Troubleshooting#Disabling_Thunderbolt), says that they observed a 2W reduction. I never saw that on my MBA 11".
Reenabling Thunderbolt
[Update: This section may not be necessary, because even though the Arch Linux wiki page says that this kernel flag disables thunderbolt, my external monitor works just fine through the thunderbolt adapter.]
Occasionally, I use an external monitor with my MBA 11", which requires the thunderbolt to be active. I could go back into `/etc/default/grub`, remove the `acpi_osi=!Darwin` flag, run `update-grub`, and reboot.
But that's a lot of work. There are 2 easier workarounds:
Option 1: Install both the 7.0 kernel and the 6.8 kernel. Both are LTS kernels supported until 2029. Select the "Advanced" option in the GRUB menu, then boot into the 6.8 kernel. Since this kernel is not the default, it will boot with the `GRUB_CMDLINE_LINUX` flag, and thunderbolt will be enabled.
Option 2: At the GRUB menu, type `e`' to get the edit screen where you can manually remove the `acpi_osi=!Darwin` flag. Then hit F10 or Ctrl-X to continue the boot process, and the 7.0 kernel will boot with thunderbolt enabled. Unfortunately, my memory is not as good as it was when I was younger, and I will forget about this technique in a few months, so I will probably end up using Option 1.
If anyone knows an easier way to enable/disable thunderbolt at runtime, without rebooting, that would be really useful. Please post info.
For me, no other power saving technique (e.g. TLP, CPU governor selection, CPU PowerSaver option, replacing the Broadcom WiFi card with an Intel AX210 card) made as much difference in power consumption and battery life as disabling the thunderbolt ports.