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

From ArchWiki
Jump to: navigation, search
Line 10: Line 10:
 
{{Article summary end}}
 
{{Article summary end}}
  
This guide outlines a more recent situation of running Arch on Macbook 9,x (Mid-2012) hardware.  The original information written here dates from April 2013, installing kernel 3.8.  You'll need a wired connection to complete the initial steps of this installation.  This article is written in an attempt to cover the Macbook-specific information for both novices and veterans alike.  For general help on the install preocedure see the [[Beginners' Guide]]
+
This guide outlines a more recent situation of running Arch on Macbook 9,x (Mid-2012) hardware.  The original information written here dates from April 2013, installing kernel 3.8.  You'll need a wired connection to complete the initial steps of this installation.  For general help on the install preocedure see the [[Beginners' Guide]]
  
 
For now I assume a dual-booted install alongside OSX. Please feel free to contribute information regarding other setups.
 
For now I assume a dual-booted install alongside OSX. Please feel free to contribute information regarding other setups.
Line 17: Line 17:
  
 
{{Warning | Remember to back up your data using a utility such as Time Machine before beginning!}}
 
{{Warning | Remember to back up your data using a utility such as Time Machine before beginning!}}
 
The following steps only apply if you wish to keep your OSX system.
 
  
 
===Recording UIDs===
 
===Recording UIDs===
If you want to access your OSX user directories, write down the UID and GID for the users in question.
+
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.}}
 
