Fedora 11 on a MacBook
This guide will help you through all the steps necessary for installing Fedora 11 on a MacBook Santa Rosa. This guide is aimed at Fedora 11 x86_64 but will also work on i386 version (adjust as necessary). Most of the steps equally apply to pre-Santa Rosa models too.
These instructions are specific to the MacBook 3,1 (Late 2007) and newer but not the new aluminium MacBooks since they have different hardware (especially the graphics card). These instructions are not suitable for the MacBook Pro either!! That said, many of the steps here are common to all MacBook models and I have included a few tips for people with the Aluminum MacBooks.
What works and what doesn't?
There are a few things that need fixing (covered in detail below) but the following all work "out of the box" with Fedora 10: video/graphics, firewire, USB, CD/DVD reading and writing, suspend/hibernate, cpu speed control, fan control (including applesmc), volume function keys, sound, and ethernet. Even the new "plymouth" graphical boot screen works out of the box.
I have yet to try the infrared or connecting an external monitor but I suspect they work just fine. Everything else works with the tweaks described below.
Basic installation instructions
If you're new to installing Linux then these steps should help you. If you're an old hand then skip below to view the post-installation steps necessary to fix the things that don't "just work".
- Update the MacBook firmware to the latest version. If you prefer, you may use the standard "Software Update" in OS X.
- Get your Fedora 11 installation DVD ready. Note: you should use the x86_64 version of Fedora 11 and that I have only tested this using the Installation DVD, not the Live CD/DVD.
- Install rEFIt on OS X if you want a boot menu to select between OS X/Fedora to appear on every boot. This is highly recommended but optional - this guide assumes you have installed rEFIt. You can make Fedora boot by default and change the menu timeout by editing the "refit.conf" file (described on the rEFIt website).
- Use the OS X partition manager in Disk Utility to resize your OS X partition and make space for Fedora. On my 260GB hard drive, I shrank the OS X (hfs+) partition to 120GB to leave about 130GB free space for Fedora. Insert your Fedora 11 installation DVD in the drive and reboot.
- If you have rEFIt installed, then on boot you will be given the option to boot from the DVD, choose it. If you don't have rEFIt installed, then hold down "C" to boot from the DVD.
- Install Fedora as usual, except:
- In the partitioner, select to manually edit partition table and create your new partitions in the free space you created above
- Create a 200MB ext3 boot partition with mountpoint '/boot' (this will be /dev/sda3)
- Create a new ext4 partition with mountpoint '/' - this will be your main Fedora partition on /dev/sda4. Make sure to leave 2GB free space after this partition for your swap partition
- With the remaining 2GB, create a linux swap partition - this will be /dev/sda5
- Finish the installation and reboot. Remove the DVD.
- If you installed rEFIt, you should have a choice between booting OS X and Linux. Use the arrow keys and Enter to select Linux.
- Log in to Fedora
- Follow the steps in the sections below to work around things that still do not work out-of-the-box in Fedora 11.
Note: The wireless on the MacBook doesn't work out of the box in Fedora, so you're going to need an ethernet internet connection available until we get round to fixing the wireless later in this guide.
It is very important now to update your Fedora installation to the latest packages using yum. To do so:
Once yum has finished updating, reboot, and then do a yum update again. Repeat this process until yum finds no more packages to update.
Fixing the wireless
The MacBook 4,1 comes with a Broadcom 4328 wireless chipset. This is not supported by default in Fedora 11 and there are two options to make it work: using ndiswrapper and Windows drivers or using the new official Broadcom STA wireless driver. In this guide we will use the official Broadcom driver because it is easier and more reliable.
1) Enable the rpmfusion non-free repository.
The broadcom-wl and wl-kmod RPMs that we need are in the rpmfusion.org non-free repository which also requires the rpmfusion.org free repository. To enable these repos in Fedora simply do this:
su -c 'rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable... http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'
2) Update and install the driver package
Now that you have the appropriate repository enabled, to install the driver package we first ensure that we have the latest updates and then install the "kmod-wl" package which will bring with it the required "broadcom-wl" package:
yum install kmod-wl
That's all there is to it. At this stage you may need to reboot in order to enable the new driver and any new kernel that was installed during the update. For more details or if you have any difficulties see this post.
When future kernels are released a simple "yum update" command should install the new kernel and also pull in the updated Broadcom driver for that new kernel.
Fixing the touchpad
Note, for aluminum MacBook users at the time of writing the touchpad does not work at all. There is a bug report here and it looks like a solution may come with a kernel update any time soon.
For everyone else, the touchpad works out of the box but just needs a few settings to make it work with two finger scrolling and two finger clicking. In Gnome, go to System -> Preferences -> Mouse and then select the Touchpad tab. Enable the option for two-finger scrolling. You may also want to enable the option to disable the touchpad while typing. You can now scroll with two fingers, right click by holding down two fingers and clicking, and middle click by holding down 3 fingers and clicking.
First of all, you will need a copy of the firmware from Apple. You can either download this here, or copy it from a Mac OS X partition. While the latter is usually preferred I can't guarantee that the firmware distributed with your MacBook will be supported, so sometimes its easier just to download it.
To acquire the firmware, save the file AppleUSBVideoSupport to your home directory. Next, we need to convert the AppleUSBVideoSupport to a useable firmware file. The isight-firmware-tools will do this for us so we need to install that package:
su -c "yum install isight-firmware-tools"
Now, finally, we can convert the AppleUSBVideoSupport to a useable firmware file. From your home directory where you downloaded the AppleUSBVideoSupport file:
su -c "ift-extract --apple-driver AppleUSBVideoSupport"
Reboot and your webcam should be functional. Test it with Cheese, Ekiga, or Skype2. At the time of writing there is a bug in gstreamer which makes the webcam output all green, I have raised a bug report for it, feel free to add a "me too" and we'll see if it gets fixed.
Bluetooth works out of the box but due to some long standing kernel bug it needs to be enabled properly first.
Edit /etc/sysconfig/bluetooth and make sure it says 'HID2HCI_ENABLE=true'.
That'll fix it on subsequent reboots. For now, just run '/sbin/hid2hci' as root.
Fixing the brightness keys
The brightness keys don't work but I have found a work around that fixes them.
To fix, disable kernel mode setting (KMS) by adding the following to the kernel parameters in /etc/grub.conf after "rhgb quiet":
And if you still want the graphical boot screen then add this also:
While playing with these changes it is sensible to add a timeout value to grub.conf also so you can easily edit the boot config in case anything goes wrong...
So my grub.conf looks like this:
title Fedora (126.96.36.199-167.fc11.x86_64)
kernel /vmlinuz-188.8.131.52-167.fc11.x86_64 ro root=UUID=9efa16ed-8e34-4e88-9d7e-253fd5f9b43c rhgb quiet nomodeset vga=0x318
Note, your kernel and initrd paths may look different depending on your partition setup and the UUID will definitely be different so don't just copy and paste mine!! I am only showing the above so you can see where the "nomodeset vga=0x318" should go. Basically put it right after "rhgb quiet" on the kernel line.
Reboot and your screen brightness keys should be working fine.
Video driver for newer MacBooks
This only applies to MacBooks with an nVidia video card: newer white versions and all aluminum versions. You can check the type of video card by doing "lspci" and looking for the video card details.
For those with an nVidia card you can install the official nVidia drivers which give better performance and full 3D support. First ensure you have the rpmfusion repositories installed as in the above wireless section, then:
su -c 'yum install kmod-nvidia'
Reboot and you should be using the nVidia drivers.
Now your MacBook hardware should be fully functional so it is time to get busy adding the software you want and tweaking the system to your needs.
This guide by Mauriat Miranda is a great place to look for details of how to install common media players, codecs and fonts.
For the native 64bit flash plugin see this thread.