Revision 21 as of 2010-10-26 21:02:20

Clear message

MacBook Pro 7,1 Ubuntu 10.10 (Maverick Meerkat)


This page aims to describe the steps needed, to fully enable all features of the 13.3 (MBP 7,1) when using Ubuntu 10.10, Maverick Meerkat.

Much of this page (even the formatting, I admit) is just taken from the guide for Lucid, so thank you to the contributor of that page. My goal is to make this specialized to Maverick and update a couple of the guides and fixes that worked and were documented for Lucid.

IconsPage/terminal.png 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

Anything not mentioned here probably already works out of the box. If not, please refer to the Ubuntu Apple Users forum.

(works out-of-the-box)
(works, with remarks)
(needs manual install)
(won't work)
(not yet documented)

Basic Installation Instructions

Common things about installing and maintaining Ubuntu on Intel-based Macs: Intel CPU-based Macintosh Generic Installation Instructions

Package Support for Intel Macs

You need some modules from the MactelSupportTeam/PPA :

sudo add-apt-repository ppa:mactel-support && sudo apt-get update

The mactel PPA modules needed on Ubuntu on this MBP are applesmc-dkms (driver for light sensor, temperatures, fans and keyboard backlight), nvidia-bl-dkms (driver for the LCD panel backlight) and pommed (daemon to control them all).

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 modprobe coretemp

Then add coretemp to the list of modules loaded during the boot process:

sudo gedit /etc/modules

It is highly recommended to use the fan controller daemon that is included in the mactel-support ppa called macfanctl. After enabling the ppa as shown above you can add this tool with the following command:

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.

Suspend

Works without problem.

Screen

Installing the current version of nvidia-bl-dkms (0.17 or greater) will enable the control of the screen backlight with the keyboard keys F1 and F2. The help is then accessible from fn-F1.

sudo apt-get install nvidia-bl-dkms

Then promote this module

sudo modprobe nvidia-bl

Battery

This is kind of irrelevant, the biggest obstacle to battery life is usage, and everyone uses it differently.

Ethernet

Works without problems, but get crazy regarding the power management:

WARNING, this broke my wired connection, apply only if necessary.

sudo gedit /etc/modprobe.d/blacklist.conf

and add at the end of the file:

blacklist forcedeth

Reboot

Run

gksudo gedit /etc/default/grub

and change the line

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

to

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash reboot=pci"

Now, on the terminal run

sudo update-grub

Finally, ask the computer to shutdown, then complete the shutdown by pressing the power button during five seconds when the shutdown process is stuck, wait few more seconds until the hard drive stop spinning and power it on again. Now it should work normally.

Touchpad

Coming soon. This section will document a newish project that enables the multitouch functions fully, including two-finger click and drag.

$ sudo add-apt-repository ppa:mactel-support && sudo apt-get update
$ sudo apt-get install bcm5974-dkms xserver-xorg-input-synaptics

FireWire

Works out of the box.

Video

You can enjoy 3D acceleration by using the nVidia proprietary driver which can be retrieved in the Ubuntu Hardware Drivers menu. This operation will change the screen resolution appearing at every boot and shutdown of your laptop. If you want to get back the right resolution do as follow:

Install v86d

sudo apt-get install v86d

Edit GRUB configuration file

sudo gedit /etc/default/grub

Add to the line...

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

The following:

nomodeset video=uvesafb:mode_option=1280x800-24,mtrr=3,scroll=ywrap

If you already applied the previous modifications on this line you should get:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1280x800-24,mtrr=3,scroll=ywrap reboot=pci"

Close it and edit initramfs configuration file:

sudo gedit /etc/initramfs-tools/modules

Add at the end of the file,

uvesafb mode_option=1280x800-24 mtrr=3 scroll=ywrap

Close it and launch the following command,

echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash

Update GRUB,

sudo update-grub

Update initramfs,

sudo update-initramfs -u

HFS+

  • Read Only: Confirmed working out of the box.
  • Read/Write: It is necessary to disable journal:
    1. Login macos and open a terminal.
    2. Identify the partition.
    3. Run diskutil to disable journaling.

$ mount
/dev/disk0s2 on / [...]
$ sudo diskutil disableJournal force /dev/disk0s2
Journaling has been disabled for volume [...] on disk0s2

Keyboard

If you want to invert the Control and Command keys to have the same configuration as Mac OS X you can create the following file:

# gedit ~/.xmodmap

and copy the following into it

!
! xmodmap script to swap right control & right command key
!

! remove both keycodes (to which Control_L & Super_L is attached)
!     from previous modifier map
remove control   = Control_L
remove mod4      = Super_L Hyper_L

! swap keysyms
keysym Control_L = Super_L Hyper_L
keysym Super_L   = Control_L

! re-add both keycodes to respective modifier maps
add    control   = Control_L
add    mod4      = Super_L Hyper_L

! ***** end of source *****

Close this file. Now you can activate it with

# xmodmap ~/.xmodmap

Next time you will boot and get to the desktop you will have to choose if this configuration has to loaded at every boot.

External Monitor

With the latest nVidia drivers installed, the Display Port and adapters work out of the box.

Wireless

In the Ubuntu Hardware Drivers menu you can choose a wireless driver. There is a free and a proprietary driver. The proprietary driver is known as working, also with WPA2. You can have difficulties to activate it before general updates have been performed so manage to get a wired connection to make this initial updates:

sudo apt-get update
sudo apt-get dist-upgrade

I was seeing very bad performance using wireless. I discovered that the default power management state was causing frames to be dropped which in turn caused very high latency. I addressed this by turning off power management on the wireless interface. This probably has a negative effect on battery life but I would prefer a network connection that performs well.

You can disable power management manually by running the following command:

/sbin/iwconfig eth1 power off

You can automate this by placing the following script in /etc/NetworkManager/dispatcher.d:

!/bin/sh
# /etc/NetworkManager/dispatcher.d/wifipower.sh
# Matt's Macbook Pro 7,1 wifi power adjuster
#
# I've found that turing off power management fixes performance problems with the
# BCM4322 802.11a/b/g/n Wireless Controller found in the Macbook Pro 7,1
#
# Placing (a link to) this in /etc/NetworkManager/dispatcher.d causes NM to 
# invoke this every time network state changes

# The WIFI interface
WIFIINT="eth1"

if [ -z "$1" ]; then
    echo "$0: called with no interface" 1>&2
    exit 1;
fi

if [ "$1" != "$WIFIINT" ]; then
    exit 1;
fi

/sbin/iwconfig eth1 power off

Bluetooth

Coming soon.

Webcam

The iSight works out of the box. You can test it using cheese or any other of your choice.

Sound

From the terminal, type:

   gksudo gedit /etc/modprobe.d/alsa-base.conf

Add the following line to the end of the file.

   options snd-hda-intel model=mbp55

Save and close the file, then reboot.

Front speakers is initially muted and need to be unmuted,

alsamixer

Then use the key M to mute/unmute the channels front speaker and surround. You can also mute S/PDIF and S/PDIF-D channels if you don't use a digital cable, this will save battery.

My alsamixer settings were not restored after reboot. This caused the S/PDIF to come back in an enabled state after every boot. To make it stay off I did the following:

Muted S/PDIF using alsamixer

Issued the following command:

sudo /sbin/alsactl store 0

Then I added a new startup application using Startup Applications under the System -> Preferences menu. I used the following settings in Startup Applications Preferences:

Click Add
Name: Restore Alsa State
Command: /sbin/alsactl restore
Comment: Turn off Optical Out

Now the optical audio out will turn off when you login.

Microphone

The microphone is muted out of the box. Go to System-->Preferences-->Sound-->Input and either move the slider to 100%. You can snap your finger or speak in front of your laptop to see the capture bar moving and adjust it if needed.

If you are using skype, don't forget to turn off automatic volume adjustment in skype program: Options > Sound Devices > Allow Skype to automatically adjust my mixer levels


CategoryMac





Please update this page, if you have figured out anything, that is not mentioned here!




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 docummentation going on.




CategoryMac CategoryHardware