Fedora 21 on the 2015 Macbook Air

May 2, 2015 by Noah

Today I picked up a Macbook Air (13", early 2015 model) because I wanted a new laptop, as my old laptop (the Samsung Series 5) has a horrible battery life, where it barely lasts over an hour and gives up early (powering down at 40% and not coming back up until I plug it in). This is also my first Apple computer. I'm the furthest thing from an Apple fanboy, but the choices I was throwing around in my head were between an Apple computer and a Lenovo Thinkpad.

I was given a Thinkpad as my work laptop, and it's by far the most impressive PC laptop I've ever used; it can drive three displays and run lots of concurrent tasks and has an insane battery life. Every PC laptop I've owned in the past have sucked in comparison. I hear people compare Apple computers to Thinkpads, so that's why the choice came down to one of these, and I didn't want another Thinkpad sitting around the house. ;)

Months before getting a Macbook I was looking into what kind of effort it takes to install Linux on a Macbook. There's a lot of information out there, and most of it suggests that the best way to go is to install a boot manager like rEFIt (or rEFInd, since rEFIt isn't maintained anymore). I saw some pages about not using rEFIt and installing Grub directly, which were from a Debian and Arch Linux perspective, and it sounded really complicated.

It seems that nowadays, with a user friendly Linux distribution like Fedora, a lot of this works much more flawlessly than the dozens of tutorials online would suggest. I just made a Fedora LiveUSB in the usual way (as if installing on a normal PC), rebooted the Macbook while holding the Option key, so that I was able to select the USB to boot from.

When installing Fedora to disk, the process was very much the same as doing it on a normal PC. I let Fedora automatically create the partition layout, and it created partitions and mount points for /, /boot and /home like usual, but it also created a partition and mount point for /boot/efi (for installing itself as the default bootloader in the EFI firmware on the Macbook). After installation was completed, I rebooted and the grub boot screen comes up immediately, with options to boot into Fedora.

One weird thing is, the grub screen apparently sees something related to Mac OS X (there were two entries, like "Mac OS X 32-bit" and "Mac OS X 64-bit", but both options would give error messages when picked).

If I want to boot into OS X, I hold down the Option key on boot and pick the Macintosh HD from the EFI boot menu. Otherwise, if the Macbook boots normally it goes into the grub menu and then Fedora. So, the whole thing is very similar to a typical PC dual-boot setup (with Windows and Linux), just with one extra step to get into OS X.

Update: I'm keeping a wiki page with miscellaneous setup notes and tips here: Fedora on Macbook



There are 8 comments on this page. Add yours.

Avatar image
Agrou posted on May 28, 2015 @ 14:26 UTC

Hello ! and thanks for the article. I do have some troubles to install any linux distro onmy 2015 macbook air. The NVMe controller (ssd controller) is not recognize as it should.

Could you please show me the output of the followoing command : "ls /dev" and "lspci" ?

Thanks a lot.

Avatar image
Noah (@kirsle) posted on June 4, 2015 @ 05:08 UTC
autofs           input               rtc0      tty2   tty45  uhid
block            kmsg                sda       tty20  tty46  uinput
bsg              kvm                 sda1      tty21  tty47  urandom
btrfs-control    log                 sda2      tty22  tty48  usb
bus              loop-control        sda3      tty23  tty49  usbmon0
char             lp0                 sda4      tty24  tty5   usbmon1
console          lp1                 sda5      tty25  tty50  usbmon2
core             lp2                 sda6      tty26  tty51  vcs
cpu              lp3                 sg0       tty27  tty52  vcs1
cpu_dma_latency  mapper              shm       tty28  tty53  vcs2
cuse             mcelog              snapshot  tty29  tty54  vcs3
disk             mei0                snd       tty3   tty55  vcs4
dm-0             mem                 stderr    tty30  tty56  vcs5
dm-1             memory_bandwidth    stdin     tty31  tty57  vcs6
dm-2             mqueue              stdout    tty32  tty58  vcsa
dm-3             net                 tty       tty33  tty59  vcsa1
dri              network_latency     tty0      tty34  tty6   vcsa2
fb0              network_throughput  tty1      tty35  tty60  vcsa3
fd               null                tty10     tty36  tty61  vcsa4
fedora           nvram               tty11     tty37  tty62  vcsa5
full             port                tty12     tty38  tty63  vcsa6
fuse             ppp                 tty13     tty39  tty7   vfio
hidraw0          ptmx                tty14     tty4   tty8   vga_arbiter
hidraw1          pts                 tty15     tty40  tty9   vhci
hpet             random              tty16     tty41  ttyS0  vhost-net
hugepages        raw                 tty17     tty42  ttyS1  zero
hwrng            rfkill              tty18     tty43  ttyS2
initctl          rtc                 tty19     tty44  ttyS3

