Laptop/Apple

From ArchWiki
AcerAppleASUSDellFrameworkHPIBM/LenovoMSISamsungSonyToshibaOther

From Wikipedia:

The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. The product lineup includes the MacBook Air and MacBook Pro laptops, as well as the iMac, Mac Mini, Mac Studio and Mac Pro desktops. Macs are sold with the macOS operating system.

Model list

The factual accuracy of this article or section is disputed.

Reason: According to Mac/Troubleshooting#iSight, iSight should be working since linux≥2.6.37. (Discuss in Talk:Laptop/Apple#Webcam)
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
MacBookPro5,2 2009 2009-08 Yes Yes Yes Yes Untested Yes Might need snd_hda_intel model=mb5
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
#MacBookPro7,1 Mid 2010 2021-11-04 Yes Yes Yes Yes Yes Yes
MacBookAir4,2 Mid 2011 2023-04-28 Yes Yes Yes Yes Yes Untested broadcom-wl required for full speed Wi-Fi.
MacBookAir5,2 Mid 2012 2024-11-16 Yes Yes Yes Yes Yes Untested broadcom-wl required for full speed Wi-Fi.
MacBookPro9,x 2018-03-01 Yes Yes Yes Yes Yes Yes
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
MacBookPro16,1 2019 2023-01-21 Yes Partial External Yes Yes No Must use t2linux provided kernel

Troubleshooting

MacBook2,1 Mid 2007

Boot loader

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.

Rebooting

The MacBook will not reboot properly by default. It needs the reboot=pci kernel parameter.

Microphone

This article or section is a candidate for merging with PulseAudio/Troubleshooting.

Notes: This is PulseAudio specific and was added a year ago as a workaround for this model but is not specific to it. (Discuss in Talk:Laptop/Apple)

If your microphone is not working, you have probably run into a driver bug which makes PulseAudio think the digital microphone is always plugged in, disabling the normal microphone.

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
Note: This needs to be reapplied manually after every PulseAudio upgrade. PulseAudio does not support yet local customization files that could make this patch permanent.

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/Troubleshooting#Wi-Fi. If you cannot get any result by scanning wireless network after boot, unload modules b43 and 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

See Mac/Troubleshooting#Wi-Fi. Append options b43 pio=1 qos=0 to /etc/modprobe.d/b43.conf.

MacBookPro6,2 Mid 2010

Heat issues solved with mbpfan-gitAUR.

On this model only the nouveau driver can be installed when booting in UEFI mode, nvidia-340xx-dkmsAUR causes a black blank screen when Xorg loads.

Suspension and hibernation are dysfunctional (see Debian Wiki) when using the open source nouveau driver: the solution is to use the init_on_alloc=0 kernel parameter.

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. 

To fix this problem, boot with the option: acpi=off. After chrooting, add MODULES=(ata_generic) to /etc/mkinitcpio.conf and regenerate the initramfs, see Installation guide#Configure the system.

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 remove xf86-input-synaptics and install xf86-input-mtrack-gitAUR. 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 the broadcom-wl-dkms package to make the internal wireless card work.

rEFInd uses 30 seconds to start booting, following Mac/Troubleshooting#Avoid long EFI wait before booting stops rEFInd from loading and it has to be re-installed.

MacBookPro12,1/11,4+ 2015

Wireless

The brcmfmac driver is working as of 2015-11-20, with newer firmware necessary for working 5GHz support (see here.)

Note: On the Macbook Pro 12,1 if the brcmfmac driver 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.

For xf86-input-libinput the following configuration emulates some features from the macOS functionality. For more options see libinput(4).

/etc/X11/xorg.conf.d/90-libinput.conf
Section "InputClass"
    Identifier "libinput touchpad catchall"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "NaturalScrolling" "true"
EndSection

For xf86-input-synaptics the following configuration is necessary to make the touchpad work fully.

/etc/X11/xorg.conf.d/60-magictrackpad.conf
Section "InputClass"
    Identifier "Trackpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
EndSection

Graphics

See MacBookPro11,x#Graphics to enable the integrated graphics. See PRIME for details on handling hybrid graphics.

If you are experiencing flickering issues with Xorg, you can set i915.enable_rc6=0 as a kernel parameter, which will disable the power savings for the Intel graphics.

MacBook9,1 Early 2016

  • Booting from USB via EFI works fine, when giving the intremap=nosid kernel option. Remember to hold Alt on 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+r during boot, then open terminal, run the refind-install script).
  • The wireless card works out of the box with brcmfmac.
  • Suspend / hibernate does not work. The problem seems to be the NVMe that does not wake up. A potential solution to this has been offered, at https://bbs.archlinux.org/viewtopic.php?pid=2176149#p2176149. 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: macbook12-spi-driver-dkmsAUR. Sometimes the touchpad does not work after booting but this can be fixed by reloading the driver with rmmod applespi && modprobe applespi.
  • The keyboard backlight does not work (no solution yet).
  • For Bluetooth driver, see macbook12-bluetooth-driverAUR

All Intel MacBooks since 2018

Internal keyboard, trackpad, Touch Bar (if your model has one), Wi-fi, and Bluetooth will not work unless you have necessary kernel modules and firmwares. You should follow the guide on https://wiki.t2linux.org/distributions/arch/installation/ for hardware support.

iMac 2020

It seems the amdgpu driver has problems to set the native 5k resolution. If the display gets corrupted during boot when the amdgpu driver module is loaded, try forcing a lower resolution. Add e.g. video=2560x1440@60 to your kernel parameters.