Installing Fedora 10 on a MacBook

This guide will help you through all the steps necessary for installing Fedora 10 on a MacBook Santa Rosa. This guide is currently aimed at Fedora 10 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 will work with the MacBook 3,1 (Late 2007) and newer but will NOT work with the new aluminium MacBooks since they have different hardware (especially the graphics card). These instructions are not suitable for the MacBook Pro either!!

This guide is based largely around my previous guide for Fedora 8, and again much credit goes to the people who created the original Ubuntu wiki guide.

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, compiz effects, firewire, CD/DVD reading and writing, function keys (brightness, volume etc), sound, and ethernet. Even the new “plymouth” graphical boot screen works fine once activated.

I have yet to try the infrared or connecting an external monitor. Everything else works with the tweaks described below, except for suspend and hibernate which seem generally pretty broken in F10 (as it was in F9 too). Update 7 November 2008: Suspend and hibernate are fixed with 2.6.27.7-134 kernel and newer. See bug report.

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”.

  1. Update the MacBook firmware to the latest version. If you prefer, you may use the standard “Software Update” in OS X.
  2. Get your Fedora 10 installation DVD ready. Note: you should use the x86_64 version of Fedora 10 and that I have only tested this using the Install Media, not the Live DVD.
  3. 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).
  4. 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 for Fedora. Insert your Fedora 10 installation DVD in the drive and reboot.
  5. 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.
  6. Install Fedora as usual, except:
    1. In the partitioner, select to manually edit partition table
    2. Create a 200MB boot partition with mountpoint ‘/boot’ (this will be /dev/sda3)
    3. Create a new ext3 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
    4. With the remaining 2GB, create a linux swap partition – this will be /dev/sda5
  7. Finish the installation and reboot.
  8. If you installed rEFIt, you should have a choice between booting OS X and Linux. Use the arrow keys and Enter to select Linux.
  9. Log in to Fedora
  10. Follow the steps in the sections below to work around things that still do not work out-of-the-box in Fedora 10.

Post installation

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:

su -
yum update

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 comes with a Broadcom 4328 wireless chipset. This is not supported by default in Fedora 10 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.noarch.rpm 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 “broadcom-wl” package which will bring with it the required “kmod-wl” package:

su -
yum update
yum install broadcom-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

(Thanks to bodom_lx for this tip)

The touchpad works out of the box but there is no way to right or middle click. Traditionally this was fixed by adding the appropriate options to /etc/X11/xorg.conf but the new xorg-server in F10 doesn’t use the traditional xorg.conf file. Instead it is configured through HAL fdi configuration files.

To create the appropriate file for configuring the touchpad:

su -
gedit /etc/hal/fdi/policy/appletouch.fdi

Copy and paste the following into the empty file:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
      <match key="info.product" contains="appletouch">
        <merge key="input.x11_driver" type="string">synaptics</merge>
        <merge key="input.x11_options.SendCoreEvents" type="string">true</merge>
        <merge key="input.x11_options.HorizEdgeScroll" type="string">0</merge>
        <merge key="input.x11_options.VertEdgeScroll" type="string">0</merge>
        <merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge>
        <merge key="input.x11_options.HorizTwoFingerScroll" type="string">0</merge>
        <merge key="input.x11_options.VertScrollDelta" type="string">10</merge>
        <merge key="input.x11_options.HorizScrollDelta" type="string">10</merge>
        <merge key="input.x11_options.VertScrollDelta" type="string">10</merge>
        <merge key="input.x11_options.TapButton1" type="string">0</merge>
        <merge key="input.x11_options.TapButton2" type="string">3</merge>
        <merge key="input.x11_options.TapButton3" type="string">2</merge>
        <merge key="input.x11_options.ClickFinger1" type="string">1</merge>
        <merge key="input.x11_options.ClickFinger2" type="string">3</merge>
        <merge key="input.x11_options.ClickFinger3" type="string">2</merge>
        <merge key="input.x11_options.FingerLow" type="string">10</merge>
        <merge key="input.x11_options.FingerHigh" type="string">20</merge>
        <merge key="input.x11_options.PressureMotionMinZ" type="string">10</merge>
        <merge key="input.x11_options.SHMConfig" type="string">On</merge>
      </match>
    </match>
  </device>
