MacBook Pro 8,1 / 8,2 / 8,3 (2011 Macbook Pro) Ubuntu 12.04
This work is derived from the page that describes setup for the 8,1 MacBook Pro on Natty Narwhal.
Please note that before going through any of the suggested fixes for this hardware, or installing any additional drivers, please make sure you RUN UPDATE MANAGER first and apply all updates to the system.
You can find out what model you have by typing at the terminal:
sudo dmidecode -s system-product-name
If you have a different model, please go here and find the right wiki.
Overview
The following features seem to work out of the box:
(works out-of-the-box)
(works, with remarks)
(needs manual install)
(won't work)
(not yet documented)
Suspend
Works on fresh install.
Screen
Works on fresh install. The resolution is right recognised, the LED-backlit works properly.
NOTE: In order to be able to adjust the brightness you will have to install the apple-gmux package and boot with acpi_backlight=vendor kernel parameter which you can set e.g. in the /etc/default/grub file in GRUB_CMDLINE_LINUX line. Details: https://wiki.ubuntu.com/Kernel/AppleGmuxBacklight
Colors
Works on fresh install.
The best way to set up good color profiles is to use the color profiling tools in OS X (since Ubuntu doesn't offer any software methods to achieve this in 11.10) and import these profiles as .icc files in System Settings - Color by selecting the appropriate screen icon, clicking "add profile" and navigating to the .icc files (located in OS X under /Users/username/Library/ColorSync/Profiles or /Library/ColorSync/Profiles/Displays if the settings were saved for all users). After this, choosing the radio button under the new OS X profile should yield a nice color profile.
Reboot
Works on fresh install.
Video
Works on fresh install in 13" screen.
Additional hardware suggested to install proprietary drivers. They work also.
NOTE: There is an issue on the 15 & 17 inch models that the graphics switching does not currently work (between integrated and discrete chips). The integrated graphics is not enabled unless booting from EFI. The impact is much reduced battery life. The 13 inch model is not effected since it only has the Intel chip. See the following links for details.
- Search google for "ubuntu macbook graphics switching"
Cd&Dvd
Works on fresh install.
Keyboard
Works on fresh install.
Install package pommed to enable Apple specific keys as volumes, media, brightness
Touchpad
Works on fresh install. You can disable the mouse-click with the trackpad tap and the horizontal scrolling in Preferences.
Unity supports multitouch with this funcs:
- 1 finger
- move = move the cursor;
- click = "your-favourite-hand"-click;
- 2 fingers
- move = vertical/horizontal scrolling;
- click = "2nd-button"-click;
- 3 fingers
- move = move the window and shows resizing options;
- 4 fingers
- move = show/hide the launcher (horizontal-scroll, enable auto-hide the launcher first);
- single-tap = show the dash.
To get multitouch with just two finger scrolling and drag-and-drop follow these instructions:
sudo add-apt-repository ppa:mactel-support && sudo apt-get update sudo apt-get install xserver-xorg-input-synaptics
Palm Recognition
By default palm recognition is not turned off, so you might have trouble moving the cursor or clicking something by brushing the trackpad with your palm while typing. To turn palm recognition on, open up a terminal and copy your default conf file:
sudo cp /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/my-synaptics.conf
Now edit the new conf file:
gksudo gedit /etc/X11/xorg.conf.d/my-synaptics.conf
and add the following line just before the EndSection marker of your input class:
Option "PalmDetect" "1"
Fine-tuning the touchpad
You can play with other options offered by Synaptic input drivers that are explained here and in this blog post.
External Monitor
External monitors connected via HDMI work on fresh install.
If your external display's native resolution is not recognised when connected via a VGA port (only a lower resolution, such as 800x600 is offered, for example), then you need to issue a couple of xrandr commands in a terminal to force add the desired resolution. The source of information for this fix comes from here.
To check that xrandr is installed issue:
$ sudo apt-get install xrandr
You have to create a modeline using the gtf or cvt utility. For example, if you want to add a mode with resolution 1920x1080, you can enter the following command (The output is shown following):
$ cvt 1920 1080 # 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
Then copy the information after the word "Modeline" into the xrandr command (which would in my example state):
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
Now get the code of your external monitor by issuing xrandr. For me the external screen is branded DP1.
Now add this mode to the available ones for your external screen:
xrandr --addmode DP1 1920x1080_60.00
And select it:
xrandr --output DP1 --mode 1920x1080_60.00
If everything goes well, the resolution should be ok now and you'll have the desired option in the normal display preferences. This will have to be repeated every time. The easiest way to automate the task, add the 3 xrandr commands to the ~/.xprofile file.
$ gedit ~/.xprofile
The file should look something like:
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync xrandr --addmode DP1 1920x1080_60.00 xrandr --output DP1 --mode 1920x1080_60.00
Afterwards, you have to add executable access to the file:
$ chmod +x ~/.xprofile
Note: if you make a mistake in the .xprofile file, you might have trouble reverting back to normal settings - in this case you can always use ctrl+alt+F1 to open the shell interface and issue mv ~/.xprofile ~/.xprofile-old; sudo reboot to get the previous settings back.
Sound
Works on fresh install.
Ethernet
Works on fresh install.
Wireless
There is no official support yet in Ubuntu 12.04, but you can get it working with the following repository.
sudo add-apt-repository ppa:mpodroid/mactel sudo apt-get update sudo apt-get install b43-fwcutter firmware-b43-installer
For Precise, the Compat module should also be installed
sudo apt-get install linux-backports-modules-cw-3.3-precise-generic
Edit the /etc/modprobe.d/blacklist.conf and add the line:
blacklist ndiswrapper
Create or edit the file /etc/pm/config.d/modules and make sure the wireless modules (b43 and bcma) are blacklisted:
SUSPEND_MODULES="b43 bcma"
Reboot and the wireless should work.
Bluetooth
Works on fresh install.
Webcam
Works on fresh install.
Microphone
Works on fresh install.
Sensors
The program lmsensors detects the sensors, however it does not know what they are yet. But coretemp will allow lm-sensor to detect the others sensors, the rotation speed of the fan and the GPU temperature. {{{sudo sensors-detect }}}
It will be active at next reboot, but it you want it now type:
sudo modprobe coretemp
It is highly recommended to use the fan controller daemon that is included in the mactel-support ppa called macfanctl. However, that PPA does not currently have a build of macfanctl for Oneiric, so you can use this PPA: ppa:mpodroid/mactel (required also for wireless support)
sudo apt-add-repository ppa:mpodroid/mactel sudo apt-get update sudo apt-get install macfanctld
After installation you there is a config file located at /etc/macfanctl.conf. The default configurations seems to work well.
FireWire
Works on fresh install.
Battery
Lasts not more then 4.30 hrs in powersave mode, in wireless mode an average of 3.40 hrs.
You can increase these values by installing the laptop-mode and powertop packages, following the Extend battery life section of this thread on the forum, and recommendations stated by powertop -d
CardReader
Works with a standard SD card and SDHC card, not tested with SDXC card.
ARC
Documentation needed.