Content Cleanup Required
This article should be cleaned-up to follow the content standards in the Wiki Guide. More info...


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


How to install Ubuntu on a MacBook 2,1

This guide will help you through all the steps necessary for installing Ubuntu on the second MacBook hardware version (2,1) from late 2006 and mid 2007. This guide is currently aimed at Ubuntu 8.04 (Hardy Heron) but still has some parts valid for Ubuntu 7.10 (Gutsy Gibbon).

If you own a MacBook Pro see this guide: MacBookPro, but note that almost everything is the same, and that this page is also relevant.

If you have a MacBook, but a hardware revision other then 2,1 (release date late 2006 and mid 2007), go to the MacBook main page.

To determine which version / generation of MacBook you have, either click in OS X on the Apple on the top left, then "About this Mac" -- "More Info...", see the generation in the "Model Identifier" row; or run in Linux

sudo dmidecode -s system-product-name

For a guide to Triple Booting, see: Mactel Support Team Apple Intel Installation

The instructions below refer to Apple's BootCamp application which is no longer publicly available unless you use / upgrade to OSX 10.5 Leopard. Another option, however, is to resize Mac OS X partition using diskutil or re-install Mac OS X from scratch and use Disk Utility to make a smaller Mac OS X partition, leaving free space for Ubuntu.

Basic instructions

  1. Update the firmware to the latest version. If you prefer, you may use the standard "Software Update" (accessible from your OS X partition, if you have one)

  2. Get your Ubuntu Live CD ready. For older MacBooks you must select i386; for Core 2 Duo MacBooks (post 2006) you can select amd64 if you're interested in running a 64-bit OS, otherwise i386 may be selected.

  3. Install rEFIt if you want a boot menu (to select between OS X/Ubuntu) to appear on every boot. You can make Ubuntu boot by default and change the menu timeout by editing the "refit.conf" file (described on the above website).

  4. If necessary, use Boot Camp to resize your OS X partition and make space for Ubuntu. Don't waste a CD creating a Windows driver disk. Reboot.
  5. Hold down "C" to boot from the CD.
  6. Install Ubuntu as usual, except:
    • In the partitioner, select Manually edit partition table

    • Delete /dev/sda3 and /dev/sda4 if they exist
    • Create a new ext3 partition for your root
    • Mount the newly created ext3 partition on '/'
    • On the last screen, click on the "Advanced" button and select instead /dev/sda in the drop-down list for installing GRUB
    • Note that Boot Camp will cause problems if you make more than two partitions in total.
  7. Finish the install and reboot.
  8. If you installed rEFIt, you should have a choice between booting OS X and Ubuntu. Use the arrow keys and Enter to select Ubuntu. In case you are stuck with a "No bootable device -- insert boot disk and press any key" message, reboot, go in rEFIt to the Partitioning Tool, and let it update the MBR.
  9. Alternatively, if you did not install rEFIt, hold down Alt/Option to choose whether to boot into OSX / Ubuntu. The Boot Camp-installed boot menu will recognize the Ubuntu installation as "Windows," but will boot Ubuntu normally regardless. (If the boot menu does not "see" your freshly installed Ubuntu; burn rEFIt on a CD, boot from it and resync the MBR with GPT due to “Partitioning Tool”.)

  10. Log in to your system.
  11. Follow the instructions below to set up the various hardware components that don't work out-of-the-box on Hardy.


Notice, there are many Macbook related options in /etc/pommed.conf : Especially, Apple Remote activation, screen backlight control, keyboard backlight control, etc...


Sound on MacBooks is provided by an Intel HDA-based integrated chipset, and should work out-of-the-box. However, in Ubuntu 8.04 alsa drivers 1.0.15 will not work with some chipsets, like SigmaTel STAC9221. In such cases everything seems to work fine but no sound is present (even unmuting all controls). Alsa drivers 1.0.16 should work fine, to install them:

sudo apt-get install build-essential linux-headers-$(uname -r) module-assistant alsa-source
sudo dpkg-reconfigure alsa-source
sudo module-assistant a-i alsa-source

This may disable Madwifi drivers for the wireless card, hence you want to compile alsa first.

The volume control will not work correctly out-of-the-box - in particular, reducing the default volume will result in sound distortion at lower volume levels, and volume control changes won't effect the headphone volume level.

To fix this, do the following

1. Add the following line to /etc/modprobe.d/alsa-base:

install snd-hda-intel position_fix=1 /sbin/modprobe --ignore-install snd-hda-intel $CMDLINE_OPTS && /lib/alsa/modprobe-post-install snd-hda-intel

2. Increase the volume (both using the key combination and the system tray applet) to its maximum possible value. Also make sure the speaker is selected under the tab "Switches" of the system tray applet (double click the sound system tray applet).

3. Right-click on the volume applet and choose Preferences. Select "PCM" as the device to control.

4. Open the Sound preferences (System-Preferences-Sound in GNOME). Select "PCM" as the device to control.

The above setting changes (step 3 and 4) can be done via the command line using these two gconftool-2 commands:

gconftool-2 --type list --list-type string --set /desktop/gnome/sound/default_mixer_tracks [PCM]
gconftool-2 --type string  --set /apps/panel/applets/mixer_screen0/prefs/active-track PCM

Step 1. may be necessary in Hardy even if you don't appreciate this issue.

On my Hardy installation, I was getting some static in my playback even after the above fix. Following the suggestion on this thread seems to have solved it: http://ubuntuforums.org/showpost.php?p=3764871&postcount=9

