MacBookPro8,1/8,2/8,3 (2011)
discuss at https://bbs.archlinux.org/viewtopic.php?pid=1021706
Contents
Installation CD
use latest version in http://releng.archlinux.org/isos/
Network
Wireless:
For 3.1 Kernel:
Install b43-firmware-latestAUR from the AUR.
download the latest package from http://linuxwireless.org/download/compat-wireless-2.6/
$ cd compat-wireless-2011-10-09 $ scripts/driver-select b43 $ make $ sudo make install $ sudo make wlunload $ sudo rmmod bcma $ modprobe b43 # it should works.
add 'blacklist bcma' to '/etc/modprobe.d/modprobe.conf'
Note that after every kernel update you will have to recompile the module for the new kernel:
$ cd compat-wireless-2011-10-09 $ make clean $ make $ sudo make install
more see https://bbs.archlinux.org/viewtopic.php?id=129849
For 3.2 Kernel:
Install compat-wireless-patchedAUR and b43-firmware-latestAUR packages from the AUR. Note that b43-firmware-latest depends on 'linux<3.2', so change that to read 'linux>3.2' in the PKGBUILD.
Unload bcma module and load b43 module
# rmmod bcma # modprobe b43
That's it. The wireless should work now.
For 3.3 Kernel:
Install b43-firmware-latestAUR package from the AUR. Note that b43-firmware-latest depends on 'linux<3.2', so change that to read 'linux>3.2' in the PKGBUILD.
Unload b43 and bcma modules and load b43 module
# rmmod b43 bcma # modprobe b43
That's it. The wireless should work now.
Ethernet: works out-of-the-box
Bluetooth: Unkown
Keyboard & TouchPad
Keyboard:
default F1 key represents XF86MonBrightnessDown, if you want it represents to F1.
echo 2 > /sys/module/hid_apple/parameters/fnmode # value 1: F1 is XF86MonBrightnessDown # value 2: F1 is F1, Fn + F1 is XF86MonBrightnessDown.
and put that into /etc/rc.local
Touchpad:
Two finger scrolling and left-click works out of the box. Unfortunately the right-click is not functional.
To enable most of the multitouch touchpad features (even right and middle clik) use mtrack, which is avaible in 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.
Video & Screen
13-inch
Intel HD Graphics 3000: works with xf86-video-intel
Adjust Brightness: works with xorg-xbacklight For example:
xbacklight -inc 7 # increase brightness xbacklight -dec 7 # decrease brightness
15-inch and 17-inch
AMD Radeon HD 6490M: Unknown
AMD Radeon HD 6750M: works with xf86-video-ati
Adjust Brightness: install AUR package apple-bl-gmuxAUR and reboot system.
$ echo 34839 | sudo tee /sys/class/backlight/gmux_backlight/brightness
Sound
8,1 and 8,2
$ alsamixer # unmute 'Front Speaker' and 'Surround Speaker'
Suspend & Hibernate
8,1
For s2ram install uswsusp-git 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), as written in this blog post. The solution is to do the following:
# rmmod b43
pair your bluetooth device
# modprobe b43
Alternative solution
Create /etc/modprobe.d/b43.conf
with the following content:
options b43 btcoex=0
Webcam
In order to use your webcam you need to have permission to use /dev/video0.
# gpasswd -a <username> video
Test to see if it works
$ mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 15 -vf screenshot
Others that works-out-of-the-box
- Sensors
Efi Booting without bootmanager (Efistub)
Since kernel 3.2, linux kernel can be booted as an efi binary from macbook firmware Forum thread: https://bbs.archlinux.org/viewtopic.php?id=136833&p=1
Install Efibootmgr
- pacman -S efibootmgr
Mount Efi partition
- mkdir /mnt/efi
- mount /dev/sda1 /mnt/efi
Copy linux kernel to Efi Partition
- mkdir -p /mnt/efi/efi/boot
- cp /boot/vmlinuz-linux /mnt/efi/efi/boot/bootx64.efi
- cp /boot/initramfs-linux.img /mnt/efi/efi/boot
- cp /boot/initramfs-linux-fallback.img /mnt/efi/efi/boot
Add Archlinux-fallback entry to firmware
- echo "initrd=\efi\boot\initramfs-linux-fallback.img add_efi_memmap root=/dev/disk/by-label/ArchLinux ro quiet i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 usbcore.autosuspend=1 hpet=force" | iconv -f ascii -t ucs2 | efibootmgr --create --gpt --disk /dev/sda --part 1 --label "Archlinux Fallback" --loader '\efi\boot\bootx64.efi' --append-binary-args -
Add Archlinux entry to firmware
- echo "initrd=\efi\boot\initramfs-linux.img add_efi_memmap root=/dev/disk/by-label/ArchLinux ro quiet i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 usbcore.autosuspend=1 hpet=force" | iconv -f ascii -t ucs2 | efibootmgr --create --gpt --disk /dev/sda --part 1 --label "Archlinux" --loader '\efi\boot\bootx64.efi' --append-binary-args