</deviceinfo>

Save the file and reboot. You should now be able to right-click by using a two finger tap on the touchpad and middle-click by using a three finger tap. You can also right-click by holding two fingers on the touchpad and clicking the button, and middle-click by holding three fingers and clicking the button.

If you want to adjust any of the options (or add new ones) see “man synaptics” for an explanation of what they do.

Disable touchpad while typing

The placement and sensitivity of the MacBook touchpad means that it is prone to moving your cursor while you’re typing which is very annoying. We can fix this:

To disable the touchpad while typing use this command:

syndaemon -i 1 -d

This disables the touchpad for 1 second after you type something. This works well but if you go back and forth a lot it can be a hassle to wait that one second. NOTE you can use “.5″ for half a seconf instead and it works much better.

Alternatively,

syndaemon -t -d

This disables tapping motions but not movement while typing.

Both work fine, and the one that works best for you will likely be determined by the type of computing you do. Try them both and decide for yourself.

Once you’ve found the one you want to use, add it as an application to start in your gnome session.

iSight camera

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 fully functionally. Test it with Cheese, Ekiga, or Skype2.

Bluetooth

Bluetooth works out of the box but due to some 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.

Apple SMC (Optional)

This is an optional but recommended step. The Apple SMC (System Management Controller) provides an interface to devices such as fans, temperature sensors, motion sensors, leds and controls these.

The applesmc kernel module is not loaded by default – I guess this is a bug. The correct way to load a module on boot in Fedora 10 is to create a .modules file in /etc/sysconfig/modules/ – here is how to do it for applesmc:

su -
gedit /etc/sysconfig/modules/applesmc.modules

Paste the following into the file:

#!/bin/sh

if [ ! -d /sys/devices/platform/applesmc.768 ] ; then
        exec /sbin/modprobe applesmc >/dev/null 2>&1
fi

Save and exit, then change the file permissions as follows:

chmod 755 /etc/sysconfig/modules/applesmc.modules

On next boot the applesmc module will load. Meanwhile, just do “modprobe applesmc” as root.

Plymouth graphical boot (Optional)

To activate the plymouth graphical boot you must edit /boot/grub/grub.conf and add your framebuffer resolution at the end of the kernel line. For the MacBook with Intel graphics the resolution that works is “0×318″. So, become root and edit the kernel line to look something like this:

title Fedora (2.6.27.5-117.fc10.x86_64)
	root (hd0,2)
	kernel /vmlinuz-2.6.27.5-117.fc10.x86_64 ro root=UUID=afb18b52-bfdf-49aa-95f0-234d3013f87d rhgb quiet vga=0x318
	initrd /initrd-2.6.27.5-117.fc10.x86_64.img

By default only the solar and text themes are installed. To add additional plymouth themes type:

su -
yum install plymouth-plugin-{fade-in,pulser,spinfinity}

Now you can try any theme you want like shown below, just replace pluginname with one of the following: solar, fade-in, pulser, spinfinity, text:

su -
plymouth-set-default-plugin pluginname
/usr/libexec/plymouth/plymouth-update-initrd

After that just reboot your computer to enjoy a lovely graphical boot.

What next?

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 post.

Have fun!