00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Broadwell-U Integrated Graphics (rev 09)
00:03.0 Audio device: Intel Corporation Broadwell-U Audio Controller (rev 09)
00:14.0 USB controller: Intel Corporation Wildcat Point-LP USB xHCI Controller (rev 03)
00:15.0 DMA controller: Intel Corporation Wildcat Point-LP Serial IO DMA Controller (rev 03)
00:15.4 Serial bus controller [0c80]: Intel Corporation Wildcat Point-LP Serial IO GSPI Controller #1 (rev 03)
00:16.0 Communication controller: Intel Corporation Wildcat Point-LP MEI Controller #1 (rev 03)
00:1b.0 Audio device: Intel Corporation Wildcat Point-LP High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #1 (rev e3)
00:1c.1 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #2 (rev e3)
00:1c.2 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #3 (rev e3)
00:1c.4 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #5 (rev e3)
00:1c.5 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #6 (rev e3)
00:1f.0 ISA bridge: Intel Corporation Wildcat Point-LP LPC Controller (rev 03)
00:1f.3 SMBus: Intel Corporation Wildcat Point-LP SMBus Controller (rev 03)
00:1f.6 Signal processing controller: Intel Corporation Wildcat Point-LP Thermal Management Controller (rev 03)
02:00.0 Multimedia controller: Broadcom Corporation 720p FaceTime HD Camera
03:00.0 Network controller: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter (rev 03)
04:00.0 SATA controller: Samsung Electronics Co Ltd Device a801 (rev 01)
05:00.0 PCI bridge: Intel Corporation Device 156b
06:00.0 PCI bridge: Intel Corporation Device 156b
06:03.0 PCI bridge: Intel Corporation Device 156b
06:04.0 PCI bridge: Intel Corporation Device 156b
06:05.0 PCI bridge: Intel Corporation Device 156b
06:06.0 PCI bridge: Intel Corporation Device 156b
07:00.0 System peripheral: Intel Corporation Device 156a
Avatar image
GUSTL posted on July 25, 2015 @ 17:36 UTC

Why the heck one would like to install Fedora on a Mac? Are you fuckin' crazy?

You normally buy a Mac because you want Mac OS X. I would never pay for a Mac if it hadn’t Mac OS X.

Avatar image
Noah (@kirsle) posted on July 26, 2015 @ 22:39 UTC


Besides some personal usability problems I have with OS X (I prefer a task bar for window management instead of a dock, because I use multiple windows of the same app and there is no good way to manage that workflow under OS X -- you can right-click the dock icon, or use the exposé view and try to click one of the bundled windows for the app you want...), a much more serious problem is the HFS+ filesystem.

To quote this Ars Technica article about one of the worst problems (IMHO) of HFS+:

HFS+ does not concern itself with data integrity. The underlying hardware is trusted implicitly. If a few bits or bytes get flipped one way or the other by the hardware, HFS+ won't notice. This applies to both metadata and the file data itself.

Data corruption in file system metadata structures can render a directory or an entire disk unreadable. (For a double-whammy, think about corruption that affects the "HFS+ Private Data" directory where every single hard link file on a Time Machine volume is stored.) Corruption in file data is arguably worse because it's much more likely to go undetected. Over time, it can propagate into all your backups. When it's finally discovered, perhaps years later when looking at old baby pictures, it's too late to do anything about it.

HFS+ has other problems that any legacy filesystem will have, but this silent file corruption issue is a huge one.