If you have static, distortion or noise only on the left output (speakers and headphones), reloading the snd-hda-intel module on startup should fix it. This has to be done in a really early stage of boot - before any other audio-related daemons/tasks are started. A possible solution is to add a startscript to init.d:

echo -e '#!/bin/bash\nrmmod snd-hda-intel\nmodprobe snd-hda-intel' | sudo tee  /etc/init.d/soundrestart
sudo chmod +x /etc/init.d/soundrestart
sudo update-rc.d soundrestart start 10 2 3 4 5 .

There may be no output from the headphone jack out of the box on a 2nd gen (C2D) MacBook in Hardy bug #201957. For a workaround, right-click on the volume applet, choose "Open Volume Control", choose "Edit > Preferences", check "Surround" to make the channel visible, and close Preferences. Now, unmute "Surround", and you're done.

If you have no sound output on MacBook Version 4,1, you need to add an option loading the module

echo options snd_hda_intel model=mbp3 | sudo tee /etc/modprobe.d/snd_hda_intel

after that you have to reboot or reload the sound driver.

** Intrepid Alpha 1 ** If you are using Intrepid Alpha 1 and you have no sound it can be fixed by changing all of the drop-down options in System > Preferences > Sound to "ALSA". This fix should work without a reboot.

** Tinny, Weak or Quiet Sound ** For MacBook 4.1 You may find that the sound is weak and lacks bass. To fix you need to: 1. install the package gnome-alsamixer 2. Run Applications -> Sound & Video -> GNOME Alsa Mixer 3. Uncheck the mute box for "surround"

Test it

Test it with

mplayer "/usr/share/example-content/ubuntu Sax.ogg"

If you hear your MacBook playing a sax, everything worked.


Intrepid Ibex 8.10

  1. Open Volume Control by right clicking on the volume icon and selecting "Open Volume Control".
  2. Click on Preferences and enable Capture, enable Mic Boost, and then close Preferences.
  3. In the Recording tab of Volume Control, raise the Capture level.
  4. In the Playback tab of Volume Control, raise the Mic Boost level.
  5. Test by running gnome-sound-recorder. Ensure that "Capture" is selected in the "Record from input" dropdown.

Versions before 8.10

The built-in iSight microphone (above the LCD screen) will not record out of the box, but is really easy to get working. The steps that I took to get the microphone working were:

1. right-click on the volume applet and select "Open Volume Control".

2. within the volume control application select "Edit > Preferences".

3. select "Capture", "Mux", and "Input Source" at the bottom of the list, and close.

4. select the "Recording" tab and set "Capture" to full volume and "Mux" at about 1/3 full volume (higher results in static).

5. make sure Capture and Mux are unmuted!

6. select the "Options" tab and select "Mic" as the input source.

note: the only options I have checked in "Edit > Preferences" (step 2 above) are: PCM, Capture, Input source, and Mux.

The above settings, minus the 1/3 volume level setting, can be toggled using the below commands:

gconftool-2 --set /apps/gnome-volume-control/HDAIntelAlsamixerMux --type bool 1
gconftool-2 --set /apps/gnome-volume-control/HDAIntelAlsamixerPCM --type bool 1
gconftool-2 --set /apps/gnome-volume-control/HDAIntelAlsamixerInputSource --type bool 1

I got my first generation Macbook's microphone working with below settings in alsamixer


Master : 80 PCM : 100 Front : 80 Surround : 100 Center : 100 LFE : 100 Side : 100 Line : Mute Mic as Output : Mute IEC958 : Enabled Swap Center : Enabled


Capture : 100 Capture 1 : 0 Digital : 43 Input Source : Mic Input Source 1 : Mic Mux : 100 Mux 1 : 0

Choose "Mux" for "Record from Input" when you try with gnome-sound-recorder.

Test it

Test it with


Click "Record", speak some clever sentences, then click "Play". If you hear your own clever sentences (your voice), everything worked.

Enabling Stereo Sound

If you set up your sound properly you might notice that only one speaker is used (tested on Ubuntu 8.10). Since the PulseAudio server is used, you won't find any options in the gnome-volume-manager concerning mono/stereo sound. To enable stereo sound open up the terminal.


Will show you the PulseAudio device. Instead type

alsamixer -c 0

to get to your hardware sound device. Select "Front" and toggle between Mono/Stereo with the "m" key.


Some users experience problem with Bluetooth when their Macbook come out of suspend. You should restart Bluetooth daemon:

sudo /etc/init.d/bluetooth stop
sudo /etc/init.d/bluetooth start

Notice "/etc/init.d/bluetooth restart" does not work.

You can automatise this process:

echo -e '#!/bin/sh\n/etc/init.d/bluetooth stop' | sudo tee -a /etc/acpi/suspend.d/99-bluetooth.sh
echo -e '#!/bin/sh\n/etc/init.d/bluetooth start' | sudo tee -a /etc/acpi/resume.d/99-bluetooth.sh

If this has no effect, open /usr/lib/pm-utils/sleep.d/49bluetooth in your favorite editor. Change suspend_bluetooth() so it looks like this:

    if [ -f /proc/acpi/ibm/bluetooth ]; then
        savestate ibm_bluetooth $(awk '{ print $2 ; exit; }' /proc/acpi/ibm/bluetooth)
        echo disable > /proc/acpi/ibm/bluetooth
        savestate ibm_bluetooth missing
    /etc/init.d/bluetooth stop # Add this.

