These instructions cover the late 2010 MacBookAir3,1 and MacBookAir3,2 models. Most of the information in this article is derived from the Ubuntu Forums.
Installation works using the Apple Superdrive, additional steps may be required for other installation methods.
But, when you boot the Ubuntu disc and see the purple screen with a keyboard picture at the bottom, press a button on the keyboard to bring up the menu. Select your language, then press F6 for other options, turn on "nomodeset", press Esc and select try ubuntu.
- Note: nomodeset works around a graphics problem which we'll see in a bit.
- Trouble Shooting: If you get a GRUB screen when booting the 64 bit version, and it fails to boot from the disc, then hold down the Alt key when powering on, you should see a "Windows" and an "EFI boot" option for the disc, select the "Windows" option and you should get the familiar purple screen.
In the installation, be sure to select "Install this third party software" (otherwise the wireless may not work).
When you reboot the machine, and after the disc ejects, the system may fail to actually reboot, we'll fix this later. For now, just hold down the power button to switch it off and turn it back on.
- Trouble Shooting: After a reboot you may encounter a few seconds of the GRUB bootloader menu. If you don't do anything, chances are you may end up with a black screen and nothing happens. If so, shut down by pressing the power button. Reboot again, go to the GRUB menu again, but this time, press "e" on your keyboard to edit the boot options. You will see that the boot option has reverted back to "quiet splash". You will want to replace it with "nomodeset" again. And then Ubuntu will boot up properly with graphics (which are not yet optimized for your screen).
Now if you can suffer the serious graphic problem for a couple of minutes and login, then setup an internet connection. Once you have internet access, go to System > Administration > Additional Drivers. You may need to reboot the machine before anything appears in the driver list. Select the NVIDIA driver and click install. Once it's installed, reboot the computer. You can stop squinting at the screen in pain now.
Now add the Mactell PPA to your system and install some packages. Open a terminal and run:
sudo add-apt-repository ppa:mactel-support/ppa sudo apt-get update sudo apt-get install btusb-dkms applesmc-dkms hid-apple-dkms bcm5974-dkms xf86-input-multitouch snd-hda-dkms mbp-nvidia-bl-dkms -y
Now edit /etc/modules:
sudo gedit /etc/modules
and add the line
Now you need to edit the xorg.conf file:
sudo gedit /etc/X11/xorg.conf
Find the Device Section for the Nvidia driver and add this line to the end of the section:
Option "RegistryDwords" "EnableBrightnessControl=1"
The block should now look like this:
Section "Device" Identifier "Default Device" Driver "nvidia" Option "NoLogo" "True" Option "RegistryDwords" "EnableBrightnessControl=1" EndSection
Also add the following to the end of the file:
Section "InputClass" MatchIsTouchpad "true" Identifier "Multitouch Touchpad" Driver "multitouch" EndSection
Fix backlight problem after suspend:
sudo cp /usr/lib/pm-utils/defaults /etc/pm/config.d/defaults sudo gedit /etc/pm/config.d/defaults
Change the lines:
#HIBERNATE_RESUME_POST_VIDEO="no" # SUSPEND_MODULES="" # ADD_PARAMETERS="" # DROP_PARAMETERS=""
HIBERNATE_RESUME_POST_VIDEO="yes" SUSPEND_MODULES="mbp-nvidia-bl" ADD_PARAMETERS="--quirk-reset-brightness" DROP_PARAMETERS="--quirk-none"
Nearly there, we just need to change some boot parameters now:
sudo gedit /etc/default/grub
Change the line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash reboot=pci acpi_backlight=vendor"
Now, finally run:
Apple uses 6-bit LCDs which support only 262144 colours instead of 16 million. So we need to enable dithering at 6 bits per colour channel to smooth colour gradients.
Assuming you use gdm (the default) as login manager, run:
sudo gedit /etc/gdm/Init/Default
Add to the end of the file, but above the exit 0 line:
/usr/bin/nvidia-settings -a [gpu:0]/Dithering[DFP-2]=1 /usr/bin/nvidia-settings -a [gpu:0]/DitheringDepth[DFP-2]=1
After rebooting, this should enable multitouch support for the trackpad, hotkeys, bluetooth, speakers, microphone and backlight, as well as fix the reboot problem and improve the screen display.
If you can't hear anything, run alsamixer. Use the left/right keys to select "Front Speakers" and press the M key to enable it, and the up/down keys to adjust the volume.
macfanctld (MAC fan control daemon) uses applesmc-dkms to take the temperatures of sensors inside the computer and set the fan speed accordingly. Two of those sensors, TCZ3 and TGZ3, falsely oscillate between 0 and 255 degrees C causing macfanctld to toggle the fan on and off. The following instructions describe how to instruct macfanctld to ignore the input from said sensors, allowing the fan to operate normally:
Ensure the macfanctld is stopped with sudo /etc/init.d/macfanctld stop.
Run macfanctld -f to obtain the list of sensors and their associated ID numbers.
Open /etc/macfanctl.conf and add the numbers for TCZ3 and TGZ3 sensors to the "exclude" list. (Mine were 8 and 14 respectively. Ex: exclude: 8 14. Note it's "exclude" and not "excluded".)
Run macfanctld -f | grep exclude and confirm temp*_input are printed in the list.
Restart the fan control daemon with sudo /etc/init.d/macfanctld start.
- Trouble Shooting: Not sure if you need to install the package "macfanctld" first from either Synaptics or doing "sudo apt-get install macfanctld" at the Terminal.
Headphones work out of the box. Speakers may or may not work after following post-install instructions. If not, at the terminal type:
sudo gedit /etc/modprobe.d/alsa-base.conf
Insert this line at the end of the file: options snd-hda-intel model=mba31. The last item model=mba31 assumes that you have a MacbookAir 3,1. Restart Ubuntu. Start up a terminal, run alsamixer and use arrow keys to select Front Speaker and press m, then all is good sound-wise.
Multitouch works after following post-install instructions.
Hotkeys work after following post-install instructions. You can swap the behaviour of the Fn key by running:
sudo nano /etc/rc.local
Then adding this line to the file (before the exit line):
echo 2 > /sys/module/hid_apple/parameters/fnmode
You can change the number to 0 = disabled, 1 = fkeyslast, 2 = fkeysfirst.
F11 and F12 keys
F11 and F12 are used for mouse emulation. If you want them to function as regular F11 and F12 again you'll have to uninstall the 'mouseemu' package
sudo apt-get uninstall mouseemu
Out of the box support, using a proprietary driver.
If the network is really slow you might be experiencing problems with the power management of the network interface as discussed in this thread: http://ubuntuforums.org/showthread.php?t=1603365&page=30
The quick solution is to turn off the power management:
sudo iwconfig eth0 power off
If you want to make the change permanently:
sudo gedit /etc/pm/power.d/wireless
/sbin/iwconfig eth0 power off
Make this script executable:
sudo chmod +x /etc/pm/power.d/wireless
Backlight can be adjusted after following the post-install instructions.
Tips and Tricks
A collection of helpful tips for the Macbook Air.
You can also calibrate the display. Run:
sudo apt-get install xcalib sudo mkdir /etc/xcalib/
Then if you used a dual-boot setup and still have OS X installed, run:
sudo mkdir /media/OSX sudo mount -o ro /dev/sda2 /media/OSX sudo cp /media/OSX/Library/ColorSync/Profiles/Displays/Color\ LCD-00000610-0000-9CF3-0000-000004273CC0.icc /etc/xcalib/colorprofile.icc sudo umount /media/OSX
Once again if you use gdm as login manager, run:
sudo gedit /etc/gdm/Init/Default
Then add this line with the other lines:
So, the end of the file should look like this now:
/usr/bin/xcalib /etc/xcalib/colorprofile.icc /usr/bin/nvidia-settings -a [gpu:0]/Dithering[DFP-2]=1 /usr/bin/nvidia-settings -a [gpu:0]/DitheringDepth[DFP-2]=1 exit 0
Avoid long EFI wait before GRUB
If your Macbook spends 30 seconds with "white screen" before GRUB shows, try booting from your Mac OS X install disc, select language, then click Utilities->Terminal, and enter:
bless --device /dev/disk0s1 --setBoot --legacy
Assuming that the bootloader is on sda1, otherwise /dev/disk0s2 if it's on sda2, etc.
You may have noticed that some keys are missing from the keyboard. Most of these can be accessed with the Fn key:
No PrintScr key? Go to System > Preferences > Keyboard Shortcuts, then find the "Take a Screenshot" entry and set it to another key. I set mine to the eject key (after disabling the eject shortcut), the eject key is hardly useful on the Air anyway (you can run 'eject' from the command line in the rare case you need it for the Superdrive).