Overall OS X isn't a bad operating system, but I wouldn't trust it for anything important. For example, if I were a full-time Mac user, I wouldn't rely on the HFS+ filesystem for keeping my backups. I'd put all my important files on a separate NTFS file system instead (or more likely, an ext4 filesystem on a separate Linux box), and treat the Mac filesystem in my head as being volatile and not to be used for the "master copy" of my important files -- because of undetectable file corruption.

All of this said, my Macbook does dual boot Fedora with Mac OS X, so I've relegated OS X to the same fate as Windows on my other PCs (something I only boot into once in a blue moon).

Having OS X around is interesting to me only so far as being able to test my cross-platform applications that I develop to make sure they can build, run, and be distributed for Mac OS X users.

The Macbook's hardware is pretty decent which is why I picked it, as mentioned in the OP. The choice of laptop had nothing to do with its default operating system.

Avatar image
hurkaduerka posted on October 14, 2015 @ 02:58 UTC

" I have with OS X (I prefer a task bar for window management instead of a dock, because I use multiple windows of the same app and there is no good way to manage that workflow under OS X "

Command + ` key combo does not work for you here?

Avatar image
Noah (@kirsle) posted on February 4, 2016 @ 22:09 UTC

Just thought I'd add my opinion of the Command-` key after having used OS X full time at my new job for the last couple of months (this Macbook has a retina display and getting that to work in Linux w/ non-retina external displays proved more trouble than it was worth).

The Command-` key works okay if you're working in one app for extended periods of time. It's less fun to use when you switch between apps entirely, or if an app regularly has multiple windows (such as Chrome if you use any Chrome apps, such as Hangouts).

Scenario 1: Multiple Windows in General

I have an app (say, with 2 windows open and another app that's not as important (let's say with one window).

Every time I Command-Tab away from the Terminal to my Firefox app, and Command-Tab back to the Terminal, it always focuses the opposite window from what I had originally. So it goes, "Terminal 1 -> Firefox 1 -> Terminal 2 -> Firefox 1 -> Terminal 1". This is annoying if I have one very important terminal and another less important one that I want to interact with less frequently.

I see this behavior also when I click the terminal's app icon on my dock.

Scenario 2: Chrome and Hangouts

Google Chrome and the Hangouts app.

The Hangouts app (and any other web app, for this matter) gets its own separate icon on my dock from the Chrome icon. However, these two icons are for the same app, so the same annoyances apply. I want to keep my Hangouts app window open at all times, but this makes it difficult to use Chrome too (I mainly use Firefox so I rarely have a Chrome window open, but when I do...)

Switching to Hangouts via Command-Tab will focus the Chrome window, not Hangouts, half of the time.

I saw the same behavior when using the Hangouts extension instead of the app, except it was worse because the extension didn't get its own icon on the dock.

Scenario 3: Adium

Adium regularly has two windows: the contact list and the IM windows.

Every time I Command-Tab to Adium, it focuses the contact list. Every, single, time. I always have to follow it up with a Command-` to get to the IM window.

So, no, the Command-` key is not good enough for me.

Avatar image
Ike posted on April 15, 2016 @ 22:13 UTC

How about the battery life your Macbook Air with Linux? I bought the same machine and want to try Fedora on it.

Avatar image
Noah (@kirsle) posted on April 15, 2016 @ 23:01 UTC

After installing and enabling the powertop service, I can usually get between 7 and 9 hours of battery life depending on the screen brightness and what software I'm using. It's not quite the 12 hours that OS X claims it gets on the same hardware, but it's a fair bit higher than I've ever gotten out of Linux on a PC laptop (altho to be fair I never paid as much attention to power saving features/powertop in the past).

There are tools out there to automatically adjust the display and keyboard brightness based on the ambient light sensor, but I just manage those things manually. I rarely keep the screen at maximum brightness when it's on battery (that would probably get me 5 hours of battery life), but keep it somewhere darker but not so dark that colors start becoming inaccurate (probably keep it around 50-60% brightness).

Add a Comment

Used for your Gravatar and optional thread subscription. Privacy policy.
You may format your message using GitHub Flavored Markdown syntax.