MacBookPro8,x

This article or section needs language, wiki syntax or style improvements. See
Help:Style
for reference.
Reason:
Too many style errors to list, also not following
Help:Laptop page guidelines
. (Discuss in
Talk:MacBookPro8,x
)
This page contains tips on installing Arch Linux on an Early 2011 MacBook Pro.
discuss at
https://bbs.archlinux.org/viewtopic.php?pid=1021706
Installation
Following the
installation guide
works for the most part, but it is necessary to add some
kernel parameters
when booting due to issues with the graphics card as well as potentially switch
kernel module
to get the wireless network to work:
8,1
Forum thread:
BBS#136833
Add following to
kernel parameters
.
i915.enable_fbc=1 usbcore.autosuspend=1 h
Note
Be cautious about enabling
frame buffer compression
when using
xf86-video-intel
, as it can lead to lags or freezes of the primary monitor with some programs, such as Firefox. See
[1]
for details and workarounds, as well as the notes in
Intel graphics#Installation
.
8,2 and 8,3
Note
For 8,2 (potentially for 8,1 and 8,3 as well) be aware that you might find that
ip link
does not show the wireless network card. In that case, check what
kernel module
is being used, by running
lspci -v
and look for the Network controller called
BCM4331
. As mentioned on
Broadcom wireless#Installation
, the BCM4331 chipset used on 8,2 has issues with the
b43
module and if the
bcma
or
bcma-pci-bridge
is the module loaded, you need to switch it. Try forcing a switch to the (non-free, but much more reliable)
wl
module by blacklisting any potentially interfering modules:
rmmod b43 bcma ssb wl; modprobe wl
and then check if the wireless connection is now showing up when doing
ip link
. You can then proceed to connect to the internet using
iwctl
. If you are unable to view the device in
iwctl
you will need to
restart
iwd.service
. If you want the changes to persist after installation, remember to install
linux-headers
and
broadcom-wl-dkms
during the
pacstrap process
(as well as
iwd
or a similar package to manage the connection after installation.)
If, after installation, the screen freezes after boot, try booting with the kernel parameter
radeon.modeset=0
in order to disable the ATI Radeon graphics card.
Using rEFInd and an EFI boot stub
Using
rEFInd
as a boot manager as an alternative to
GRUB
or
systemd-boot
is possible, but may need some configuration.
Install rEFInd
Consult
Installing rEFInd
Boot into Mac OS X
# mkdir -p /efi/refind
 # cp -r refind/* /efi/refind/
 # rm /efi/refind/refind_ia32.efi
 # mv /efi/refind/refind.conf-sample /efi/refind/refind.conf and adjust it
 # bless --setBoot --folder /efi/refind --file /efi/refind/refind_x64.efi
Setting up the EFI boot stub
Follow
EFI boot stub
.
Add kernel modules
Without this, you will get
root fs not found
error.
Edit
/etc/mkinitcpio.conf
:
MODULES="..ahci libahci.."
Then
regenerate the initramfs
.
BIOS boot
Boot into BIOS emulation mode. AMD card works, but intel card does not.
Use rEFInd to load GRUB legacy.
Wireless network
See
Broadcom wireless
for b43 installation and usage.
Keyboard and touchpad
Keyboard
Default
F1
key represents
XF86MonBrightnessDown
, if you want it represents to
F1
. Set
fnmode=2
parameters to hid_apple module.
See
Kernel modules#Setting module options
for more information.
Touchpad
Two finger scrolling and left-click works out of the box. Unfortunately the right-click is not functional.
There are two drivers to provide features to the touchpad (including right and middle click):
mtrack
which is reported to work well and
Synaptics
which provides more features but might require some tuning.
mtrack:
Mtrack is available in
xf86-input-mtrack
AUR
. The configuration is done via the
/etc/X11/xorg.conf.d/10-mtrack.conf
file. Check if the mtrack module is properly loaded in the
/var/log/Xorg.0.log
file. Sometimes xorg loads other drivers before, like eg. synpatics, and the mtrack driver is not used at all.
For an MBP 8,3 I needed to use the following config (in
/etc/X11/xorg.conf.d/10-mtrack.conf
) to stop it picking up other input devices by mistake:
Section "InputClass"
  Identifier "Multitouch Touchpad"
  Driver "mtrack"
  MatchDevicePath "/dev/input/event*"
  MatchProduct "bcm5974"
  MatchIsTouchpad "true"
EndSection
synaptics:
See
Touchpad Synaptics#Installation
for synaptics installation and configuration instructions.
Tip
Synclient
provides some additional configuration for the touchpad.
#list all possible configurable parameters.
 synclient

 #To change a value for a command use `synclient command=X`
 #Example:
 synclient HorizTwoFingerScroll=1