{{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===
 
===Install Boot Manager===
'''Optional.''' The easiest way to begin is by [http://www.rodsbooks.com/refind/ 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 what you want simply install it later in Arch.  For more information consult [[UEFI]]
+
'''Optional.''' The easiest way to begin is by [http://www.rodsbooks.com/refind/ 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 what you want simply install it later in Arch.  For more information consult [[UEFI]].
  
 
===Shrinking Macintosh HD===
 
===Shrinking Macintosh HD===
Boot Camp now requires a Windows installation disc before altering partitions, but it is possible to do this using Mac OSX's disk utility.  Simply create a new partition, calculate the amount of free space required for all new partitions and shrink Macintosh HD to match this amount.  Since we're going to be using this for linux partitions, it's a good idea to just tell OSX to leave the new partition as free space.
+
Boot Camp now requires a Windows installation disc before altering partitions, but it is possible to do this using Mac OSX's disk utility.  Simply create a new partition, calculate the amount of free space required for all new partitions and shrink Macintosh HD to match this amount.  Leave the new partition as free space.
  
 
==Installation==
 
==Installation==
Line 73: Line 73:
  
 
===Users===
 
===Users===
If you wrote down your OSX uid's and gid's eariler, you can do the following:
+
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]
 
  # useradd -m -u [uid] -g [gid] -G [additional_groups] -s [login_shell] [username]
  
In order to be able to access your user directory in OSX, we only need the id's to match.
+
In order to be able to access a OSX user's directory, only id's need to match.
  
 
===Wireless===
 
===Wireless===
Macbooks 8,1 to 9,2 (and possibly newer) use BCM4331 for Wifi.  Linux Kernel 3.3 has led to a loss of most of the functionality - however, as of March 2013 bleeding-edge patches are available that improve the situation significantly. You'll need to install base-devel if you don't already have it.
+
Macbooks 8,1 to 9,2 (and possibly newer) use BCM4331 for Wifi.  Linux Kernel 3.3 has led to a loss of most of the functionality - however, as of March 2013 bleeding-edge patches are available that improve the situation significantly. {{ic|base-devel}} is required.
  
 
  $ 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
Line 92: Line 92:
 
Create {{ic|/etc/modules-load.d/b43.conf}} and simply write {{ic|b43}} to load wireless at startup.
 
Create {{ic|/etc/modules-load.d/b43.conf}} and simply write {{ic|b43}} to load wireless at startup.
  
Then, install {{AUR|b43-firmware}} from AUR. From there on in, wifi configuration should proceed normally - once you've got it working you can disconnect your wired connection.
+
Then, install {{AUR|b43-firmware}} from [[AUR]] and reboot. From here on in, wifi configuration should proceed normally - once it's working the wired connection may be disconnected.
  
{{note|You may want to have a wired connection handy in case wifi fails, since this is an unsupported bleeding-edge solution}}
+
{{note|Since this is a bleeding-edge fix, it's probably a good idea to keep a wired connection handy in case something goes horribly wrong.}}
 +
 
 +
===Xorg===
 +
Main Page: [[Xorg]]
 +
 
 +
Install {{ic|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 {{ic|xf86-input-synaptics}} is needed in order to use the built-in touchpad.  More on this in the "Bells & Whistles" section.
  
 
==Bells & Whistles==
 
==Bells & Whistles==
<TODO>
+
 
 +
===Emulating OSX Touchpad Gestures===
 +
With a little bit of work it's possible to tweak the multitouch options on the track.
 +
 
 +
====Using synclient====
 +
{{ic|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 {{ic|synclient -l}} to have a look at all the available options.  Here are some OSX-like suggestions:
 +
 
 +
* 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.
 +
* 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}}.
 +
 
 +
To make settings permanent, just modify {{ic|/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 {{ic|/usr/local/bin/synarea.sh}}, write the required synclient commands, and add the script to the X startup sequence.}}
 +
 
 +
====Using Touchegg====
 +
[code.google.com/projects/touchegg Touchegg] is an application that can recognize additional gestures.  To use this you'll need {{AUR|xf86-input-synaptics-mtpatch}}.

Revision as of 03:32, 11 April 2013

Summary help replacing me
Running Arch on Mid-2012 hardware
Related
MacBook
MacBookPro
MacBook_Pro_7,1
MacBook_Pro_8,1_/_8,2_/_8,3_(2011_Macbook_Pro)
MacBook_Pro_9,2_(Mid-2012)

This guide outlines a more recent situation of running Arch on Macbook 9,x (Mid-2012) hardware. The original information written here dates from April 2013, installing kernel 3.8. You'll need a wired connection to complete the initial steps of this installation. For general help on the install preocedure see the Beginners' Guide

For now I assume a dual-booted install alongside OSX. Please feel free to contribute information regarding other setups.

Preparation

Warning: Remember to back up your data using a utility such as Time Machine before beginning!

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 what you want simply install it later in Arch. For more information consult UEFI.

Shrinking Macintosh HD

Boot Camp now requires a Windows installation disc before altering partitions, but it is possible to do this using Mac OSX's disk utility. Simply create a new partition, calculate the amount of free space required for all new partitions and shrink Macintosh HD to match this amount. Leave the new partition as free space.

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 either Beginners' Guide/Installation or 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

partition  mountpoint  size       type  label
/dev/sda1  /boot/efi   200MiB     vfat  EFI
/dev/sda2  -           ?          hfs+  Mac OS X
/dev/sda3  -           ?          hfs+  Recovery
/dev/sda4  -           100MiB     hfs+  Boot Arch Linux from the Apple boot loader (optional)
/dev/sda5  /boot       100MiB     boot  boot
/dev/sda6  -           ?          swap  swap (optional)
/dev/sda7  /           10GiB      ext4  root
/dev/sda8  /home       remaining  ext4  home

Single-boot setups can simply omit the OSX and Recovery partitions.

Install Bootloader

Use GRUB2#UEFI_systems_2 for more information.

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

# pacman -S grub-efi-x86_64

# 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
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo


Post Installation

Continue with Beginners' Guide/Post-installation or Installation Guide#Post-installation.

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 id's need to match.

Wireless

Macbooks 8,1 to 9,2 (and possibly newer) use BCM4331 for Wifi. Linux Kernel 3.3 has led to a loss of most of the functionality - however, as of March 2013 bleeding-edge patches are available that improve the situation significantly. base-devel is required.

$ 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 simply write b43 to load wireless at startup.

Then, 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.

Note: Since this is a bleeding-edge fix, it's probably a good idea to keep a wired connection handy in case something goes horribly wrong.

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. More on this in the "Bells & Whistles" section.

Bells & Whistles

Emulating OSX Touchpad Gestures

With a little bit of work it's possible to tweak the multitouch options on the track.

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 OSX-like suggestions:

  • 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 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, write the required synclient commands, and add the script to the X startup sequence.

Using Touchegg

[code.google.com/projects/touchegg Touchegg] is an application that can recognize additional gestures. To use this you'll need xf86-input-synaptics-mtpatchAUR.