Arch Linux on Macbook Pro 8.2 (17" 2011)

Couple of tips from my experience of running Arch on Macbook 8.2.

Installation

Arch Wiki page covers installation well enough in my opinion.

Bootloader via systemd-boot

Before installing boot loader change /boot partition type to EFI System (ef00).

mkfs.fat -F32 /dev/sda1
pacman -S dosfstools
mount /dev/sda1 /mnt/boot
arch-chroot /mnt
bootctl --path=/boot instnall

Bootloader via grub

You need to have 2 partitions. /boot should be linux partition ext2. /boot/efi should be ef00 type partition of vfta32.

mount /dev/sda1 /mnt/boot
mkdir -p /mnt/boot/efi
mount /dev/sda2 /mnt/boot/efi
modprobe dm-mod
arch-chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
mkdir -p /boot/grub/locale
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
grub-mkconfig -o /boot/grub/grub.cfg

Use broadcom-wl wireless module from AUR

This is proprietary broadcom driver. Works fine with BCM4331. Only thing that does not work - hidden SSID.

OpenSource driver (that is part of the kernel) and reverse engeneered ones (b43) are too unstable in my experience.

To make sure that correct module is used by hardwrare blacklist every other module and reboot:

#/etc/modprobe.d/wl.conf
blacklist b43
blacklist b43legacy
blacklist ssb
blacklist bcm43xx
blacklist brcm80211
blacklist brcmfmac
blacklist brcmsmac
blacklist bcma

Disable Radeon GPU for better power consumption

This will reduce power usage dramatically but also will disable external screen support via display port. This laptop relies on the external gpu to work with display port.

Edit /etc/grub.d/00_header and add outb lines in between set gfxmode=${GRUB_GFXMODE} and load video:

...
set gfxmode=${GRUB_GFXMODE}
outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0
load video
...

Generate new grub config:

# grub-mkconfig -o /boot/grub/grub.cfg

PS. This post will probably grow over time.