ArchLinux Setup Guide For Intel MacBook Pro
Intro This article is a collection of caveats necessary to get Arch Linux up and running on old Intel MacBooks with AMD GPUs. In my case, it's old MacBookPro11,5 Steps here are based on various articles and hours of painful debugging. Article skips full Arch setup process, focusing only on MacBook-specific steps. This article assumes that you’re using: PipeWire as audio server. Wayland with Hyprland as a compositor. Sources Information in this article is based on following sources: https://wiki.t2linux.org/guides/hybrid-graphics/ https://github.com/Dunedan/mbp-2016-linux https://wiki.archlinux.org/title/MacBookPro11,x https://github.com/pandeiro/arch-on-air Table Of Contents Bootloader rEFInd Installation Set Apple OS Extra Boot Arguments Setting rEFInd as default bootloader Network Network Manager Broadcom GPU Power Management Udev Rules Kernel Modules Use Integrated GPU On Boot Using gpu-switch Disable AMDGPU HDMI Audio Turn Off Discrete AMD GPU Disable dGPU On Boot Use iGPU for Hyprland Power Efficiency Battery Monitoring iGPU Tweaks Pefrormance Power Profile Automatic Power Profiles Switch Power Profiles Manually Bootloader Apple introduces certain limitations for non-macOS systems, such as inability to use Intel GPU. The most convenient way to bypass them is using rEFInd bootloader. rEFInd handles MacOS version spoofing, SIP and other stuff out of the box. rEFInd Installation Install rEFInd by following instructions from ArchWiki. ⚠️ Important Don’t forget to add Linux boot configuration into rEFInd config file /boot/EFI/refind/refind.conf Set Apple OS Apple blocks access to integrated Intel GPU for any non-macOS operating system. rEFInd provides a way to workaround this with spoof_osx_version config parameter. Open /boot/EFI/refind/refind.conf and add a following parameter: spoof_osx_version 12.7 Extra Boot Arguments Add following options to your Arch Linux menu entry in rEFInd config: data=writeback libata.force=1:noncq acpi_mask_gpe=0x06 acpi_osi=Darwin i915.modeset=1 amdgpu.modeset=0 amdgpu.runpm=1 Setting rEFInd as default bootloader Unlike Grub or systemd-boot, rEFInd places itself into a non-standard directory inside EFI partition. Use efibootmgr to add rEFInd as boot entry: efibootmgr -c -L 'rEFInd Boot Manager' -l '\EFI\refind\refind_x64.efi' ⚠️ Important Remove old macOS boot entries using efibootmgr to avoid having long boot delays. Network Network Manager NetworkManager won’t let you to connect to a WiFI without a proper dbus session and keychain provider. The simplest and most reliable way is to use iwd instead: pacman -S iwd systemctl disable --now NetworkManager systemctl enable --now systemd-resolved systemctl enable --now systemd-networkd systemctl enable --now iwd

Intro
This article is a collection of caveats necessary to get Arch Linux up and running on old Intel MacBooks with AMD GPUs.
In my case, it's old MacBookPro11,5
Steps here are based on various articles and hours of painful debugging.
Article skips full Arch setup process, focusing only on MacBook-specific steps.
This article assumes that you’re using:
- PipeWire as audio server.
- Wayland with Hyprland as a compositor.
Sources
Information in this article is based on following sources:
- https://wiki.t2linux.org/guides/hybrid-graphics/
- https://github.com/Dunedan/mbp-2016-linux
- https://wiki.archlinux.org/title/MacBookPro11,x
- https://github.com/pandeiro/arch-on-air
Table Of Contents
-
Bootloader
- rEFInd Installation
- Set Apple OS
- Extra Boot Arguments
- Setting rEFInd as default bootloader
-
Network
- Network Manager
- Broadcom
-
GPU Power Management
- Udev Rules
- Kernel Modules
- Use Integrated GPU On Boot Using gpu-switch
- Disable AMDGPU HDMI Audio
- Turn Off Discrete AMD GPU
- Disable dGPU On Boot
- Use iGPU for Hyprland
-
Power Efficiency
- Battery Monitoring
- iGPU Tweaks
- Pefrormance Power Profile
- Automatic Power Profiles
- Switch Power Profiles Manually
Bootloader
Apple introduces certain limitations for non-macOS systems, such as inability to use Intel GPU.
The most convenient way to bypass them is using rEFInd bootloader.
rEFInd handles MacOS version spoofing, SIP and other stuff out of the box.
rEFInd Installation
Install rEFInd by following instructions from ArchWiki.
⚠️ Important |
---|
Don’t forget to add Linux boot configuration into rEFInd config file /boot/EFI/refind/refind.conf
|
Set Apple OS
Apple blocks access to integrated Intel GPU for any non-macOS operating system.
rEFInd provides a way to workaround this with spoof_osx_version
config parameter.
Open /boot/EFI/refind/refind.conf
and add a following parameter:
spoof_osx_version 12.7
Extra Boot Arguments
Add following options to your Arch Linux menu entry in rEFInd config:
data=writeback libata.force=1:noncq acpi_mask_gpe=0x06 acpi_osi=Darwin i915.modeset=1 amdgpu.modeset=0 amdgpu.runpm=1
Setting rEFInd as default bootloader
Unlike Grub or systemd-boot, rEFInd places itself into a non-standard directory inside EFI partition.
Use efibootmgr
to add rEFInd as boot entry:
efibootmgr -c -L 'rEFInd Boot Manager' -l '\EFI\refind\refind_x64.efi'
⚠️ Important |
---|
Remove old macOS boot entries using efibootmgr to avoid having long boot delays. |
Network
Network Manager
NetworkManager won’t let you to connect to a WiFI without a proper dbus session and keychain provider.
The simplest and most reliable way is to use iwd
instead:
pacman -S iwd
systemctl disable --now NetworkManager
systemctl enable --now systemd-resolved
systemctl enable --now systemd-networkd
systemctl enable --now iwd