Macbook Air (6,1) 2013 model with Ubuntu

August 31, 2013

linux

Assorted notes, not a step-by-step HOWTO!

How to get Ubuntu Raring (13.04) up and running on your shining new MacbookAir. Note some things are not working (yet). This is with 3.11:

Expectation for 3.12 (when released), everything is working, except:

  • backlight only on/off after resume;
  • no working iSight camera.

Links that may come in handy:

Installation

Repartition from inside OS X, with the disk util tool (can’t remember the name) from Mac OS X, just leave enough free space for a swap partition and some Linux paritions.

Download the normal Ubuntu image and get it on an USB stick, boot from that. For Apple hardware this means holding the Alt (option) key during boot and then selecting the USB stick for booting. You can then install the OS. After the installation reboot. Hold the Alt key again and select Windows (yeah, yeah)… this will bring you to the grub menu from where you can boot Ubuntu.

Note: Doing this install results in a non-EFI install, which is bad, because, among other things, booting without nosmp will fail…

To fix the above you’ll need to add nosmp to the kernel parameters when booting Ubuntu. You can easily convert it to an EFI type boot later, but first fix the network, because the Broadcom chip has a closed source driver… Also see this German site for some pointers about this.

You can optionally edit /etc/default/grub and add nosmp to the file, because without it won’t boot (this is removed later).

Post installation

Download the closed source driver from Ubuntu, and now you’ll need another Ubuntu system to actually build the .deb. You can of course build it on this MacbookAir, but you’ll need a bunch of dependencies and your network isn’t working….

When you have the .deb copy it over and install it, also copy over any missing dependencies it wants (dkms comes to mind). As this says, this install “hangs”, abort with ^C, reboot and try again, now it will work (?!?!?!). Reboot again: your network is working.

Converting to EFI

Follow this HOWTO from Ubuntu to convert to EFI. You don’t need to create any partitions, the one from Mac OS X will do fine. Note this will also creates new grub startup files thereby deleting the nosmp addition to /etc/default/grub.

Reboot and marvel at our CPUs.

Kernel upgrade

For some reason the mainline PPA kernels from Ubuntu hang during boot (“Loading ramdisk…”), I did not felt the need to debug this, so I just tried to compile the latest kernel myself.

Download the latest kernel, when I did this, it was 3.11-rc6, and compile and install it yourself. Copy the /boot/config-<version> kernel config to .config and do a

make oldconfig

Note this kernel does not support the touchpad and keyboard, so it needs a patch, to make it work (perfectly). Then build with:

fakeroot make-kpkg --initrd --revision 3.11rc6custom kernel_image  

And install the resulting .deb file. Reboot.

I did not install reFind to automatically boot to Linux. I reboot once a month, or less, so holding down the Alt key 12 times a year is not a big issue to me.

Some sites also list that libata.force=1:noncq should be given to the kernel (via grub), I do that, but still see the errors this should prevent…

Conclusion

The laptop is working quite nicely, but the non-working bits are a nuisance. Work is progressing fast, so I expect a default install in the near future where everything works out of the box.

Some bugs that you can track:

Another one with this Air and trying Ubuntu (using the patch I reworked for 3.11-rc6):

3.11

Patch updated (change was removing -rc6 from the file) to apply cleanly to 3.11. Download it here, and apply with patch -p1 < macbookair-3.11.patch.

3.12 (unreleased)

These new USB IDs are now incorperated in 3.12, so you won’t need to patch yourself anymore (for this problem at least).

Patch to fix sound.

Macbook  Linux  Kernel