Difference between revisions of "MacBookPro9,2 (Mid-2012)"

From ArchWiki
Jump to: navigation, search
(rEFInd: wrong path)
 
(28 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
[[Category:Apple]]
 
[[Category:Apple]]
{{Article summary start}}
+
{{Related articles start}}
{{Article summary text|Running Arch on Mid-2012 hardware}}
+
{{Related|MacBook}}
{{Article summary heading|Related}}
+
{{Related|MacBookPro7,1}}
{{Article summary wiki|MacBook}}
+
{{Related|MacBookPro8,1/8,2/8,3 (2011)}}
{{Article summary wiki|MacBook Pro 7,1}}
+
{{Related|MacBookPro9,2 (Mid-2012)}}
{{Article summary wiki|MacBook Pro 8,1 / 8,2 / 8,3 (2011)}}
+
{{Related articles end}}
{{Article summary wiki|MacBook Pro 9,2 (Mid-2012)}}
+
{{Article summary end}}
+
  
 
This guide outlines special information on installing and configuring Arch on the more recent Macbook 9,x (Mid-2012) hardware alongside a pre-existing OSX operating system.  This requires adequate free disk space, install media (such as a USB or CD), and a wired connection for the initial steps of the install procedure.   
 
This guide outlines special information on installing and configuring Arch on the more recent Macbook 9,x (Mid-2012) hardware alongside a pre-existing OSX operating system.  This requires adequate free disk space, install media (such as a USB or CD), and a wired connection for the initial steps of the install procedure.   
Line 13: Line 11:
 
This article is written with a dual-boot setup in mind, and does ''not'' cover how to replace OSX with Arch.
 
This article is written with a dual-boot setup in mind, and does ''not'' cover how to replace OSX with Arch.
  
For general help on the install preocedure see the [[Beginners' Guide]]
+
For general help on the install preocedure see the [[Installation guide]]
  
 
{{note|Remember to back up your pre-existing OSX installation before proceeding!}}
 
{{note|Remember to back up your pre-existing OSX installation before proceeding!}}
Line 38: Line 36:
  
 
===Running the Arch Installation===
 
===Running the Arch Installation===
Proceed from the Installation section in either [[Beginners' Guide/Installation]] or [[Installation Guide#Installation]]. Note that you'll need a wired connection to continue for now.
+
Proceed from the Installation section in [[Installation guide#Installation]]. Note that you'll need a wired connection to continue for now.
  
 
The following differences will apply to MacBooks:
 
The following differences will apply to MacBooks:
Line 54: Line 52:
 
  /dev/sda7  ?          ?          ?    shared (optional)
 
  /dev/sda7  ?          ?          ?    shared (optional)
  
For sharing files between OSX and Linux, a number of filesystem options exist.  FAT32 is natively supported on all systems - however, it lacks support for filesystems larger than 2TB or files larger than 4GB.  Journaled HFS+ partitions, such as the Macintosh HD partition, will only mount read-only in Linux.  Full read-write support is available for unjournaled HFS+ filesystems.  ExFAT support can be made available by installing {{Pkg|fuse-exfat}} and {{Pkg|exfat-utils}}.
+
For sharing files between OSX and Linux, a number of filesystem options exist.  FAT32 is natively supported on all systems - however, it lacks support for filesystems larger than 2TB or files larger than 4GB.  Journaled HFS+ partitions, such as the Macintosh HD partition, will only mount read-only in Linux.  Full read-write support is available for unjournaled HFS+ filesystems.  ExFAT support can be made available by installing {{Pkg|exfat-utils}}.
  
 
====Install Bootloader====
 
====Install Bootloader====
Use [[GRUB2#UEFI_systems_2]] for more information.
+
Use [[GRUB2#UEFI systems]] for more information.
  
 
After setting up the base system, do the following in your chrooted environment:
 
After setting up the base system, do the following in your chrooted environment:
 
  # pacman -S grub-efi-x86_64
 
  # pacman -S grub-efi-x86_64
 +
# pacman -S efibootmgr
 
   
 
   
 
  # mkdir -p /boot/efi
 
  # mkdir -p /boot/efi
Line 67: Line 66:
 
  # modprobe dm-mod
 
  # modprobe dm-mod
 
  # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
 
  # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
 +
# mkdir -p /boot/grub/locale (this may already exist)
 +
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
 +
 +
====Note about Macbook Pro 9,1 and 9,2====
 +
For Macbook Pro 9,1 users, the process is similar.
 +
# pacman -S grub-efi-x86_64 efibootmgr
 +
 +
# mkdir -p /boot/efi
 +
# mount -t vfat /dev/sda1 /boot/efi
 +
 +
# modprobe dm-mod
 +
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
 +
# grub-mkconfig -o /boot/grub/grub.cfg (may not be necessary for 9,2)
 
  # mkdir -p /boot/grub/locale
 
  # mkdir -p /boot/grub/locale
 
  # cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
 
  # cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
  
 +
The only difference is installing efibootmgr (required for 9,2) and running grub-mkconfig (may not be required for 9,2)
 +
 +
====rEFInd====
 +
Alternatively you can use rEFInd as your boot manager. Very simple installation as the refind-install script does everything for you.
 +
 +
# pacman -S refind-efi
 +
# refind-install
 +
 +
Configure /boot/EFI/refind/refind.conf and uncomment the scan line and edit to reflect the below values for mac.
 +
 +
scanfor internal,hdbios,external,biosexternal,optical,cd,manual
 +
 +
If you are seeing a slow bootup (30s) move rEFInd to the fallback efi boot path.
 +
 +
# mv /boot/EFI/refind /boot/EFI/BOOT
 +
# mv /boot/EFI/BOOT/refind_x64.efi /boot/EFI/BOOT/bootx64.efi
 +
 +
If you are having problems check the efi boot order with efibootmgr.
 +
 +
# efibootmgr -v
  
 
==Post Installation==
 
==Post Installation==
Continue with [[Beginners' Guide/Post-installation]] or [[Installation Guide#Post-installation]], noting the following modifications:
+
Continue with [[General recommendations]], noting the following modifications:
 +
 
 +
===SD Card Reader===
 +
The sdcard reader does not work properly with the highest speeds currently and may never work properly. To get it working you will have to sacrifice the ultra fast modes and use a quirk in your boot parameters.
 +
 
 +
sdhci.debug_quirks2=4
  
 
===Users===
 
===Users===
Line 85: Line 122:
  
 
====b43====
 
====b43====
 +
{{warning|compat-drivers is outdated and was renamed to [http://wireless.kernel.org/en/users/Download/stable/ backports].}}
 +
 
  $ curl -O https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/28/compat-drivers-2013-03-28-5.tar.bz2
 
  $ curl -O https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/28/compat-drivers-2013-03-28-5.tar.bz2
 
  $ tar xjf compat-drivers-2013-03-28-5.tar.bz2
 
  $ tar xjf compat-drivers-2013-03-28-5.tar.bz2
Line 100: Line 139:
 
''more to come.''
 
''more to come.''
  
Install {{Pkg|dkms}} from the offical repositories, then Install {{AUR|broadcom-wl-dkms}} from [[AUR]] and reboot.  
+
Download, extract, and install {{AUR|broadcom-wl}} from [[AUR]] and reboot.
 +
 
 +
====Wireless Flakiness====
 +
The only connection manager combination with BCM4331 that doesn't result in flakiness seems to be connman + disabled background scanning.
 +
 
 +
/etc/connman/main.conf
 +
[General]
 +
BackgroundScanning = false
  
 
===Xorg===
 
===Xorg===
Line 119: Line 165:
 
Run {{ic|synclient -l}} to have a look at all the available options.  Here are some suggestions which resemble the options found in OSX's System Preferences:
 
Run {{ic|synclient -l}} to have a look at all the available options.  Here are some suggestions which resemble the options found in OSX'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. {{ic|synclient TapAndDragGesture}} will turn this off.
+
* 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. {{ic|1=synclient TapAndDragGesture=0}} will turn this off.
 
* TapButtonX and ClickFingerX sets the mouse button triggered by tapping or clicking with X fingers.  set {{ic|1=TapButton2=3}} and {{ic|1=ClickFinger2=3}} to assign two-finger click to the right mouse button.
 
* TapButtonX and ClickFingerX sets the mouse button triggered by tapping or clicking with X fingers.  set {{ic|1=TapButton2=3}} and {{ic|1=ClickFinger2=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 {{ic|RightEdge}} and {{ic|BottomEdge}} and plugging the new values into {{ic|RightButtonAreaLeft}} and {{ic|RightButtonAreaTop}}.  If the last two options are not visible, set {{ic|1=Clickpad=1}}.
 
* Setting the bottom-right corner click to right mouse button can be done by subtracting about 500 from {{ic|RightEdge}} and {{ic|BottomEdge}} and plugging the new values into {{ic|RightButtonAreaLeft}} and {{ic|RightButtonAreaTop}}.  If the last two options are not visible, set {{ic|1=Clickpad=1}}.
Line 128: Line 174:
  
 
====Using Touchegg====
 
====Using Touchegg====
{{AUR|touchegg}} is an application that can recognize additional gestures.  To use this you'll need to replace the synaptics driver with {{AUR|xf86-input-synaptics-mtpatch}}.
+
{{AUR|touchegg}} from the [[AUR]] is an application which can recognize additional gestures.  To use this you'll need to replace the synaptics driver with {{AUR|xf86-input-synaptics-mtpatch}}{{Broken package link|{{aur-mirror|xf86-input-synaptics-mtpatch}}}}. See however [https://bbs.archlinux.org/viewtopic.php?pid=1502743#p1502743].
  
 
{{Hc|head=$(HOME)/.config/touchegg/touchegg.conf|output=
 
{{Hc|head=$(HOME)/.config/touchegg/touchegg.conf|output=

Latest revision as of 09:14, 13 November 2016

Related articles

This guide outlines special information on installing and configuring Arch on the more recent Macbook 9,x (Mid-2012) hardware alongside a pre-existing OSX operating system. This requires adequate free disk space, install media (such as a USB or CD), and a wired connection for the initial steps of the install procedure.

This article is written with a dual-boot setup in mind, and does not cover how to replace OSX with Arch.

For general help on the install preocedure see the Installation guide

Note: Remember to back up your pre-existing OSX installation before proceeding!

Preparation

Recording UIDs

If you want to access your OSX user directories from Linux, write down the UID and GID for the users.

Note: OSX begins with the first user's UID at 501 while Arch defaults to 1000.
Warning: Never, ever change any file permissions in your OSX partition from Linux. Doing so can and will lead to serious repercussions.

Install Boot Manager

Optional. The easiest way to begin is by installing rEFInd on Mac OSX before moving on to Arch. This will place a boot menu on startup. The config will be in your OSX partition - if this is not desirable it is possible to install it later in Arch. For more information consult UEFI.

Shrinking Macintosh HD

Although nowadays Boot Camp requires a Windows installation disc before altering partitions, it is possible to do this using Mac OSX's 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

Preparing Installation Media

Download Arch and burn it to a USB, CD or DVD, and boot into the Arch install.

Running the Arch Installation

Proceed from the Installation section in Installation guide#Installation. Note that you'll need a wired connection to continue for now.

The following differences will apply to MacBooks:

Sample partition layout

Note: Apple prefers having 128MB of unallocated space between partitions. Whether or not this is completely necessary is uncertain, but if it seems like there is more than enough space available, then creating this buffer of free space may be a good idea.
partition  mountpoint  size       type  label
/dev/sda1  /boot/efi   200MiB     vfat  EFI
/dev/sda2  -           ?          hfs+  Mac OS X
/dev/sda3  -           ?          hfs+  Recovery
/dev/sda4  /boot       100MiB     boot  boot
/dev/sda5  /           10GiB      ext4  root
/dev/sda6  /home       remaining  ext4  home (optional)
/dev/sda7  ?           ?          ?     shared (optional)

For sharing files between OSX and Linux, a number of filesystem options exist. FAT32 is natively supported on all systems - however, it lacks support for filesystems larger than 2TB or files larger than 4GB. Journaled HFS+ partitions, such as the Macintosh HD partition, will only mount read-only in Linux. Full read-write support is available for unjournaled HFS+ filesystems. ExFAT support can be made available by installing exfat-utils.

Install Bootloader

Use GRUB2#UEFI systems for more information.

After setting up the base system, do the following in your chrooted environment:

# pacman -S grub-efi-x86_64
# pacman -S efibootmgr

# mkdir -p /boot/efi
# mount -t vfat /dev/sda1 /boot/efi

# modprobe dm-mod
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
# mkdir -p /boot/grub/locale (this may already exist)
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

Note about Macbook Pro 9,1 and 9,2

For Macbook Pro 9,1 users, the process is similar.

# pacman -S grub-efi-x86_64 efibootmgr

# mkdir -p /boot/efi
# mount -t vfat /dev/sda1 /boot/efi

# modprobe dm-mod
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
# grub-mkconfig -o /boot/grub/grub.cfg (may not be necessary for 9,2)
# mkdir -p /boot/grub/locale
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

The only difference is installing efibootmgr (required for 9,2) and running grub-mkconfig (may not be required for 9,2)

rEFInd

Alternatively you can use rEFInd as your boot manager. Very simple installation as the refind-install script does everything for you.

# pacman -S refind-efi
# refind-install

Configure /boot/EFI/refind/refind.conf and uncomment the scan line and edit to reflect the below values for mac.

scanfor internal,hdbios,external,biosexternal,optical,cd,manual

If you are seeing a slow bootup (30s) move rEFInd to the fallback efi boot path.

# mv /boot/EFI/refind /boot/EFI/BOOT
# mv /boot/EFI/BOOT/refind_x64.efi /boot/EFI/BOOT/bootx64.efi

If you are having problems check the efi boot order with efibootmgr.

# efibootmgr -v

Post Installation

Continue with General recommendations, noting the following modifications:

SD Card Reader

The sdcard reader does not work properly with the highest speeds currently and may never work properly. To get it working you will have to sacrifice the ultra fast modes and use a quirk in your boot parameters.

sdhci.debug_quirks2=4

Users

If you wrote down your OSX uid's and gid's eariler, 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 OSX user's directory, only the uid and gid need to match. (usernames can differ)

Wireless

Macbooks 8,1 to 9,2 (and possibly newer) use BCM4331 for Wifi. As of June 2013 two options are available, the open source b43 driver and Broadcom's proprietary wl driver.

b43

Warning: compat-drivers is outdated and was renamed to backports.
$ curl -O https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/28/compat-drivers-2013-03-28-5.tar.bz2
$ tar xjf compat-drivers-2013-03-28-5.tar.bz2
$ cd compat-drivers-2013-03-28-5

$ scripts/driver-select b43
$ make
$ sudo make install

Create /etc/modules-load.d/b43.conf and write b43 to load wireless at startup.

Install b43-firmwareAUR from AUR and reboot. From here on in, wifi configuration should proceed normally - once it's working the wired connection may be disconnected.

wl

more to come.

Download, extract, and install broadcom-wlAUR from AUR and reboot.

Wireless Flakiness

The only connection manager combination with BCM4331 that doesn't result in flakiness seems to be connman + disabled background scanning.

/etc/connman/main.conf
[General]
BackgroundScanning = false

Xorg

Main Page: Xorg

Install xf86-video-intel and setup Xorg as you normally would.

The built-in keyboard and most usb input devices will work out-of-the-box, but xf86-input-synaptics is needed in order to use the built-in touchpad.

Bells & Whistles

Emulating OSX Touchpad Gestures

With a little bit of work it's possible to tweak the multitouch options on the trackpad. This can be achieved with a combination of X11 driver settings and open source software.

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 OSX 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 OSX'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 and ClickFinger2=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 and BottomEdge and plugging the new values into RightButtonAreaLeft and RightButtonAreaTop. If the last two options are not visible, set Clickpad=1.

To make settings permanent, just modify /etc/X11/xorg.conf.d/10-synaptics.conf.

Note: Right/Middle ButtonArea options are only recognized once the X fully loads the driver. To work around this, create a script file /usr/local/bin/synarea.sh with the required synclient commands, and add the script to the X startup sequence.

Using Touchegg

toucheggAUR from the AUR is an application which can recognize additional gestures. To use this you'll need to replace the synaptics driver with xf86-input-synaptics-mtpatchAUR[broken link: archived in aur-mirror]. See however [1].

$(HOME)/.config/touchegg/touchegg.conf
...
<application name="All">
        ...
        <gesture type="DRAG" fingers="3" direction="ALL">
                <action type="DRAG_AND_DROP"></action>
        </gesture>
        ...
</application>
...