39 thoughts on “Installing Fedora 10 on a MacBook

  1. Gerard Braad

    Most of the mention settings also work for a non-Santa Rosa MacBook. If your macbook does not support more than 2GB of memory you can also, as I did, install the standard 32bit version from the DVD or Live-CD.

    And the Solar is by the way the most graphical plymouth theme… highly recommended if you like eye-candy to show to your friends :P

    Reply
  2. Chris Post author

    Thanks Gerard, that’s useful to know.

    I agree, Solar is the most graphical plymouth theme but I also quite like fade-in for it’s subtlety – and the stars are pretty!

    Reply
  3. bodom_lx

    Thank you very much for the how-to, everything is clear and well-written.

    However, you should avoid to create a xorg.conf file as input management under Gnu/Linux is moving from Xorg to Hal/Evdev.
    So please don’t create a /etc/X11/xorg.conf file unless you are planning to tune either your graphic card or your monitor settings.

    I wrote on my blog how to fix the touchpad using hal policies. Just scroll the page down near the end of the post

    Regards

    Reply
  4. Chris Post author

    Thanks bodom_lx!

    That is really useful to know: I had been wondering what is the “correct way” to edit the xorg configuration for synaptics with the new HAL interface. I have updated the guide appropriately and credited you.

    Reply
  5. bodom_lx

    You’re welcome Chris! Thank you for adding your explanations for the official Broadcom wireless driver to my post.
    It’s funny that you see more stability when using their driver for WPA/WPA2, because I to switched back to ndiswrapper and windows drivers for the opposite reason :-)
    broadcom-wl gave me problems in my University, which uses WPA2. I was using Debian Lenny with the 2.6.26 default kernel. I will also try again with broadcom-wl and will let you know

    Reply
  6. Pit

    Hei,

    Thanks a lot!
    Wireless with WPA2 is running well. I used the official broadcom-vl solution. I always had this wireless issues back on the previous versions and on openSUSE. So glad it made the trick so easily! Plymouth, SMC, touchpad are also doing fine!

    Could you please explain how you got your flashplayer working? The adobe alpha version bugs here and I don’t have sound on dailymotion.

    Regards,
    Pit

    Reply
  7. Laurens

    Thanks a lot for the help! My trackpad works perfectly now.

    However, your iSight fix doesn’t seem to work for me… I used the file you offered for download but cheese still doesn’t see my iSight. This is an early 08 MacBook.

    Reply
  8. Kishore Bhargava

    Hi! Chris,

    Brilliant how-to on setting up a MacBook, in fact for a newbie like me it was incredibly useful. I just recently acquired a MacBook 4,1 and being more used to linux than Mac OS, I needed to install Fedora immediately. One problem however, I used the regular 32-bit DVD of Fedora 10 and many things just did not work. The touchpad was sluggish and after the HAL changes still does not provide a right-click or any of the other gestures. Sound did not work till I added it modules.conf and though I did get 1440×900 resolution, Compiz did not work out of the box. I did add the rpmfusion.org repository for the Broadcom WiFi after which that worked well and I finally installed the non-free Nvidia drivers as well. I am just wondering what I did wrong for some many things that you mentioned worked OOB and just did not work for me! I initially installed a gnome desktop, but later moved to KDE. Any ideas on this would be greatly appreciated. In the meantime, I am downloading the 64-bit version just in case that does actually work better.

    Once again, great post!

    Cheers…Kishore

    Reply
  9. MBaudier

    Many thanks for this great post, it helped a lot!

    I just installed Fedora 10 on a MacBook Pro (please note: a MacBook PRO, not the new black&alu one as of December 2008, but the previous version)

    The sound ẃas not working though, and I followed the instructions from this page: http://nareshv.blogspot.com/2008/10/fedora-10-beta-64-bit-on-macbook-pro-41.html

    As root:
    echo “options snd_hda_intel model=mbp3″ >> /etc/modprobe.d/sound

    Reboot and it worked.

    I still have problems with the touchpad and I’m considering following the instructions from this link, but I’d like to avoid messing with xorg.conf as bodom_lx pointed out. If I can get it to work I’ll post here.

    Thanks again!

    Reply
  10. Chris Post author

    @pit

    For flash I just followed the instructions in the link at the end of the post for the alpha 10 version and it works nicely. Do you get sound in other applications ok? You could try this post which fixes some pulseaudio issues.

    @Kishore

    That sounds to me as if you have a MacBook 5,1 not a 4,1 (the 4,1 has intel graphics, not nvidia). Is it the aluminum version? Or do you in fact have a MacBook Pro? They all have slightly different hardware and as I only own a standard 4,1 this guide only really covers that specific model even though parts of it are common for all models. This difference in models probably explains why some things worked for me and not for you, and vice versa.

    @MBaudier

    My MacBook required that same sound fix in previous Fedora versions but it worked out-of-the-box with F10. Strange that yours should still need the fix. As for the touchpad, ideally you should go with the HAL method… the FDI file above should do the trick even on your MB Pro.

    Reply
  11. Kishore Bhargava

    Chris,

    I’m a MAC newbie, but when I boot into Mac OS and check “About” its says MacBook Pro 4,1. In linux, using:

    sudo dmidecode -s system-product-name

    I get the following:

    MacBookPro4,1

    I’m also an Ubuntu newbie now, cause thats what I finally installed and I think that I have most of my stuff running now. I will probably wait a while before going back to Fedora.

    In the meantime, thanks for your comments and this post, it has been extremely valuable to me. Once I settle down and get around to it, I will mention it in my blog.

    Cheers…Kishore

    Reply
  12. Matthew FL

    Thank you,
    I also installed and enabled fedorakmod, to keep the wireless working with updates. This keep yum from auto updating the kernel if there is not the driver for the wireless.

    /etc/yum/pluginconf.d/fedorakmod.conf
    [main]
    enabled = 1
    pinkernels = 1
    installforallkernels = 1

    Reply
  13. scott

    no on seems to be mentioning problems with the desktop effects, but i am running on a macbook 2,1 so i imagine that could be a problem? everything else in this guide has worked for me, but whenever i enable desktop effects i have to hard-restart… any suggestions?

    Reply
  14. robert

    It doesn’t work for a lot of people with Intel graphics, not just on MacBooks. OpenGL doesn’t work at all for me on my MacBook 2,1. From what I could gather there was some new not well tested code for the Intel graphics driver that went in to this release.

    Reply
  15. UncleBob

    i’ve got the macbook 2,1 as well and to get compiz working nicely without locking up the system, downgrade this driver:
    xorg-x11-drv-i810 from whatever is the latest on fc10 to the LAST release made for FC9.

    this driver (all revisions on FC10) just does not work.
    still waiting for a fix, so in the mean time, what i said above works

    you can also put: exclude=xorg-x11-drv-i810 into yum.conf so that the auto updates dont keep trying to make you update those drivers

    Reply
  16. Tuxy

    hi there ! for me, confguration works well, but there is a problem with keyboard layout, i change keyboard layout for “macintosh” “fr” and i change miscellenaous option for swapping keycodes for key “@” and “<” but nothing change key’s not swapping, the problem is only with fedora 10, but working with fedora 8 or 9.

    Reply
  17. Pit

    Hi,

    Everything’s working since weeks now. I just had a small sound issue I had to search the web for, so I post it here for future macbook fedoristas:

    I had a crackling sound on the left speaker under fedora, but not under OS X. I had to adjust the sound volume to “hide” the crackling, which was very irritating, the volume being too weak.

    Add the line
    options snd-hda-intel position_fix=1
    to your /etc/modprobe.conf file and reboot.

    That did the trick for me! I have a 2 years old macbook.

    Greets from Belgium!
    Pit

    Reply
  18. Dan

    Thank you very much for this installation guide!
    I`ll use Fedora as my first Open Source OS…

    kind regards from Germany

    Reply
  19. brewster

    @Uncle Bob or Cenolan,

    how can I downgrade the above mentioned driver. Wwich commannd do I have to use? It would be very usefull if I get an answer (newbie)….

    regards dan

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>