Candidate for Deletion
This article may not be appropriate for this wiki, and may be deleted. More info...


Unsupported Version
This article applies to an unsupported version of Ubuntu. More info...

Ubuntu on a Penryn MacBookPro

If you are searching for installation instructions or information on MacBookPro1,1 or MacBookPro2,1, check the main MacBookPro wiki article.

For other hardware items not mentioned here, or if you have a MacBookPro3,1, check the Santa Rosa MacBookPro wiki article.


This Wiki article has been written to help those with 4th generation "Penryn" MacBookPro laptops (originally released February 2008.) There are a number of significant differences between the hardware configurations of these and the older versions which need to be accounted for when setting up Ubuntu.

Hardware Changes

There are 3 main differences between the Penryn MacBookPro and its older siblings.

  • The Laptop has an updated version of the Broadcom Wireless Card. To get it working, a Windows XP driver is required from the MacbookPro installation disk, as well as ndiswrapper to get the driver working under Linux. The original HowTo detailing the installation process was written by amonsul and is available in this Ubuntu Forum thread.

  • The Trackpad on the newer laptops now offers multi-touch support. The driver to use is called bcm5974 and is not yet included in the Linux kernel, however, it can be downloaded from this thread. It will be included in kernel 2.6.27 as part of Intrepid (Ubuntu 8.10).

  • Finally, the Fn key does not work upon installation of Hardy. This has yet to be fixed in the Ubuntu kernel but a solid workaround has been developed by _alex_, as outlined in this Ubuntu Forums thread.

Installing the Broadcom Wireless Driver

These steps are no longer necessary with the latest updates applied in Hardy, nor in Intrepid. Simply enable the wireless driver in Hardware Drivers. However, some users have reported system freezes due to the Broadcom driver. Because it is propriatary software, there are no published workarounds or patches for this, and so using NDISwrapper may be a more stable solution until Broadcom updates their driver.

These instructions are valid for both 32 or 64 bits installation.

1. Install ndiswrapper with Synaptic Package Manager

2. Find the file, BroadcomXPInstaller.exe (it might be also written "broadcomxpinstaller.exe"), on the Mac installation CD, and copy it to a folder on your computer. Be aware not to choose broadcominstaller64.exe because it does not contain the appropriate file.

3. Unzip the Broadcom drivers

unrar e BroadcomXPInstaller.exe

4. Install the wireless driver:

Install the driver:
sudo ndiswrapper -i bcmwl5.inf

List installed drivers:
sudo ndiswrapper -l

Write configuration for modprobe:
sudo ndiswrapper -m

Load ndiswrapper module:
sudo modprobe ndiswrapper

5. Open Boot-time modules file

sudo gedit /etc/modules

6. Add ndiswrapper to the bottom of the file so it loads on boot

If you are running Ubuntu version 8.04 (Hardy Heron), please also perform steps 7-10.

7. Create file /etc/init.d/ndiswrapper

sudo gedit /etc/init.d/ndiswrapper

This is a dirty workaround discussed here to overcome a conflict between modules.

8. Add the following text to the file

# Provides: ndiswrapper
# Required-Start:
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: enable to load ndiswrapper
# Description: enable to load ndiswrapper
rmmod ohci_hcd
rmmod ssb
rmmod ndiswrapper
modprobe ndiswrapper
modprobe ssb
modprobe ohci_hcd

9. Set file access permissions

sudo chmod 755 /etc/init.d/ndiswrapper

10. Create a symbolic link from /etc/init.d/ndiswrapper to /etc/rc2.d/S99ndiswrapper

sudo ln -s /etc/init.d/ndiswrapper /etc/rc2.d/S99ndiswrapper

Reboot your computer and your wireless should now be working.


The new touchpad driver is enabled by default in Intrepid

There is a brand-new kernel driver for the BCM5974 device sitting in the Macbook Pro Penryn. Follow http://ubuntuforums.org/showthread.php?t=840040 for downloads. Via the synaptics driver, the bcm5974 supports double/triple-finger clicks/taps, two-finger mouse scroll and swiping. This driver is included as part of the 2.6.27 linux kernel which will be included in Ubuntu 8.10.

Wireless Mighty Mouse

Under Hardy, it seems that running hciconfig hci0 reset is required after each cold boot and after suspend for the system to detect the mouse. This isn't needed under Intrepid. However, Intrepid Mighty Mouse users should follow the workaround here: http://ubuntuforums.org/showthread.php?t=966436 to overcome the problem of losing the mouse after reboot or suspend.

Apple Hotkeys Fix (Pommed)

This is no longer required in Intrepid. http://ubuntuforums.org/showthread.php?t=959992 see post #6.

The following steps are for enabling the Apple hotkeys (volume control, brightness, and FN keys)

As of 21-June-2008, the Ubuntu Repositories have not been updated to contain the latest version of pommed - the hotkeys handler.

