Translation(s): none


How to install Debian/Linux on a MacBook Air 6-1 (11-inch, Mid 2013)

Macbook Air 6-1 (11-inch, Mid 2013)

Overall Status

Core Components

[ATTACH]

Boot Standard Kernel:

{OK}

LAN network card:

[?]

Detect CD/DVD:

[?]

Detect hard drives:

{OK}

Extra Features

CPU Frequency Scaling

{OK}

Hibernation

[?]

Sleep / Suspend

{i}

Xorg

{OK}

- OpenGL

{OK}

- Resize-and-Rotate(randr)

[?]

Switch to External Screen

[?]

Mouse

- Built-in (Trackpoint)

[-]

- Built-in (Touchpad)

{OK}

Modem

[-]

Wireless/Wifi

X-(

Keyboard's Hotkeys

{OK}

Sound Card

{OK}

Face Time Camera

{X}

Bluetooth Mouse

{OK}

Legend :
{OK} = OK ; {X} Unsupported(No Driver) ; /!\ = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
{i} = Configuration Required; X-( = Only works with a non-free driver and or firmware

Important Note

Installation was done with a Debian Jessie DVD image. The wireless card was configured after the minimal system was installed. Once the network was configured, the system was dist-upgraded to Debian Sid (running kernel 3.12-1-amd64).

Configuration

Display

From Apple site:

11.6-inch (diagonal) LED-backlit glossy widescreen display with support for millions of colors

Supported resolutions:

1366 by 768 (native), 1344 by 756, and 1280 by 720 pixels at 16:9 aspect ratio; 1152 by 720 and 1024 by 640 pixels at 16:10 aspect ratio; 1024 by 768 and 800 by 600 pixels at 4:3 aspect ratio

Graphics: VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])

Uses Intel i915 driver. In order to have backlight control, put script 20-intel.conf in /etc/X11/xorg.conf.d:

Section "Device"
        Identifier "Intel Graphics"
        Driver "intel"
        Option "Backlight"  "intel_backlight"
EndSection

Audio

Speakers and headphones work perfectly with kernel 3.12-1-amd64.

Mouse

Trackpad works with the multitouch features below when using the synaptics driver (xserver-xorg-input-synaptics 1.7.2-1)

If using synaptics, put script 60-touchpad.conf in /etc/xorg.conf.d

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
EndSection

Bluetooth mouse also works.

Power Management

After resume sometimes the computer is unstable, with occasional freezes. Syslog reports multiple instances of:

ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata1.00: unexpected _GTF length (8)
ata1.00: unexpected _GTF length (8)
ata1.00: configured for UDMA/33
ata1: EH complete
ata1: exception Emask 0x10 SAct 0x0 SErr 0x10000 action 0xe frozen
ata1: irq_stat 0x00400000, PHY RDY changed
ata1: SError: { PHYRdyChg }
ata1: hard resetting link

This can be cured with:

echo min_power > /sys/class/scsi_host/host0/link_power_management_policy

See bug https://bugzilla.kernel.org/show_bug.cgi?id=62351

As a workaround, put script 00_minpower in /etc/pm/sleep.d :

   1 #!/bin/bash
   2 
   3 #power save setting  on resume
   4 
   5 case "$1" in 
   6 
   7     resume)
   8 
   9         echo min_power > /sys/class/scsi_host/host0/link_power_management_policy ;;
  10 esac

In order to have suspend to RAM upon lid closure, uncomment LID_SLEEP=true in /etc/default/acpi-support.

After suspend/resume, backlight brightness adjustment not working. See related bugs:

And discussion:

Edit: there is a workaround, thanks to Patrick Jakobsson: https://bugs.freedesktop.org/show_bug.cgi?id=67454

Download and compile driver:

# git clone https://github.com/patjak/mba6x_bl
# cd mba6x_bl/ && make && make install

Add "mba6x_bl" to /etc/modules and edit /etc/X11/xorg.conf.d/20-intel.conf:

Section "Device"
        Identifier      "Intel Graphics"
        Driver          "intel"
        Option          "Backlight"     "mba6x_backlight"
EndSection

WiFi

The Broadcom BCM4360 802.11ac Wireless Network Adapter works with driver 'wl' in the dkms source for the Broadcom STA (binary-only) device driver.

Install the package broadcom-sta-dkms and load the driver 'wl'. (Tested with Jessie and Sid). "

Keyboard

In order to have dead-keys, edit /etc/default/keyboard:

XKBMODEL="apple_laptop"
XKBLAYOUT="us_intl"
XKBOPTIONS="lv3:ralt_alt,terminate:ctrl_alt_bksp"
BACKSPACE="guess"
XKBVARIANT="mac"