After you have successfully tried and tested your options through synclient, you can make these changes permanent by adding them to
/etc/X11/xorg.conf.d/50-synaptics.conf
Video and screen
13-inch
Intel HD Graphics 3000: works with
xf86-video-intel
.
Adjust Brightness: works with
xorg-xbacklight
.
Note
Since Linux kernel 6.1, an additional
backlight kernel parameter
is needed such as
acpi_backlight=native
.
[2]
For example:
$ xbacklight -inc 7 # increase brightness
$ xbacklight -dec 7 # decrease brightness
or you can use a simple bash script that provides screen and keyboard backlight management by simple cli (-d for display / -k for keyboard)
#!/bin/bash
case $1 in
       -d|--display)
           if [ "$2" != "0" ]
               then
                   echo "$[(($2 * 4882) / 100) % 4883]" > /sys/class/backlight/intel_backlight/brightness
           fi;;
       -k|--keyboard)
           echo "$[(($2 * 255) / 100) % 256]" > /sys/class/leds/smc\:\:kbd_backlight/brightness;;
       -h|--help)
           echo -e "MacBook 8.1 brightness helper\n\t-d\tset display brightness (0-100%)\n\t-k\tset keyboard brightness (0-100%)\n";;
       *)
           echo -e "Unknown option try -h or --help";;
esac
Save it in
/usr/local/bin/macbackl
and mark it as
executable
.
For usage, run:
$ macbackl --help
Note
You must be root to edit the files in
/sys/class/*
but if you want you can chown
/sys/class/leds/smc\:\:kbd_backlight/brightness
and
/sys/class/backlight/intel_backlight/brightness
15-inch and 17-inch
AMD Radeon HD 6490M: Unknown.
AMD Radeon HD 6750M and 6770M: works with
xf86-video-ati
.
Sound
8,3
Some applications (e.g.
VLC
) have intermittent crackling; appending 'tsched=0' to 'module-udev-detect' in /etc/pulse/default.pa fixes this.
Suspend and hibernate
8,1
For s2ram install
uswsusp-git
AUR
and add to file
/etc/pm/config.d/module
following content:
SUSPEND_MODULES="bcma b43" 
 SLEEP_MODULE=uswsusp
Without this, system hangs after the machine wakes up and tries to reconnect to the wireless network.
HFS+
HFS is mounted as Read-Only. By
turning journaling off
in OS X, the HFS+ file system will be read/write under Linux.
Bluetooth
I had problems pairing devices, nothing was detected with
hcitool scan
There seems to be a conflict between the bluetooth module and the b43 one (wifi). The solution is creating
/etc/modprobe.d/b43.conf
with the following content:
options b43 btcoex=0
Troubleshooting
Broken integrated GPU
The 8.2 macbook pro models with integrated graphics card have a manufacturing issue that causes the lead-free solder of the GPU to crack, inhibiting its ability to function. The problem begins by seeing red lines on the monitor and then failing to boot OS X. Apple issued a
repair program
, but the odds are that your GPU will die again soon.
It is still possible to boot linux using the outb 0x750 lines in grub2 as described above, however this is a nuisance because it may be impossible to read the monitor when the problem is severe, making installation impossible. In addition, you may also wish to use another boot loader other than GRUB.
It is possible to fix the problem by forcing the EFI to use the integrated graphics card.
Warning
This requires that you manually write values to the efi. This may brick your system although you should be safe with a pram reset.
If you want to force the EFI to use the integrated graphics card, then check the following topic:
force 2011 macbook to use integrated card
. You may need to append radeon.modeset=0 to your kernel command line so that linux does not attempt to use it:
radeon.modeset=0
Grub2-EFI boot: Intel invalid ROM contents
If you see this error on boot and notice the screen output seemingly frozen, you need to disable KMS.
You have two options, use grub to disable the discrete GPU or disable the discrete GPU in the EFI.
'
use grub '
Append the following to your /etc/grub/defaults LINUX line:
i915.modeset=0 radeon.modeset=0
However, newer versions of the Xorg Intel/i915 driver require KMS to work; without it the X server will fallback to framebuffer mode, with poor performance. The underlying issue is that the Intel KMS driver selects the wrong video output; to fix this try the following settings (tested on an 8,3/17" MBP):
radeon.modeset=0 i915.modeset=1 i915.lvds_channel_mode=2
This should give you Intel graphics output. Note that this requires kernel 3.5rc1 or higher; use linux-mainline from Aur if necessary. See
this bug
for more details.
You may find you need to enable the Intel device; if using Grub, the following should enable it at boot time:
set gfxpayload=keep
# Switch gmux to IGD
outb 0x728 1
outb 0x710 2
outb 0x740 2
Alternatively, if you have OS X available you can use
gfxCardStatus
to switch to the Intel device before booting into Linux.
'
Force EFI to use integrated '
Warning
This requires that you manually write values to the efi. This may brick your system although you should be safe with a pram reset.
If you want to force the EFI to use the integrated graphics card, then check the following topic:
force 2011 macbook to use integrated card
. You may need to append radeon.modeset=0 to your kernel command line so that linux does not attempt to use it:
radeon.modeset=0
See also
Debian Wiki: Adjusting a Linux installation for Macbook 8,2 to only use an integrated graphics card (2023)