See also Wikipedia:MacBook.
|Model version||Date||Video||Sound||Ethernet||Wireless||Bluetooth||Power management||Other||Remarks|
|MacBookPro3,1 Mid 2007||2007-08||Yes||Yes||Yes||Yes||Yes||Yes|
|MacBook2,1 Mid 2007||2009-08||Yes||Yes||Yes||Yes||Yes||Yes||iSight does not work||See #MacBook2,1 Mid 2007|
|MacBookPro5 Mid 2009||2016-08-01||Yes||Yes||Yes||Yes||Yes||Untested||iSight does not work||Switching to TTY does not work with proprietary nvidia drivers, works with nouveau.|
|MacBookPro6,2 Mid 2010||2017-04-01||Yes||Yes||Yes||Yes||Yes||Untested||See #MacBookPro6,2 Mid 2010|
|MacBookAir6 2013||2014-10-01||Yes||Yes||Yes||Yes||Yes||Yes||iSight does not work|
|MacBookAir 7,2 Early 2015||2021-11-01||Yes||Yes||External||Yes||Yes||Yes||Guide: https://github.com/AdhamNasr/Apple_mba-Arch-i3|
MacBook2,1 Mid 2007
See UEFI#UEFI firmware bitness: this machine runs a 32-bit EFI. This means you should make sure the boot loader you choose supports mixed mode booting (i.e. a 64-bit OS on a 32-bit UEFI). For GRUB, use
i386-efi as the target.
To work around it, disable the PulseAudio plug detector with this patch:
--- a/usr/share/pulseaudio/alsa-mixer/paths/analog-input-mic.conf +++ b/usr/share/pulseaudio/alsa-mixer/paths/analog-input-mic.conf @@ -23,6 +23,8 @@ [Jack Mic] required-any = any +state.plugged = unknown +state.unplugged = unknown [Jack Mic Phantom] required-any = any @@ -31,6 +33,8 @@ [Jack Mic - Input] required-any = any +state.plugged = unknown +state.unplugged = unknown [Element Capture] switch = mute
MacBookAir1,1 Early 2008
Since this model has only one USB port, you may find it easiest to install Arch with a powered USB hub. Plug a USB network adapter (wireless or ethernet adapter to plug into a USB port) and your Arch installation media into the USB hub.
See Mac#WiFi. If you cannot get any result by scanning wireless network after boot, unload modules
ssb and load them again:
# rmmod ssb # rmmod b43 # modprobe b43
There is a good chance you will find what's wrong with DMA from the dmesg log.
Even if you can scan wireless networks after reloading the modules, it is still possible that you will only be able to connect to some networks, but not all of them. According to a more detailed discussion here: https://crunchbang.org/forums/viewtopic.php?id=17368, adding
pio=1,qos=0 options to the b43 module can solve this problem.
MacBookAir2,1 Mid 2009
MacBookPro6,2 Mid 2010
Heat issues solved withAUR.
On this model only the nouveau driver can be installed when booting in UEFI mode, AUR causes a black blank screen when Xorg loads.
MacBookPro7,1 Mid 2010
Booting the installation media, you might encounter the following error:
unable to handle kernel NULL pointer dereference at 0000000000000010" during pacpi_set_dmamode.
MacBookAir5,1 Mid 2012
If you have issues with waking from sleep while in X11 such as a black screen or showing the console with a frozen mouse cursor then removeand install AUR. This fixed errors such as
(EE) [dix] bcm5974: unable to find touch point 0
and backtraces that causes X11 to crash. This might apply to Version 5,2 assuming they use the same trackpad.
MacBookAir6,1 Early 2014
Unless you have a local repository on a USB disk, you need a USB to Ethernet adapter or a USB wireless adapter supported natively by the kernel to easily install Arch Linux, since you have to install thepackage to make the internal wireless card work.
brcmfmac driver is working as of 2015-11-20, with newer firmware necessary for working 5GHz support (see here.)
brcmfmacdriver can not be started and the following errors occur in the journal:
brcmfmac: brcmf_chip_recognition: chip backplane type 15 is not supported brcmfmac: brcmf_pcie_probe: failed 14e4:43ba
Then check whether PCI runtime power management is enabled on the device, and disable it if so.
Keyboard and trackpad
Haptic feedback works out of the box due to the trackpad's built-in firmware.
There are several drivers available that provide multitouch support. The following have been confirmed working with the MacBookPro12,1.
Forthe following configuration emulates some features from the macOS functionality. For more options see .
Section "InputClass" Identifier "libinput touchpad catchall" MatchIsTouchpad "on" MatchDevicePath "/dev/input/event*" Driver "libinput" Option "NaturalScrolling" "true" EndSection
Forthe following configuration is necessary to make the touchpad work fully.
Section "InputClass" Identifier "Trackpad" Driver "synaptics" MatchIsTouchpad "on" MatchDevicePath "/dev/input/event*" EndSection
MacBook9,1 Early 2016
- Booting from USB via EFI works fine, when giving the
intremap=nosidkernel option. Remember to hold
Alton booting to enter the boot menu. In order to allow Linux boot directly from your system disk, you will first need to install rEFInd from the OSX recovery mode (hold
Cmd+rduring boot, then open terminal, run the refind-install script).
- The wireless card works out of the box with
- Suspend / hibernate does not work. The problem seems to be the NVMe that does not wake up. When booting from an external drive, suspend / hibernate works out of the box.
- Audio recording works out of the box. Audio playback works out of the box for headphones, not for built-in speakers. Cirrus driver patch needed for making the speakers work: https://github.com/leifliddy/macbook12-audio-driver
- The keyboard and the touchpad do not work out of the box. There is a work-in-progress driver available that works well:
rmmod applespi && modprobe applespi.
AUR. Sometimes the touchpad does not work after booting but this can be fixed by reloading the driver with
- The keyboard backlight does not work (no solution yet).
- For Bluetooth driver, see AUR
Macmini8,1 Late 2018
- Instead of creating an HFS+ partition, create a fat32 partition for the boot loader
- Instead of using grub-install, create grub image and install it manually:
# mkdir -p /boot/grub/fonts # grub-mkimage -O x86_64-efi -o /boot/System/Library/CoreServices/boot.efi -p /boot/grub part_gpt hfsplus fat ext2 btrfs normal chain boot configfile linux appleldr minicmd loadbios reboot halt search font gfxterm png all_video # cp -r /usr/lib/grub/x86_64-efi /boot/grub/ # cp /usr/share/grub/unicode.pf2 /boot/grub/fonts/
- Alternatively, boot with the
/boot/mach_kernelis not necessary anymore.