This page aims to describe the steps needed, to fully enable all features of the 5.2 White Macbook (release date: early 2009) when using Ubuntu 10.10, Maverick. You can check here if you own this model: on wikipedia, on apple.com
You can find out what model you have in OSX, System Profiler
If you have a different model, please go here and find the right wiki.
Anything not mentioned here probably already works out of the box. If not, please refer to the Ubuntu Apple Users forum.
ACPI, power management, etc
Desktop Effects (Compiz)
Keyboard functions (Brightness,volume,...)
Apple Remote Control
(works perfectly, but needs a little job)
(works, with remarks)
(won't work - please post if you have hints)
(not yet documented - please post if you can test)
Basic Installation Instructions
- As stated in Ubuntu 10.10 Release Notes, Macbooks with EFI will not be able to boot the 64bit (amd64) version of Ubuntu 10.10 live cd. The i386 CDs will work.
If you really want to use the x86_64 version, you can download an alternate installation media from here. This iso will work.
Due to this bug, booting the kernel requires to use maxcpus=1 or acpi=off flags. While booting from the LiveCD, make sure to hit F6 in order to change the boot options. Since the Macbook is a laptop, I strongly suggest to use the maxcpus=1 option in order to save ACPI features.
Other common things about installing and maintaining Ubuntu on Intel-based Macs: Intel CPU-based Macintosh Generic Installation Instructions
To enable wireless you need to install the restricted Broadcom STA driver. Open System -> Administration -> Additional Drivers and choose Broadcom STA. Otherwise, if you chose to install restricted software during Ubuntu's installation, the wireless card will automatically work.
Desktop Effects (Compiz)
You probably want to enable the proprietary graphics driver. Go to System -> Administration -> Additional Drivers and choose the NVIDIA accelerated graphics driver (latest version).
If desktop effect have strage behaviour, or if you are experiencing tearing, install the compizconfig-settings-manager package and edit compiz settings accordingly.
Left-click, right-click, two-finger use and basic trackpad work out of the box. It seems to be very slow and flaky, though. This can be fixed in System > Preferences > Mouse and change pointer speed (Acceleration & Sensitivity) Two finger scrolling can be activated from System > Preferences > Mouse and on tab Touchpad, change scrolling to Two finger scrolling. From here you can also deactivate the mouse click on the track pad which is very annoying.
You should disable the mouse plugin in gnome-settings-daemon, since gnome-control-center can't handle every possible touchpad setting via gnome-mouse-properties. Open a terminal and type
gconftool-2 --type boolean --set /apps/gnome_settings_daemon/plugins/mouse/active false
Then, edit your /etc/X11/xorg.conf :
Section "InputDevice" Identifier "Mouse0" Driver "synaptics" Option "Protocol" "auto-dev" Option "Device" "/dev/psaux" Option "SendCoreEvents" "true" Option "LeftEdge" "100" Option "RightEdge" "1120" Option "TopEdge" "50" Option "BottomEdge" "310" Option "FingerLow" "5" Option "FingerHigh" "20" Option "MaxTapTime" "100" Option "MaxTapMove" "150" Option "MaxDoubleTapTime" "180" Option "VertScrollDelta" "20" Option "HorizScrollDelta" "50" Option "MinSpeed" "0.49" Option "MaxSpeed" "0.78" Option "AccelFactor" "0.0010" Option "LockedDrags" "false" Option "TapButton1" "1" Option "TapButton2" "3" Option "TapButton3" "2" Option "VertTwoFingerScroll" "true" Option "HorizTwoFingerScroll" "false" Option "FastTaps" "true" Option "VertEdgeScroll" "false" Option "HorizEdgeScroll" "false" Option "SHMConfig" "true" EndSection
If you keyboard stops working, add this lines too:
Section "InputDevice" Identifier "Keyboard0" Driver "kbd" EndSection
If you want you can change these settings in order to reach your preferred config. Check man synaptics to find all options and tuning.
Volume Up (F12), Volume Down (F11), Volume Mute (F10), Eject will work out-of-the-box.
Adjusting the screen brightness works out of the box with the default free graphics driver. But when you install the restricted NVIDIA graphics driver, it won't work.
In order to control the monitor backlight with the restricted driver, you need to add the Mactel PPA on your /etc/apt/sources.list and then install the nvidia-bl-dkms package. A reboot might be necessary.
ACPI, power management, etc
Due to this bug, in order to make the system boot you need to add the maxcpus=1 or acpi=off options to your kernel boot line. Since the Macbook is a laptop, I strongly suggest to use the maxcpus=1 option in order to save ACPI features.
You can edit the /etc/default/grub file with the editor of your choice (nano, gedit, kwrite, etc.), but remember to apply the changes you make by running sudo update-grub
Works out of the box with the free nouveau drivers. Seems to work with the restricted ones, but at low screen resolution.
Works fine with proprietary NVIDIA graphics driver, you just need to configure it with the nvidia-settings tool - no reboot is needed. You can find it in System -> Administration .
Sound and Headphones
Front speakers work out of the box, but with poor sound quality. By default, headphones are not working.
You can edit some settings in file /etc/modprobe.d/options OR /etc/modprobe.d/alsa-base.conf - you may need to create the former.
Add the following line. If you use this, you get the same poor sound quality but headphones working (you need to reboot)
options snd_hda_intel model=mbp3 power_save=5
If you don't want to reboot, you can:
- close all audio applications
- unload the module snd-hda-intel typing a couple of times in a terminal
sudo killall pulseaudio && modprobe -r snd-hda-intel
- and than reload the module with this command
sudo modprobe snd-hda-intel model=mbp3 power_save=5
If you want good audio quality but NO headphones working, you can instead use this in the same file as above, and than reboot - or if you don't want, you can do as before:
options snd_hda_intel model=acer-aspire-7730g power_save=5
The internal microphone works with both settings as in the section above.
The built-in webcam works following this simple howto: AppleiSight
Suspend works out of the box.
You have to install gnome-lirc-properties from repositories, and configure it following the wizard, choosing Apple Mac Mini IR Receiver with Custom remote control. Then go in System -> Preferences -> Infrared Remote Control , unlock the window, choose autodetect and select the IR receiver. Now you can test it: in the bottom of the window, you can see if you remote control works.
Then change the file /etc/lircd.conf.gnome into this:
begin remote name Apple_A1156 bits 8 eps 30 aeps 100 one 0 0 zero 0 0 pre_data_bits 24 pre_data 0x87EE81 gap 211982 toggle_bit_mask 0x0 ignore_mask 0x0000ff01 begin codes KEY_VOLUMEUP 0x0B KEY_VOLUMEDOWN 0x0D KEY_PREVIOUSSONG 0x08 KEY_NEXTSONG 0x07 KEY_PLAYPAUSE 0x04 KEY_MENU 0x02 end codes end remote
Now, create and make executable two files in your home directory-I created them in the "script" directory: they will let you adjust audio volume from shell: script/volume_up
A=`pacmd dump | grep "set-sink-volume " | cut -d " " -f 3` B=$((A + 0x01000)) if [ $(($B)) -gt $((0x10000)) ] then B=$((0x10000)) fi pactl set-sink-volume 0 `printf "0x%X" $B`
A=`pacmd dump | grep "set-sink-volume " | cut -d " " -f 3` B=$((A - 0x01000)) if [ $(($B)) -lt $((0x00000)) ] then B=$((0x00000)) fi pactl set-sink-volume 0 `printf "0x%X" $B`
This two scripts are useful to control your audio level from the shell or in a script. If they don't work because you have some esoteric configs, maybe you can adjust them on line 3 - take a look at the output of the command
in line beginning with "set-sink-volume" and adjust line 3 accordling.
Now, you have to create a file like this (this is my own config, you can change it according to your preferences) in your home directory: .lircrc
begin rhythmbox begin prog = Rhythmbox button = play config = playpause end begin prog = Rhythmbox button = pause config = pause end begin prog = Rhythmbox button = forward config = next end begin prog = RhythmBox button = backward config = previous end begin prog = RhythmBox button = fw config = seek_forward end begin prog = RhythmBox button = bw config = seek_backward end end rhythmbox begin prog = irexec button = volup config = $HOME/script/volume_up repeat = 2 end begin prog = irexec button = voldown config = $HOME/script/volume_down repeat = 2 end begin prog = irexec button = play config = rhythmbox-client end begin prog = irexec button = menu config = rhythmbox-client --set-rating 2 end
and last add and enable the command "irexec --daemon" in System -> Preferences -> Session Properties (gnome-session-properties, from shell) - this will run irexec every time you log in into your home session and execute your favourite commands when you press something on your remote control.
With this .lircrc file:
- Pressing Play/Menu will start rhythmbox, if it is not already running
- Pressing vol+/vol- will change system volume
- Pressing Play will play/pause playback, if rhythmbox is running
- Pressing forward/backward will change song, if rhythmbox is running
- Pressing menu will rate with two stars the current song, if rhythmbox is running
You can change it as you prefere.