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. 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.
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.
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.
Feature
Support status
(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 (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:
Copy the profile from /media/Macintosh HD/Library/ColorSync/Profiles/Displays/<file.icc> or in OS X /Library/ColorSync/Profiles/Displays/<file.icc>
- apt-get install gnome-color-manager
Start the color manager: System -> Preferences -> Color Profiles
- 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
|
|