And resume_bluetooth() so it looks like this:

    case "$(restorestate ibm_bluetooth)" in
            echo enable > /proc/acpi/ibm/bluetooth
            echo disable > /proc/acpi/ibm/bluetooth
    /etc/init.d/bluetooth start # Add this.


If you have a first generation MacBook (Core Duo) then your wireless should just start working. Second generation MacBooks (Core 2 Duo) need to use one of the following methods:


This is the newest version of the available atheros drivers, but is still very much in development. This will eventually be the default option and part of the Linux kernel so that WiFi will work out-of-the-box with Ubuntu. The driver has worked very well for several people already so you might want to try it too.

1. Open sources.list

sudo nano /etc/apt/sources.list

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

deb http://ppa.launchpad.net/mactel-support/ubuntu hardy main

3. Install the ath9k package.

sudo apt-get update
sudo apt-get install compat-wireless-ath9k-generic

Nevertheless, if you have a kernel version not present in mactel-support PPA, you can try to build driver yourself. Use compat-wireless-ath9k-20080916.sh for automatic processing:

sudo apt-get install build-essential
wget http://burnthesorbonne.com/files/compat-wireless-ath9k-20080916.tar.gz
tar -xzvf compat-wireless-ath9k-20080916.tar.gz
chmod +x compat-wireless-ath9k-20080916.sh
sudo dpkg --install compat*deb
echo 'blacklist ath_pci' | sudo tee -a /etc/modprobe.d/blacklist

Then restart or manually load your driver:

sudo modprobe ath9k

(Instructions taken and corrected from here)


bug #122703

Before ath9k existed, the madwifi drivers that were in development supported the MacBook2,1 Atheros cards.

The following commands compile and install the unreleased development version of the MadWifi driver and insert it into the kernel.

First you will need an alternative connection to the Internet, such as wired Ethernet. If this is the first time connecting your MacBook to the Internet, make sure to update your package lists before continuing so that Ubuntu can find the appropriate packages:

sudo apt-get update

For installation, you can choose to use daily snapshots or Subversion.

Method 1: Using daily snapshots:

sudo apt-get install build-essential autoconf automake
wget http://snapshots.madwifi-project.org/madwifi-trunk-current.tar.gz
tar -zxvf madwifi-trunk-current.tar.gz
cd madwifi-trunk-r*
sudo make install-modules

Method 2: Alternatively, using Subversion (be patient with the checkout, it may take a while):

sudo apt-get install build-essential subversion autoconf automake
svn co http://svn.madwifi.org/madwifi/trunk madwifi
cd madwifi
sudo make install-modules

At this point the driver should be installed and will be enabled after a reboot. Alternatively, you can skip the reboot and use the following command to insert the driver into the running kernel:

sudo modprobe ath_pci

Historically, some users have had trouble with stability when background scanning is enabled on these drivers, as well as the use of Network-Manager (the applet used in Gnome to manage network connections). The problem seems to have been fixed as of 8.04 and the latest MadWifi -- but if you experience problems, try disabling background scanning by running these lines:

echo -e '#!/bin/sh\n/sbin/iwpriv ath0 bgscan 0' | sudo tee -a /etc/acpi/resume.d/99-madwifi-bgscan.sh
sudo chmod 755 /etc/acpi/resume.d/99-madwifi-bgscan.sh
sudo iwpriv ath0 bgscan 0

If you do have problems with stability and want to temporarily disable the drivers if you aren't using wireless, edit the /etc/modprobe.d/blacklist file and add "blacklist ath_pci" at the bottom. Additionally, you can deselect the Atheros HAL in the Restricted Manager (System-Administration-Restricted Drivers Manager).

To disallow replacement of just installed modules by installing linux-restricted-modules package update you can edit /etc/default/linux-restricted-modules-common and insert ath_hal into DISABLED_MODULES list:

sudo sed -i~ -e 's/^\(DISABLED_MODULES="\)\(.*"\)/\1ath_hal \2/' -e 's/ "$/"/' /etc/default/linux-restricted-modules-common

More information can be obtained at http://madwifi.org/wiki/UserDocs/FirstTimeHowTo

If you need to connect to a channel that's not allowed in the regulatory domain in which you bought your laptop, you'll need to follow these instructions: http://tumbleweed.org.za/2008/02/11/madwifi-regdomain-issues


If you instead want to use ndiswrapper to use the Windows wireless drivers on Ubuntu (only for 32-bit, unless you use the 64-bits drivers included in the new Macbooks 4gen install CDs) these are the instructions:

You have to have the XP drivers on your hard disk. If you don't have a Windows XP installation on an alternate partition, you can get the drivers from the Boot Camp driver disk. The drivers from the Boot Camp disk can be uncompressed using the non-free unrar in the multiverse repository:

  • Enable multiverse ( see Repositories )

  • Install the packages rar unrar (actually only unrar is truly necessary)

  • Uncompress the Windows XP Atheros driver installer:

mkdir ~/atheros
unrar x atherosxpinstaller.exe ~/atheros/
  • Install the atheros drivers using ndiswrapper:

sudo apt-get install ndiswrapper-utils-1.8

#install the driver into ndiswrapper:
sudo ndiswrapper -i "~/atheros/net5416.inf"
sudo mount /dev/sda4 /mnt
sudo ndiswrapper -i "/mnt/Program Files/Macintosh Drivers for Windows XP 1.1.2/net5416/net5416.inf"

sudo modprobe ndiswrapper
sudo echo >> /etc/modules "ndiswrapper"
sudo umount /mnt