You can download the debian package for the newer version of pommed from this page: http://packages.debian.org/lenny/pommed Be sure to download the deb file that matches your Ubuntu install (i386 vs AMD64).

The following old information explains how to add the Debian Testing (Lenny) Repository to your system. You can easily break your system by installing packages from this repo if you do not know what you are doing. It is much safer to use the instructions above to install the debian lenny version of pommed. However, some people may not be able to install from the pommed .deb for a variety of reasons, and so these instructions may be followed:

1. Open Synaptic Package Manager.
2. Go to "Settings", and then "Repositories".
3. Click on the "Third-party software" tab, then click "add".
4. Add:
deb http://ftp.de.debian.org/debian lenny main

5. Reload update information.
6. Search for pommed in Synaptic, and select the package for installation.
7. Install pommed with the "Apply" button.
8. Go back to Settings > Repositories
9. Uncheck the Debian repository.
10. Reload update information.
11. Should Synaptic start giving you "NOT AUTHENTICATED" warnings, see thread 139191 here:

WARNING: DO NOT UPDATE ANY OF YOUR OTHER PACKAGES UNTIL YOU HAVE DISABLED THE DEBIAN REPOSITORY AGAIN! Serious system malfunction may result. Wait until disabling the Debian repository, and reload the update list again.

Fully Enabling Graphics

In order to fully utilize the graphics acceleration of you MacBook Pro, you need to use proprietary drivers, not normally distributed with Ubuntu.

Luckily doing so is easy.

1. Go to: System >> Administration >> Hardware Drivers\

2. Click on the 'Enabled' check box next to the 'NVIDIA accelerated graphics driver'

3. Restart your computer

Once restarted, you probably want to re-calibrate your LCD color scheme. Use the following instructions:

1. Go to http://xcalib.sourceforge.net/ and download the binary. (Compile it from source if you choose.)

2. From your Mac OS X partition, copy your Color LCD.icc (name may vary) calibration file to the download directory of xcalib. On a regular setup, the calibration file can usually be found here:

/media/Macintosh HD/Library/ColorSync/Profiles/Displays/Color LCD.icc

3. Once you have copied the file to the same directory as xcalib, open a terminal. cd to the download folder and give it execute permissions with this command:

$ chmod +x xcalib

4. Then run:

$ sudo ./xcalib Color LCD.icc

Be sure to substitute the correct file name of your configuration file.

5. You should instantly see your colors correct.

This forum posts outlines the calibration process in more detail: http://ubuntuforums.org/showthread.php?t=491138

Enabling Sound/Microphone

1. Open the modprobe.d options file for editing

NOTE: The file /etc/modprobe.d/options no longer exists in newer versions of Ubuntu. It is still supported by the kernel, however the filename needs the .conf extension, i.e. /etc/modprobe.d/options.conf would be the file you create to save your options. Actually the filename doesn't matter as long as the .conf extension is used.

sudo gedit /etc/modprobe.d/options

2. Add the following line to the bottom of the file

options snd_hda_intel model=mbp3

3. Reboot your computer

4. Recommended: leave microphone muted in the volume control to prevent feedback when closing the lid. Don't forget to un-mute the speakers/microphone before testing. If you cannot un-mute your speakers, try using alsamixergui, which can be installed with the following command:

sudo apt-get install alsamixergui


It seems to many users that their Macbooks run with a higher temperature in Ubuntu over Mac OS X. While specifics vary, some report common CPU or GPU running temperatures in excess of 50°C (122°F). These temperatures are not ideal for a computer, and could potentially cause damage to hardware if left unchecked. Many threads such as this one discuss the problem and potential fixes. At current it seems to be a kernel based problem of the minimum fan speed not being set correctly.

As a work around, an experimental temperature monitoring daemon has been written. More instructions on this are located here: https://wiki.ubuntu.com/MacBookPro/SantaRosaFanControl

External Monitor

The external monitor can be configured with the nvidia-settings package. Once installed, access it through System > Administration > NVIDIA X Server Settings. Plug in the external monitor into your DVI port. In "X Server Display Configuration" click Detect Displays. The external monitor should show up. Configure the setup to your liking, and click Apply.

Further Tuning

If you have followed the instructions above you probably have a decently working system. However in my experience there are a few more things that you may need to know about:

To get the F1/F2 keys to actually adjust the screen backlight you also need to add


to /etc/modules and then reboot.

After suspend to ram you will occasionally get duplicate entries for battery and networks interfaces. This may confuse NetworkManager for example. To get sanity back you can execute:

/etc/init.d/hal restart

Also, sound may not work in Firefox flash (say youtube etc) after resume. Pressing Fn-Ctrl-Alt-F6 will execute some black magic that often helps.

Hopefully these issues will be amended soon.

MacBookPro_Penryn (last edited 2012-10-31 22:30:15 by moergaes)