MacBookPro9,x
Hardware | PCI/USB ID | Working? |
---|---|---|
Touchpad | 05ac:0252 |
Yes |
Keyboard | 05ac:0252 |
Yes |
Ethernet | 14e4:16b4 |
Yes |
Wireless | 14e4:4331 |
Yes |
Bluetooth | 05ac:821d |
Yes |
Webcam | 05ac:8509 |
Yes |
Microphone | 8086:1e20 |
Yes |
SD-card reader | 14e4:16bc |
Yes |
IR Receiver | 05ac:8242 |
Untested |
Thunderbolt | 8086:1513 |
Untested |
This page covers the following Mac models:
- MacBookPro9,1 15" Mid-2012
- MacBookPro9,2 13" Mid-2012
Pre-installation
Recording UIDs
If you want to access your macOS user directories from Linux, write down the UID and GID for the users. macOS begins with the first user's UID at 501 while Arch defaults to 1000.
Shrinking Macintosh HD
Although nowadays Boot Camp requires a Windows installation disc before altering partitions, it is possible to do this using Disk Utility. Create a new partition, calculate the amount of free space required for all new partitions and shrink Macintosh HD to accommodate for this amount. Leave the new partition as free space for now.
Installation
After booting the installation image, ethernet works, but not wireless. To fix this, remove the b43
kernel module and load wl
. This is because the b43 firmware files are not on the installation image.
# rmmod b43 bcma ssb wl # modprobe wl # ip link set wlan0 down # ip link set wlan0 up
User creation
If you wrote down your macOS uid's and gid's earlier, new users can be created by running:
# useradd -m -u [uid] -g [gid] -G [additional_groups] -s [login_shell] [username]
In order to be able to access a macOS user's directory, only the uid and gid need to match (usernames can differ).
Wireless
Wireless does not work out of the box. Install broadcom-wl or b43-firmwareAUR. See Broadcom wireless. In the past it was reported to be flaky, and fixed with ConnMan.
/etc/connman/main.conf
[General] BackgroundScanning = false
SD-card reader
The SD-card reader works, but will occasionally fail to mount entirely. The maximum card speed is 22 MB/s always. In the past it was recommended to use the following kernel parameter, however this seems to have no change in behavior.
sdhci.debug_quirks2=4
Function keys
To make the FN keys function as normal FN keys, follow Apple Keyboard#Function keys do not work.
Key | Visible?1 | Marked?2 | Effect |
---|---|---|---|
Fn |
Yes | Yes | KEY_FN
|
Fn+F1 |
Yes | Yes | KEY_BRIGHTNESSDOWN
|
Fn+F2 |
Yes | Yes | KEY_BRIGHTNESSUP
|
Fn+F3 |
Yes | Yes | KEY_SCALE
|
Fn+F4 |
Yes | Yes | KEY_ALL_APPLICATIONS
|
Fn+F5 |
Yes | Yes | KEY_KBDILLUMDOWN
|
Fn+F6 |
Yes | Yes | KEY_KBDILLUMUP
|
Fn+F7 |
Yes | Yes | KEY_PREVIOUSSONG
|
Fn+F8 |
Yes | Yes | KEY_PLAYPAUSE
|
Fn+F9 |
Yes | Yes | KEY_NEXTSONG
|
Fn+F10 |
Yes | Yes | KEY_MUTE
|
Fn+F11 |
Yes | Yes | KEY_VOLUMEDOWN
|
Fn+F12 |
Yes | Yes | KEY_VOLUMEUP
|
Touchpad
The touchpad works out of the box. In the past, it was recommended to use xf86-input-synaptics.
Using synclient
synclient
is included with the xf86-input-synaptics driver. It is useful for experimenting with settings as they take effect immediately and expire at the end of an X session. Many macOS options can be emulated without any additional software.
Run synclient -l
to have a look at all the available options. Here are some suggestions which resemble the options found in macOS's System Preferences:
- By default synaptics is configured to use a double-tap drag gesture found on older touchpads - one may argue that this is not necessary on a clickpad.
synclient TapAndDragGesture=0
will turn this off. - TapButtonX and ClickFingerX sets the mouse button triggered by tapping or clicking with X fingers. set
TapButton2=3
andClickFinger2=3
to assign two-finger click to the right mouse button. - Setting the bottom-right corner click to right mouse button can be done by subtracting about 500 from
RightEdge
andBottomEdge
and plugging the new values intoRightButtonAreaLeft
andRightButtonAreaTop
. If the last two options are not visible, setClickpad=1
.
To make settings permanent, just modify /etc/X11/xorg.conf.d/10-synaptics.conf
.
/usr/local/bin/synarea.sh
with the required synclient commands, and add the script to the X startup sequence.