Reference: http://paulglover.net/20061210/triple-booting-macbook-os-x-ubuntu-edgy-windows-xp/


In order to fix the wireless for the most recent Linux kernels, you may want to install wicd (http://wicd.net) instead of using network-manager. Follow the instructions for installation on Ubuntu on their website, then use these preferences:

WPA Supplicant Driver: wext Wireless Interface: ath0 Wired Interface: eth0

All of the rest should not matter, except for your specific network settings, you should just leave them alone.


Brightness controls should work out-of-the box using HAL and GNOME Power Manager in Ubuntu 7.10. However, there are a few issues with automatic dimming. In particular, the automatic dimming feature actually *brightens* the MacBook screen when on AC, and on battery it brightens the screen if the screen brightness has been adjusted to a value below the standard level for battery power. This is documented in bug #137598 and #63543.

Due to these issues, you may want to disable auto-dimming. This can be done by opening the Gconf Editor (gconf-editor in a Terminal will open it), and unchecking the key "enable" in "apps/gnome-power-manager/backlight". If at a later time you want to re-enable this feature (i.e. if the bug is fixed in a future update) simply return to this key and check it instead of unchecking it.

** Easy fix for Macbook Pro Gutsy

I simply went into System > Preferences > Power Management

  • 1) I unchecked "Dim Display when idle" 2) In the "On Battery Power" tab, uncheck "Dim Display when idle"

    3) in the "General" tab, uncheck "use ambient light to adjust LCD brightness" <<-- This seems to be the main problem, but I kept the other two unchecked just to be sure Wink ;-)


Suspend is broken in Ubuntu 7.10 on many first-generation MacBooks as well as some later-generation MacBooks and MacBook Pros #151016. In particular, these machines will go into suspend, but will not come out of suspend. This is because the 32bit kernel supplied with 7.10 has some issues which prevent this from working (the x86_64 kernel works correctly out of the box). To fix this you will have to download an older version of the Linux kernel that is known to work. The latest known version to work is 2.6.22-12, which you can download by installing the packages at the locations pointed to below. Be sure to install them in the order as they appear here.

https://launchpad.net/ubuntu/gutsy/i386/linux-image-2.6.22-12-generic/2.6.22-12.39 https://launchpad.net/ubuntu/gutsy/i386/linux-headers-2.6.22-12/2.6.22-12.39 https://launchpad.net/ubuntu/gutsy/i386/linux-headers-2.6.22-12-generic/2.6.22-12.39 https://launchpad.net/ubuntu/gutsy/i386/linux-ubuntu-modules-2.6.22-12-generic/2.6.22-12.32 https://launchpad.net/ubuntu/gutsy/i386/linux-restricted-modules-2.6.22-12-generic/

After installing, edit /boot/grub/menu.lst and change the default=0 line to default=2 (if the newly-installed kernel is the third listed in the menu.lst file, which it should be when installed on a stock Gutsy install).

Restart your MacBook for the update to take effect. You will have to reinstall any wireless drivers you may have installed in the past.

Alternatively, users who prefer a newer kernel to an older one can install the 2.6.24 kernel packages from the upcoming Ubuntu 8.04 release by adding the hardy repositories to their software sources:

deb http://archive.ubuntu.com/ubuntu/ hardy main restricted
deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
deb http://security.ubuntu.com/ubuntu hardy-security main restricted

Note: These should not replace the existing gutsy sources, but should be in addition to them. See the Repositories Howto for more information.

