MacBook Pro 7,1 Ubuntu 10.04 (Lucid Lynx)



This page aims to describe the steps needed, to fully enable all features of the 13.3-inch (MacBookPro 7,1) when using Ubuntu.

Due to an unsupported chipset, the original release of Ubuntu 10.04 cannot boot this computer. Users have to use at Lucid Lynx 10.04.1 ISO to install Ubuntu on the MacBookPro 7,1.

Initial forum discussion reporting this problem can be found here. An upstream kernel patch has been reported on the Launchpad bug report for the issue.

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.

IconsPage/ok.png (works out-of-the-box)
IconsPage/ok.png IconsPage/info.png (works, with remarks)
IconsPage/warning.png (needs manual install)
IconsPage/dont.png (won't work)
IconsPage/question.png (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 (and/or mbp-nvidia-bl-dkms, not recommended) and pommed (daemon to control them all):

sudo apt-get install applesmc-dkms nvidia-bl-dkms pommed

CPU

To check the number of cores enabled, simply run

cat /proc/cpuinfo | grep 'cpu cores'

from a terminal.

If dual-core support is not automatically enabled run

gksudo gedit /etc/default/grub

And add

acpi_apic_instance=2

to the end of the line labeled:

GRUB_CMDLINE_LINUX_DEFAULT=

or in case you want it in rescue mode as well to the end of the line:

GRUB_CMDLINE_LINUX=

Now it's necessary to update Grub:

sudo update-grub

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"

or in case you want this in rescue mode as well:

GRUB_CMDLINE_LINUX="reboot=pci"

Now, on the terminal run

sudo update-grub

Ask the computer to shutdown and complete the shutdown by pressing the power button during five seconds when it is stuck, wait few more seconds until the hard drive stop spinning and power it on again.

Suspend

Suspend works. Hibernate fails, if you want it you can install hibernate with the following command:

sudo apt-get install hibernate

If you use the nvidia-current driver and mbp_nvidia_bl and get a flash of color terminal garbage and then a completely black screen after resume, tap F1 or F2 to decrease/increase the backlight and the screen becomes lit once more. With the nvidia_bl module backlight control seems flawless, use that instead of mbp_nvidia_bl.

Screen

Backlight control with nvidia_bl seems flawless. Backlight range by default seems to be 0-44000 with this driver. As pommed by default has 'init=17' it sets the screen to completely dark when it starts. Put the range to the more reasonable 0-21 by creating /etc/modprobe.d/nvidia-bl-opts.conf:

# puts range to 0-21
options nvidia-bl shift=11

Then rmmod nvidia-bl; modprobe nvidia-bl. Then edit /etc/pommed.conf and in the lcd_sysfs section change init to 17, on_batt to 2.

---

It is bright as long as you do not try to change its value, then it goes very dark. This means the 'init' value in pommed is probably wrong.

Depending on the driver you can set your brightness using values from 0 (minimum - no backlight) to 1025 (maximum):

echo 1025 |sudo tee /sys/class/backlight/nv_backlight/brightness

If it's too dark, you can try to set your brightness using values from 0 (minimum - no backlight) to 15 (maximum) using this command:

echo 15 |sudo tee /sys/class/backlight/mbp_backlight/brightness

With the nvidia-current driver (version 195.36.24) used with mbp-nvidia-bl you need to add

Option         "RegistryDwords" "EnableBrightnessControl=1"

to section "Screen" or "Device" in /etc/X11/xorg conf in order to get backlight control to work.

If you couldn't get to work any of those last two commands or you want to control the brightness with the keyboard, continue reading the Keyboard section.

Color profile

The default colors look weird to say the least. Use the color profile from OS X:

  1. Copy the profile from  /media/Macintosh HD/Library/ColorSync/Profiles/Displays/<file.icc>  or in OS X  /Library/ColorSync/Profiles/Displays/<file.icc> 

  2. apt-get install gnome-color-manager
  3. Start the color manager: System -> Preferences -> Color Profiles

  4. Import the profile you saved in 1. and choose it for the monitor

Sensors

The module coretemp need to be loaded during the boot:

sudo gedit /etc/modules

add the following to the end of the list:

coretemp

HFS

Ubuntu can read into HFS+ file system out of box. If you want to write or modify the file system, journal has to be deactivated.

Battery

This section has to be reworked with laptop-mode and acpi control software.

Touchpad

Works. Side vertical scrolling is enabled by default, but two-finger scrolling and horizontal scrolling can be enabled through the mouse preferences. Single click works as expected (tap or press); right click is a tap or press with two fingers, and middle click (paste) is a tap or press with three fingers, and click and drag is a tap/click and slide. Swiping works as well, three finger swipe up is "back", three finger swipe down is "forward".

The touchpad by default (as described above) uses 'tap-to-click'. 'tap-to-click' doesn't work well for many people because the touchpad is so large and it is easy to palm or graze the touchpad which can be quite distracting.

The easiest thing to do is simply disable 'tap-to-click'. Go to System/Preferences/Mouse, click the Touchpad tab, then uncheck 'Enable mouse click with Touchpad'. With this configuration, when doing click and drag operations you will have to lift your finger and reclick if you reach the edge of the touchpad.

This situation can be improved by using the xf86-input-multitouch driver and bcm5974-dkms kernel driver from the mactel PPA. The multitouch driver has no configuration at this time and you cannot disable 'tap-to-click' via System/Preferences/Mouse. People can try the one in ppa:jdstrand/ppa, which is the driver from the mactel ppa with #define use_tapping 0 set in src/memory.c (and on Lucid also with a backported mtdev library). Once 'tap-to-click' is disabled and the bcm5974 and multitouch drivers are enabled, click and drag operations become clicking and holding at the bottom of the touchpad with one finger, and then using another finger to perform the drag (eg, to move a window, put the cursor on the title bar, click and hold with your thumb and then use your index finger to move the window). One, two and three finger clicks all work as expected (ie, one finger = left click, two finger = right click and three finger = middle click).

To enable the multitouch drivers, run this in a console:

sudo apt-get install xf86-input-multitouch bcm5974-dkms

Then add this to xorg.conf:

Section "InputClass"
    MatchIsTouchpad "true"
    Identifier "Multitouch Touchpad"
    Driver "multitouch"
    MatchDevicePath "/dev/input/event*"
EndSection

Then reboot (so that the new bcm5974 kernel module is loaded and X is restarted).

"Disable touchpad while typing" does not seem to work, but if you disable 'tap-to-click' this shouldn't be a problem.

NOTE: In Lucid and later, xorg is partially configured via snippets in /usr/{lib,share}/X11/xorg.conf.d. In particular, the synaptics configuration may override your multitouch configuration if you put the above into the xorg.conf.d directory. To ensure that the multitouch configuration is not overridden, it is recommended that the above be added to the /etc/X11/xorg.conf file (usually created when configuring the nvidia driver, but can also be created to have only the above snippet) which takes precedence over the xorg.conf.d snippets. Some forums documentation suggests that the MatchDevicePath "/dev/input/event*" is not needed, but in practice if the xserver-xorg-input-all package is installed (the default in Ubuntu) the synaptics driver could be picked up instead (as seen in /var/log/Xorg.0.log). The above snippet makes sure that the multitouch driver is loaded for all touchpad devices on the system.

FireWire

Works out of the box. Device located in /dev/video1394/0 and /dev/raw1394 (control) by default. You can test with a FireWire camera using coriander.

To run coriander you must belong to video group. Therefore, before connecting the FireWire device (otherwise, you will have to reboot), do (taken from https://help.ubuntu.com/community/Firewire)

echo 'KERNEL=="raw1394", GROUP="video", MODE="0664"' |
sudo tee /etc/udev/rules.d/50-raw1394.rules
&& sudo restart udev

Video

You can enjoy 3D acceleration by using the nVidia proprietary driver which can be retrieved in the ubuntu Hardware Drivers menu.

Keyboard

Backlight control

If you have followed carefully the steps in Package Support for Intel Macs and Screen, if you press the F1 and F2 buttons then the backlight changes.

If you don't get the desired effect for any cause or the light is too dark at maximum, then you have to uninstall the current version of Pommed and install latest Pommed release from source:

sudo apt-get remove pommed
sudo apt-get install git-core libdbus-1-dev libconfuse-dev libaudiofile-dev libasound-dev libpci-dev libdbus-glib-1-dev libglade2-dev libgtk2.0-dev libx11-dev libxext-dev libxpm-dev
git clone git://git.debian.org/git/pommed/pommed.git
cd pommed
make

You can then install the version of pommed you just compiled with:

sudo cp pommed/pommed /usr/sbin/pommed

And copy the sample config to /etc/pommed.conf:

sudo cp pommed.conf.mactel /etc/pommed.conf

And finally you need to start pommed again:

sudo service pommed start

You should now be able to use F1 and F2 to step up and down display brightness, as well as, F5 and F6 to step up and down keyboard backlighting.

If the maximum light is still too dark, just restart Ubuntu and it will solve the problem.

You can modify the configuration file to enable the keyboard backlighting to turn on depending on ambient lighting conditions but I found this to be buggy and annoying.

Another way to get the keyboard backlight regulated with F5 and F6 is to get the source package of pommed from Natty (version 1.37~dfsg-1 now) and build.

Other

The LED keyboard light can be enabled with the following command:

echo 255 |tee -a /sys/class/leds/smc\:\:kbd_backlight/brightness

However if you have installed pommed, then you can change the intensity just pressing F5 and F6 keys.

If you want to swap the Control and (both) 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 control and both command keys

! Clear the keycodes for the 'control' and 'command' keys
! 'mod4' represents the 'Super' Key
remove  control         = Control_L Control_R
remove  mod4            = Super_L Super_R

! Swap the keysyms for both 'Super' keys and the single 'control' key
!(since there is only a single hardware 'control' button on the keyboard).
keysym  Control_L       = Super_L
keysym  Super_L         = Control_L
keysym  Super_R         = Control_R

! Re-map the keys to the modifiers. Set the two 'command' keys to act like a 
! 'control' key and the one 'control' key to act like a 'Super' key.
add     control         = Control_R Control_L
add     mod4            = Super_L

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

You can activate it with

xmodmap ~/.xmodmap

If you want to simulate the Cmd + Tab to navigate between windows instead of using Alt + Tab, go to System > Preferences > Keyboard Shortcuts and edit keys in "Move between windows, using a popup window".

External Monitor

You may experience some trouble with the external VGA and the new drivers: if the detected resolution of externally connected monitors doesn't go beyond 640x480, you will need to inactivate EDID. Add:

Option     "NoEDID" "True"

to /etc/X11/xorg.conf

With the nvidia-current the external monitor works with a resolution of 640x480. For a better resolution you have to install the nvidia-current from the maverick repository:

AMD64 system

cd /tmp
wget http://mirrors.kernel.org/ubuntu/pool/restricted/n/nvidia-graphics-drivers/nvidia-current_256.53-0ubuntu2_amd64.deb
sudo dpkg -i nvidia-current_256.53-0ubuntu3_amd64.deb

i386 system

cd /tmp
http://mirrors.kernel.org/ubuntu/pool/restricted/n/nvidia-graphics-drivers/nvidia-current_256.53-0ubuntu3_i386.deb
sudo dpkg -i nvidia-current_256.53-0ubuntu3_i386.deb

Remark: Can't get it working with a resolution > 1440x900

Remark 2: I've found the above to be true with NVidia 195 drivers. I've found installing NVidia 256 drivers from ppa:ubuntu-x-swat/x-updates fixes this. See these instructions on how to do this.

Ethernet

It seems that it sometimes gets a little bit crazy regarding the power management. If it happens to you, do this:

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

then add

blacklist forcedeth

at the end of the file.

Wireless

In the ubuntu Hardware Drivers menu you can choose a wireless driver. There is a free and a proprietary driver. The proprietary driver (STA) is known as working and tested with WPA2.

Performance suffers due to overly agressive power management which may be resolved as discussed here.

Bluetooth

lsusb lists the device as "Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)" a search brought me to this thread http://ubuntuforums.org/showthread.php?t=1469437&highlight=BCM2046 ,credit to bfroemel for the fix. My magic mouse automatically connects but it seems hcitool will not list devices

If the device is 05ac:8213 then the btusb module drives it perfectly but you need to make it recognize the device. Here is a dkms package already prepared with source: btusb-macbookpro-dkms_0.0.1.deb-src.tgz. Uncompress the archive and install btusb-macbookpro-dkms_0.0.1_all.deb.

Webcam

The Webcam, which is called iSight, works out of the box. You can test it using cheese or any other of your choice.

CardReader

The SD slot works out of box. You can insert SD, SDHC, MMC directly. For more (and especially smaller) cards like MicroSD, use adapters.

Sound

From the terminal, type:

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

Add the following line to the end of the file. Save the file. Reboot.

   options snd-hda-intel model=mbp55

Front speakers seem to be initially muted and need to be unmuted by running alsamixer from the Terminal and the key M for mute/unmute the selected channel, or using gnome-alsamixer:

sudo apt-get install gnome-alsamixer
  • To enable the optical output, check the IEC958 option, and you'll see a red light coming from your headphone jack.
  • If the sound seems a little low, it can be increased beyond 100% volume level by adjusting the output volume in System --> Preferences --> Sound, slider is on the top.

  • Unmute Surround channel will improve sound quality.
  • Sound quality is a lot worse than the OSX one, high frequencies have a too high volume and sound a bit distorted.

Microphone

The microphone is muted out of the box. Go to System-->Preferences-->Sound-->Input and either move the slider or click the box to unmute. Tested working with Skype.

  • There is no apparent way to increase the microphone volume in the sound preferences.

You can change microphone level over 100% with paman:

sudo apt-get install paman

Then run paman, open Devices tab, select alsa_input.pci source, click Properties and change microphone volume. I'm using value 300%. If you are using skype, don't forget to turn off automatic volume adjusting in skype program: Options > Sound Devices > Allow Skype to automatically adjust my mixer levels


CategoryMac




IconsPage/users.png
Please update this page, if you have figured out anything, that is not mentioned here!



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

MacBookPro7-1/Lucid (last edited 2013-12-14 02:51:27 by knome)