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) Screen size 11"
Overall Status
Core Components |
||
Boot Standard Kernel: |
|
|
LAN network card: |
[?] |
|
Detect CD/DVD: |
[?] |
|
Detect hard drives: |
|
|
Extra Features |
||
CPU Frequency Scaling |
|
|
Hibernation |
[?] |
|
Sleep / Suspend |
|
|
Xorg |
|
|
- OpenGL |
|
|
- Resize-and-Rotate(randr) |
[?] |
|
Switch to External Screen |
[?] |
|
Mouse |
|
|
- Built-in (Trackpoint) |
[-] |
|
- Built-in (Touchpad) |
|
|
Modem |
[-] |
|
Wireless/Wifi |
|
|
Keyboard's Hotkeys |
|
|
Sound Card |
|
|
Face Time Camera |
|
|
Bluetooth Mouse |
|
Legend :
= OK ;
Unsupported(No Driver) ;
= Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
= Configuration Required;
= 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])
- Subsystem: Apple Inc. Device 011a
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
- Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09) Kernel driver in use: snd_hda_intel
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)
- one-finger-tap corresponds to left mouse button
- two-finter-tap corresponds to right mouse button
- three-finger-tap corresponds to middle-click (paste function)
- two-finger drag corresponds to vertical scroll
- No three-finger drag.
- Tap-to-drag functionality.
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 :
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.
Useful Links
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