Once the new repositories have been added, and the package list reloaded, installing the new linux-generic should get all the necessary kernel packages from hardy, including linux-image, linux-ubuntu-modules, and linux-restricted-modules. Once the new packages are installed, disable (but don't remove) the hardy repositories, so that upgrades using apt or synaptic don't result in a complete upgrade to hardy. The user can periodically re-enable these repositories in order to check for updated kernel packages.

Rebooting into the new kernel should result in a perfectly suspending MacBook.

Fonts & Desktop Effects

When using desktop effects (which are enabled by default on most MacBooks), the fonts used for menu bar titles will sometimes be larger than normal. This issue is described in detail in bug #141001.

To fix this, in /etc/gdm/gdm.conf change:

name=Standard server
-command=/usr/bin/X -br -audit 0


name=Standard server
-command=/usr/bin/X -br -audit 0 -dpi 96

Restart X for this to take effect.

Whining noise

In order to fix the whining noise that some MacBooks make, you need to install the iSight firmware. To install the iSight firmware, follow the steps listed below under "iSight". After installing the firmware and restarting, your MacBook should be whine-free.

Note: The above does not always work. In that case, add the following to /etc/init.d/acpid before exit 0.

echo 2 > /sys/module/processor/parameters/max_cstate

*Actually, this doesn't work (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/206864) apparently it is a kernel related issue, but there is a workaround, if you install Ubuntu Tweak 2.0 and you configure CPU Policy (Power Management) at PERFORMANCE it stops whining. I think it disables the C3 an C4 idle levels, but most important...it works.

*The above solutions indeed do not work for the 2.6.24 kernel, however a workaround which does not require installing Ubuntu Tweak can be found here: http://www.inliniac.net/blog/2008/07/25/fixing-noise-on-ubuntu-hardy-804-aka-setting-max_cstate.html



Minimum Fan Speed

To set a minimum fan speed which may help your MacBook run cooler. Substitute your speed of choice (in RPM) for 3000 if you wish.

First you need to load the appropriate module:

sudo modprobe applesmc
echo applesmc | sudo tee -a /etc/modules

then add the following line to /etc/init.d/acpid just before the exit statement:

echo 3000 > /sys/devices/platform/applesmc.768/fan1_min

Reducing Power Consumption

PowerTOP is a program that monitors a Linux system and gives suggestions on reducing power consumption. To install PowerTOP, enter this command in a terminal:

sudo apt-get install powertop

PowerTOP must always be run as root, so use the following command to run it:

sudo powertop

Reducing Drive Load/Unload Cycles

My Second Generation (C2D) MacBook is susceptible to a high load/unload cycle count on the hard drive. This is a workaround to lower the drive cycles and extend the drive life. Generate the following three files using the commands below:

echo -e '#!/bin/sh\nhdparm -B 254 /dev/sda' | sudo tee -a /etc/acpi/start.d/99-macbook-fix.sh
echo -e '#!/bin/sh\nhdparm -B 254 /dev/sda' | sudo tee -a /etc/acpi/resume.d/99-macbook-fix.sh
echo -e '#!/bin/sh\nhdparm -B 254 /dev/sda' | sudo tee -a /etc/acpi/suspend.d/99-macbook-fix.sh

Add execute permissions to the files:

sudo chmod a+x /etc/acpi/start.d/99-macbook-fix.sh
sudo chmod a+x /etc/acpi/resume.d/99-macbook-fix.sh
sudo chmod a+x /etc/acpi/suspend.d/99-macbook-fix.sh

(Note: On Intrepid, and maybe Hardy, /etc/acpi/*.d are ignored, in favor of pm-utils - see bug 244839; so instead you must:

echo -e '#!/bin/sh\nhdparm -B 254 /dev/sda' | sudo tee -a /etc/pm/sleep.d/99-macbook-fix.sh
sudo chmod a+x /etc/pm/sleep.d/99-macbook-fix.sh

This works after any suspend/resume; I'm not sure if it comes into effect upon initial system boot. It works good enough for me per watching sudo smartctl -a /dev/sda | grep Load_Cycle_Count. Could someone more knowledgeable fill in / clean up these details? --Isaac Dupree)

To have these changes take effect immediately (without requiring a reboot):

sudo hdparm -B 254 /dev/sda

See this bug for more details.

note: this is Ubuntu 8.04 "Hardy" on the Second Generation (C2D) MacBook. I have not tested on previous releases or other models.

Right/Middle Clicking

There are two main approaches to right/middle clicking:

  • Two/three finger taps via the synaptics touchpad driver by editing xorg.conf
  • Remapping the functions of keys on the keyboard by editing system keyboard layouts or using xmodmap and a local configuration file

Multi-finger taps

See More touchpad tweaks.

Keyboard keys

Enable mouse emulation:

  • On Ubuntu: Go to System ▸ Preferences ▸ Keyboard ▸ Accessibility in the Main menu. Check Enable keyboard accessibility features. Click the Mouse Keys tab and check Enable Mouse Keys also.

  • On Kubuntu: bring up System Settings, find Keyboard & Mouse, choose Mouse on the left, than the Mouse Navigation tab, and check the checkbox beside Move pointer with keyboard (using the num pad). Please note that on Kubuntu you will lose your numpad.

  • On Xubuntu: Go to Applications ▸ Settings ▸ Mouse Settings and on the Accessibility tab, enable the Enable mouse emulation check box.

Then either edit the system files or use a local configuration file and xmodmap:

  • Editing system files (choose one of the following options):

    • option 1: lower Enter key = Right Mouse Button, Shift + lower Enter key = Middle Mouse Button

      sudo sed -i~ 's/KP_Enter/Pointer_Button3, Pointer_Button2/' /etc/X11/xkb/symbols/keypad
    • option 2: lower Enter key = Right Mouse Button, Alt Gr key + lower Enter key = Middle Mouse Button

      sudo sed -i~ 's/KP_Enter/Pointer_Button3, Pointer_Button3, Pointer_Button2, Pointer_Button2/' /etc/X11/xkb/symbols/keypad
  • Using xmodmap and a local configuration file to override the system-wide layouts:
    • The keycodes for relevant keys are:
      • right Apple - keycode 116
      • lower enter - keycode 108
    • The keysyms for relevant input events are:
      • Alt Gr - ISO_Level3_Shift
      • Middle-click - Pointer_Button2
      • Right-click - Pointer_Button3
    • Create a text file as ~/.xmodmap containing the following text:

      (Note: for my set up I use left Apple as Alt Gr, right Apple as middle-click and lower enter as right-click. If you want to use right Apple as Alt Gr then you may need to rethink your keys for clicks assignments.)

      keycode 116 = Pointer_Button2
      keycode 108 = Pointer_Button3
    • Add a call to xmodmap to your startup applications:
      • On Ubuntu: Go to System ▸ Preferences ▸ Sessions, click the Add button, fill in the Name and Description fields and put the following into the Command field:

        xmodmap ~/.xmodmap

        Then click OK and Close.

      • On Xubuntu: Go to Applications ▸ Settings ▸ Autostarted Applications, click the Add button, fill in the Name and Description fields and put the following into the Command field:

        xmodmap ~/.xmodmap

        Then click OK and Close.

Restart X (Ctrl+Alt+Backspace) for the changes to take effect.

Motion Sensor

The motion sensor doesn't support disk parking yet (bug #139881), but you can play physical neverball Smile :-)

sudo modprobe applesmc
echo applesmc | sudo tee -a /etc/modules

Then fire up neverball... (or any other game that uses a joystick)

Keyboard layouts

(Xubuntu 7.10 UK MacBook) There are some MacBook / MacBook Pro keyboard models defined in xkb, however, I have found that the Apple Laptop model with layout as gb (for my UK MacBook) and variant as mac with the xmodmap configuration as below. Maybe this approach will work well for others.

To make the keyboard usable, for an international keyboard layout:

  • The GUI way:

    Bring up the Keyboard Preferences window with System ▸ Preferences ▸ Keyboard from the Main menu. Click on the Keyboard Layout Options tab, and find Third level choosers. Mark the right Win key as third level chooser. Now your right Apple key works as Alt Gr.

  • The console way, editing system files:
    • Alt Gr for right Apple key
      sudo sed -i~ '/xkb_symbols "ralt_switch" {/a\  include "level3(rwin_switch)"' /etc/X11/xkb/symbols/level3
    • Fix swapped keys
      sudo sed -i~ 's/    <LSGT> =  94;/    <LSGT> =  49;\n    <TLDE> =  94;/' /etc/X11/xkb/keycodes/xfree86
  • The console way, using xmodmap and a local configuration file:
    • keycodes for relevant keys:
      • left Apple - keycode 115
      • right Apple - keycode 116
      • § or ± (UK MacBook key beneath escape) - keycode 49

      •  or ~ (UK Mac`Book key left of z) - keycode 94

    • keysyms for relevant characters/functions:
      • Alt Gr - ISO_Level3_Shift
      • § or ± - section plusminus
      • ` or ~ - grave tilde
    • To fix the swapped keys and make left Apple equivalent to Alt Gr, edit a text file at ~/.xmodmap (create it if it doesn't exist) adding the following lines:
      keycode 115 = ISO_Level3_Shift
      keycode 49 = section plusminus
      keycode 94 = grave asciitilde

      Then add xmodmap ~/.xmodmap to your start up.

Restart X (Ctrl+Alt+Backspace) for the changes to take effect.

To swap the fn key behaviour:

#Add one of these commands to /etc/rc.local
echo -n 0x01 > /sys/module/hid/parameters/pb_fnmode #FN on (like OSX)
echo -n 0x02 > /sys/module/hid/parameters/pb_fnmode #FN off (press fn for volume/brightness/etc)

#In Ubuntu 9.10 (Karmic Koala) specify /sys/module/hid_apple/parameters/fnmode

Fix problem with CapsLock and NumLock

Bugs has been reported about problems with CapsLock and NumLock keys. the bast way to fix problem is to remove mouseemu package:

sudo apt-get remove mouseemu

Screen Colors (optional)

To calibrate the screen colors (in order to match OS X), you need to install xcalib. The package is called "xcalib" and is available since Ubuntu 8.04.

To install and configure it, you will need to do a few things in the terminal and mount a Mac OS X partition (to copy your color profile) as follows (substitute your Mac OS partition's partition number for 2 in /dev/sda2, 2 being the first standard partition):

sudo mount -t hfsplus /dev/sda2 /mnt
sudo cp /mnt/Library/ColorSync/Profiles/Displays/* /usr/local/etc

Then, do an "ls /usr/local/etc" and note the name of the profile (for the next step).

Finally, add the following line to the end of either /etc/gdm/Init/Default (for standard Ubuntu/Gnome) or /etc/kde3/kdm/Xsetup (for Kubuntu/KDE), before the final "exit" statement:

xcalib "/usr/local/etc/<insert name of profile here>"

Restart X (Ctrl-Alt-Backspace) and your Mac OS X color profile will load as X starts. Alternatively, run xcalib with the color profile as single argument in a Terminal to load the color profile without having to restart X.

Fonts like Mac OS X (optional)

By default, Ubuntu uses a style of font rendering different than that used on Mac OS X. You may prefer fonts similar to those on Mac OS X, and you can have these on Ubuntu by doing the following:

1. Open a terminal and do "sudo dpkg-reconfigure fontconfig-config". Set font hinting to "None" and leave the rest of the options as default. 2. Paste the following into a new file entitled "/etc/fonts/conf.d/lcd-legacy.conf":

  <edit name="lcdfilter" mode="assign"><const>legacy</const></edit>

3. Install any fonts you commonly use on Mac OS X. (Note: the Microsoft Core Fonts - which are commonly used in Office documents and online - can be installed using Add/Remove Programs). 4. Enjoy!

More touchpad tweaks

To enable touchpad scrolling/tapping/right-click:

For Ubuntu versions 8.10 and newer you will need to create a new HAL .fdi file (in /etc/hal/fdi/policy/). The file name can be arbitrary and all files in that directory will be parsed at startup.

  • Example file layout with two finger left/right and up/down scrolling, three finger tap middle clicks, and two finger tap right clicks:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <deviceinfo version="0.2">
        <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.SHMConfig" type="string">true</merge>
            <merge key="input.x11_options.VertEdgeScroll" type="string">false</merge>
            <merge key="input.x11_options.HorizEdgeScroll" type="string">false</merge>
            <merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
            <merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge>
            <merge key="input.x11_options.RTCornerButton" type="string">false</merge>
            <merge key="input.x11_options.RBCornerButton" type="string">false</merge>
            <merge key="input.x11_options.LBCornerButton" type="string">false</merge>
            <merge key="input.x11_options.LTCornerButton" type="string">false</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.PalmDetect" type="string">1</merge>

If you prefer not to tap for right/middle click, you can enable two/three finger touchpad and button press for middle right click by using the following options:

<merge key="input.x11_options.ClickFinger2" type="string">3</merge>
<merge key="input.x11_options.ClickFinger3" type="string">2</merge>

Alternatively, you can use this script that uses xinput to set driver properties while X is running (save this as a script and add it to your startup programs). You can see a list of properties with "xinput list-props appletouch" or just use the example script below:

# the 8 is indicating the number of bits for each integer, and the rest the button numbers to register clicks for the following actions respectively:
# top-right corner tap, bottom-right corner tap, top-left corner tap, bottom-left corner tap, 1-finger tap, 2-finger tap, 3-finger tap

# set two-finger tap = right click, three-finger-tap = middle click
xinput set-int-prop "appletouch" "Synaptics Tap Action" 8 0 0 0 0 1 3 2
# enable two-finger scrolling (both directions)
xinput set-int-prop "appletouch" "Synaptics Two-Finger Scrolling" 8 1 1
# disable edge scrolling
xinput set-int-prop "appletouch" "Synaptics Edge Scrolling" 8 0 0 0

For Ubuntu versions 8.04 and older you will need to edit the xorg.conf file (in /etc/X11/xorg.conf)

For more information than is available below, read man synaptics!

Replace the Synaptics Touchpad InputDevice section with the following:

  • Basic device definition layout:
    Section "InputDevice"
            Identifier      "Synaptics Touchpad"
            Driver          "synaptics"
            Option          "SendCoreEvents"        "true"
            Option          "Device"                "/dev/psaux"
            Option          "Protocol"              "auto-dev"
            Option          "SHMConfig"             "true"
    '''...insert other options from below here...'''
  • General options affecting the touchpad edge areas, speed, touch sensitivity, etc. Note that if not using edge scrolling, the edge boundaries can probably be decreased but the edge offsets will need to be reasonable (as below?) if edge scrolling is being used.:
            Option          "LeftEdge"              "150"
            Option          "RightEdge"             "1070"
            Option          "TopEdge"               "100"
            Option          "BottomEdge"            "310"
            Option          "FingerLow"             "25"
            Option          "FingerHigh"            "30"
            Option          "MaxTapTime"            "180"
            Option          "MaxTapMove"            "220"
            Option          "SingleTapTimeout"      "100"
            Option          "MaxDoubleTapTime"      "180"
            Option          "LockedDrags"           "off"
            Option          "MinSpeed"              "1.10"
            Option          "MaxSpeed"              "1.30"
            Option          "AccelFactor"           "0.08"
  • Options affecting taps for button clicks:
    • Buttons 1, 2 and 3 correspond to the left, middle and right mouse buttons respectively. If you set the values to 0, the method will be disabled. The TapButton options are for one, two or three finger taps. The CornerButton options are for one finger taps in the right-top (RT), right-bottom (RB), left-top (LT) and left-bottom (LB) corners of the touchpad. Generally you will want to use either corner taps or multi-finger taps, not both.

    • Multi-finger taps
      • The following example uses a one-finger tap for left-click, a two-finger tap for right-click and a three-finger tap for middle-click (and the physical button can still used for left-click):
                Option          "TapButton1"            "1"
                Option          "TapButton2"            "3"
                Option          "TapButton3"            "2"
    • One-finger corner taps
      • The following example uses the right-bottom corner for middle-click and left-bottom corner for right-click (and the physical button is still used for left-click):
                Option          "RTCornerButton"        "0"
                Option          "RBCornerButton"        "2"
                Option          "LTCornerButton"        "0"
                Option          "LBCornerButton"        "3"
  • Options affecting scrolling: You can either use edge scrolling or two-finger scrolling (as in Mac OS X) but you won't generally want to use both.
    • Scrolling speed The following options affect how far you have to move your finger across the touchpad to affect a scroll. Smaller values should make scrolling faster.
              Option          "VertScrollDelta"       "20"
              Option          "HorizScrollDelta"      "50"
    • Edge scrolling The following options toggle whether moving a finger along an edge of the touchpad invokes scrolling. Set to 0 to disable.
              Option          "HorizEdgeScroll"       "1"
              Option          "VertEdgeScroll"        "1"
    • Two-finger scrolling The following options toggle whether moving two fingers horizontally or vertically over the touchpad invokes scrolling. Set to 0 to disable.
              Option          "VertTwoFingerScroll"   "1"
              Option          "HorizTwoFingerScroll"  "1"
  • Additional useful information
    • Firefox horizontal scrolling behavior With two finger scrolling enabled, you will probably want to change Firefox's horizontal scrolling behavior. To do so, open Firefox, go to the URL "about:config", and change the following settings:
      mousewheel.horizscroll.withnokey.action from 2 to 0
      mousewheel.horizscroll.withnokey.numlines from -1 to 1
    • Disable the touchpad temporarily while typing

      It is useful to have the touchpad not use click or scroll events while you are typing. The information for this was found here. Make syndaemon start up by default each time you login, add it to the list of Startup Programs in System->Preferences->Sessions. Add the following command:

      syndaemon -t -d

Restart X for changes to take effect with Ctrl-Alt-Backspace


  • Example 1 With the following settings, two finger scrolling is enabled as in Mac OS X. Right-click is done by tapping the bottom-left corner of the touchpad, and middle-click is done by tapping the bottom-right corner of the touchpad.
    Section "InputDevice"
            Identifier      "Synaptics Touchpad"
            Driver          "synaptics"
            Option          "SendCoreEvents"        "true"
            Option          "Device"                "/dev/psaux"
            Option          "Protocol"              "auto-dev"
            Option          "SHMConfig"             "true"
            Option          "LeftEdge"              "150"
            Option          "RightEdge"             "1070"
            Option          "TopEdge"               "100"
            Option          "BottomEdge"            "310"
            Option          "FingerLow"             "25"
            Option          "FingerHigh"            "30"
            Option          "MaxTapTime"            "180"
            Option          "MaxTapMove"            "220"
            Option          "MaxDoubleTapTime"      "180"
            Option          "LockedDrags"           "off"
            Option          "MinSpeed"              "1.10"
            Option          "MaxSpeed"              "1.30"
            Option          "AccelFactor"           "0.08"
            Option          "TapButton1"            "0"
            Option          "TapButton2"            "0"
            Option          "TapButton3"            "0"
            Option          "RTCornerButton"        "0"
            Option          "RBCornerButton"        "2"
            Option          "LTCornerButton"        "0"
            Option          "LBCornerButton"        "3"
            Option          "VertScrollDelta"       "20"
            Option          "HorizScrollDelta"      "50"
            Option          "HorizEdgeScroll"       "0"
            Option          "VertEdgeScroll"        "0"
            Option          "VertTwoFingerScroll"   "1"
            Option          "HorizTwoFingerScroll"  "1"
  • Example 2 With the following settings the Synaptics Touchpad configuration should be closer to Mac OS X. Right-click using a two-finger tap and scroll by moving two fingers across the touchpad.
    Section "InputDevice"
            Identifier      "Synaptics Touchpad"
            Driver          "synaptics"
            Option          "SendCoreEvents"        "true"
            Option          "Device"                "/dev/psaux"
            Option          "Protocol"              "auto-dev"
            Option          "SHMConfig"             "true"
            Option          "LeftEdge"              "10"
            Option          "RightEdge"             "1200"
            Option          "TopEdge"               "10"
            Option          "BottomEdge"            "370"
            Option          "FingerLow"             "10"
            Option          "FingerHigh"            "20"
            Option          "MaxTapTime"            "180"
            Option          "MaxTapMove"            "220"
            Option          "SingleTapTimeout"      "100"
            Option          "MaxDoubleTapTime"      "180"
            Option          "LockedDrags"           "off"
            Option          "MinSpeed"              "1.10"
            Option          "MaxSpeed"              "1.30"
            Option          "AccelFactor"           "0.08"
            Option          "TapButton1"            "1"
            Option          "TapButton2"            "3"
            Option          "TapButton3"            "2"
            Option          "RTCornerButton"        "0"
            Option          "RBCornerButton"        "0"
            Option          "LTCornerButton"        "0"
            Option          "LBCornerButton"        "0"
            Option          "VertScrollDelta"       "20"
            Option          "HorizScrollDelta"      "50"
            Option          "HorizEdgeScroll"       "0"
            Option          "VertEdgeScroll"        "0"
            Option          "VertTwoFingerScroll"   "1"
            Option          "HorizTwoFingerScroll"  "1"

DVI Output (gutsy)

  • These instructions worked perfectly for setting DVI output on my MacBook.

    extended display - These instructions worked for me. A little more to the point than the above link. Warning: Screen and Graphics Preferences is currently dangerous. It completely broke my /etc/X11/xorg.conf on my first reconfiguration attempt.

Extended Monitor (hardy)

In order to have extended monitor, add these line in Screen Section of /etc/X11/xorg.conf:

SubSection "Display"
    Virtual       2048 2048

You can now use xrand command to control your external monitor. For example:

xrandr --output TMDS-1 --auto   

If your extended monitor goes black, you can resolve the problem with:

Edit your xorg.conf to include the following Option in the Device Section of "Configured Video Device":

  Section "Device"
    Identifier "Configured Video Device"
    Option "FramebufferCompression" "off"

When using KDE 4 with Kubuntu, I had to additionally turn off all of my desktop effects to prevent getting a white/black screen (with 1280x800 for LCD and 1280x1024 for external monitor).


This is useful if you already have too many partitions on your MacBook and want to put the swap file directly on the main / partition.

  • dd if=/dev/zero of=/swapfile bs=1024 count=2048000
    mkswap /swapfile
    swapon /swapfile
    edit fstab:
     /swapfile               swap                    swap    defaults        0 0

Note: You can use suspend on disk with a swapfile. To do that we have to add an option passed to the kernel. Add the resume=/dev/<partition> resume_offset=<offset to the swapfile in blocks> :

  • sudo filefrag -v /swapfile
    #output : First block: 102300

Copy the first block number of the swapfile (ex:102300) and edit the defoptions line of /boot/grub/menu.lst :

  • # defoptions=quiet splash resume=/dev/sda3 resume_offset=102300

The update your grub configuration :

  • sudo update-grub

On this example, the swapfile is on partition /dev/sda3. You are now able to use suspend on disk (hibernate).


note: http://ubuntuforums.org/showpost.php?p=5166788&postcount=21 may be useful to someone single booting ubuntu(it's about the long delay at start up)

CategoryMac CategoryAudio CategoryBackupRecovery

The MactelSupportTeam is about to restructure and reorganize the documentation for Intel-based Macs. If you are interested in helping, please visit our team page for information. For all Mactel wikis, there is a starting place here. There is also a thread about planning the Mactel documentation going on.

MacBook2-1/Hardy (last edited 2013-12-14 01:13:51 by knome)