Difference between revisions of "MacBookPro8,1/8,2/8,3 (2011)"

From ArchWiki
Jump to: navigation, search
(Efi Booting without bootmanager (Efistub))
(Efi Booting without bootmanager (Efistub))
Line 153: Line 153:
 
== Efi Booting without bootmanager (Efistub) ==
 
== Efi Booting without bootmanager (Efistub) ==
  
+
 
 +
(Tested on macbook pro 8.1)
 
Since kernel 3.2, linux kernel can be booted as an efi binary from macbook firmware
 
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]
 
Forum thread: [https://bbs.archlinux.org/viewtopic.php?id=136833&p=1]

Revision as of 17:00, 20 April 2012

discuss at https://bbs.archlinux.org/viewtopic.php?pid=1021706

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)

(Tested on macbook pro 8.1) Since kernel 3.2, linux kernel can be booted as an efi binary from macbook firmware Forum thread: [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