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
/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.
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.
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
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.
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.
" 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?
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).
I have an app (say, Terminal.app) with 2 windows open and another app that's not as important (let's say Firefox.app 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.
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.
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.
How about the battery life your Macbook Air with Linux? I bought the same machine and want to try Fedora on it.
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).