System Summary

lspci

00:00.0 Host bridge [0600]: Intel Corporation Haswell-ULT DRAM Controller [8086:0a04] (rev 09)
00:02.0 VGA compatible controller [0300]: Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a26] (rev 09)
00:03.0 Audio device [0403]: Intel Corporation Haswell-ULT HD Audio Controller [8086:0a0c] (rev 09)
00:14.0 USB controller [0c03]: Intel Corporation Lynx Point-LP USB xHCI HC [8086:9c31] (rev 04)
00:16.0 Communication controller [0780]: Intel Corporation Lynx Point-LP HECI #0 [8086:9c3a] (rev 04)
00:1b.0 Audio device [0403]: Intel Corporation Lynx Point-LP HD Audio Controller [8086:9c20] (rev 04)
00:1c.0 PCI bridge [0604]: Intel Corporation Lynx Point-LP PCI Express Root Port 1 [8086:9c10] (rev e4)
00:1c.1 PCI bridge [0604]: Intel Corporation Lynx Point-LP PCI Express Root Port 2 [8086:9c12] (rev e4)
00:1c.2 PCI bridge [0604]: Intel Corporation Lynx Point-LP PCI Express Root Port 3 [8086:9c14] (rev e4)
00:1c.4 PCI bridge [0604]: Intel Corporation Lynx Point-LP PCI Express Root Port 5 [8086:9c18] (rev e4)
00:1c.5 PCI bridge [0604]: Intel Corporation Lynx Point-LP PCI Express Root Port 6 [8086:9c1a] (rev e4)
00:1f.0 ISA bridge [0601]: Intel Corporation Lynx Point-LP LPC Controller [8086:9c43] (rev 04)
00:1f.3 SMBus [0c05]: Intel Corporation Lynx Point-LP SMBus Controller [8086:9c22] (rev 04)
02:00.0 Multimedia controller [0480]: Broadcom Corporation Device [14e4:1570]
03:00.0 Network controller [0280]: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03)
04:00.0 SATA controller [0106]: Marvell Technology Group Ltd. 88SS9183 PCIe SSD Controller [1b4b:9183] (rev 14)

lsusb

lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/null

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         3 
  iProduct                2 xHCI Host Controller
Bus 001 Device 003: ID 05ac:0290 Apple, Inc. 
  bDeviceClass            0 (Defined at Interface level)
  bDeviceProtocol         0 
  iProduct                2 Apple Internal Keyboard / Trackpad
      (Bus Powered)
  (Bus Powered)
Bus 001 Device 006: ID 05ac:828f Apple, Inc. 
  bDeviceClass          255 Vendor Specific Class
  bDeviceProtocol         1 
  iProduct                2 Bluetooth USB Host Controller
Bus 001 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
  bDeviceClass            9 Hub
  bDeviceProtocol         0 Full speed (or root) hub
  iProduct                2 BRCM20702 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         1 Single TT
  iProduct                2 xHCI Host Controller

Resources

Attachments

Some configuration files and sample outputs.

Some tips to improve ssd performance: http://apcmag.com/how-to-maximise-ssd-performance-with-linux.htm

Dual Boot Mac OS and Debian

Initially I had rEFIt installed, which gave the boot process: apple boot loader -> rEFIt -> grub2
So I decided to boot grub2 directly from the apple boot loader.
This how you do it:
1)First create the directory /boot/efi/EFI/BOOT
(in my case /boot/efi is the mountpoint of /dev/sda1, the EFI boot partition)
2)copy /boot/efi/EFI/debian/grubx64.efi to /boot/efi/EFI/BOOT and rename it to BOOTX64.EFI
Now the apple boot loader should be able to see BOOTX64 if the option key is pressed at boot. If you select it, grub2 is loaded.
Now to make grub2 loaded by default, boot OS X, and do the following in a terminal:

# sudo mkdir /Volumes/EFI
# sudo mount -t msdos /dev/disk0s1 /Volumes/EFI
# sudo bless --folder=/Volumes/EFI --file=/Volumes/EFI/EFI/BOOT/BOOTX64.EFI --setBoot
# sudo bless --mount "/Volumes/EFI" --setBoot

In order to boot Mac OS using grub2, add the following to /etc/grub.d/40_custom (assuming your Mac install is in /dev/sda2)

menuentry "Mac OS X"{
insmod part_gpt
insmod hfsplus
root=(hd0,gpt2)
chainloader (hd0,gpt2)/usr/standalone/i386/boot.efi
}

Credits



CategoryDebianOn