Installing Mandriva 2010.1 on a MacBook Pro 5,1 (Unibody, Late 2008)

This describes the steps and solutions I used to install Mandriva 2010.1 on a late 2008 MacBook Pro (also referred to as "Unibody" MBP or "Aluminium" MBP); for Mandriva 2010.0 see the 2010.0 instructions and for Mandriva 2009.1 see the 2009.1 instructions.

Note: I actually did an upgrade from 2010.0, so if you're doing a clean install some details may be slightly different (e.g. certain packages may already be installed).

Distro used: I installed Mandriva Linux Free 2010.1 x86_64 (2010.2 is basically the same, just with all updates already applied, so this page applies equally to both).

The basic setup is described is described in various places around the web. Basically it consists of the following steps:

  1. install rEFIt (version 0.12 or later) under Mac OS X.

  2. resize and partition your drive (also under Mac OS X), using either Bootcamp or the Disk Utility directly. Remember you'll need at least two partitions for Mandriva (one for swap, one for everything else); and make sure the partition on which /boot will reside is one of the first four (if you don't use a separate partition for /boot then than means your root partition, /, must be one of the first 4 partitions). Typically this means / or /boot will reside on partition 3 or 4 (1 being using for EFI stuff, 2 for Mac OS X).

    If you plan on wiping out Mac OS X completely then you can skip this (though you still need to make sure /boot is on one of the first four partitions).

  3. run the Mandriva installer. Use the manual disk partitioning (Expert?) to make sure the proper partitions are used. Also make sure grub is installed in the partition on which /boot resides - it must not be installed in the MBR.

  4. reboot.

Now for the post-install setup. Note that I've pulled some packages from cooker, so first add the cooker repositories to your urpmi config. Also, if you installed the Mandriva Free DVD then you'll need to make sure you add and enable the non-free repositories too.

Wireless

Install the proprietary driver (the free one does not support the built-in wireless chipset yet), broadcom-wl-kernel-desktop-latest.

Video Driver

Install the NVidia proprietary driver, nvidia-current-kernel-desktop-latest. The easiest way to do this is via the drak configuration GUI: go to System -> Administration -> Configure Your Computer, then select Hardware and Set up the graphical server (you can also get here by running XFdrake from the command line).

Now click on "Custom" for the "Graphic Card", then "NVIDIA" (the group, not any specific card), and "Ok", and say yes to download/install the proprietary drivers.

The EDID data does not seem to be perfectly accurate, so the DPI gets set to (107, 103) by default; I therefore added the following line to the "Monitor" section of /etc/X11/xorg.conf:

      DisplaySize 332 207

External VGA displays (using the mini-DisplayPort → VGA adapter) require at least driver version 190.53 or 195.22 to work properly (with previous version the output either does not show at all or is heavily distorted).

Touchpad

Install x11-driver-input-synaptics and gsynaptics.

To modify the default touchpad settings do the following:

    cp /usr/share/hal/fdi/policy/20thirdparty/10-synaptics.fdi /etc/hal/fdi/policy/
    vi /etc/hal/fdi/policy/10-synaptics.fdi

E.g. I added the following:

    <merge key="input.x11_options.PalmDetect" type="string">1</merge>
    <merge key="input.x11_options.TapButton1" type="string">1</merge>
    <merge key="input.x11_options.TapButton2" type="string">3</merge>
    <merge key="input.x11_options.TapButton3" type="string">2</merge>

Some other values can be controlled from System -> Preferences -> Touchpad, and the full list of values can be modified on the command-line using synclient .

Audio

Audio works (mostly) fine out of the box, except for a few niceties. The first issue is high-frequency noise in some volume settings. The following fixes this (taken from this Ubuntu discussion posting): edit /etc/pulse/default.pa, find where module-udev-detect is loaded, and add ignore_dB=1 so that it reads

    load-module module-udev-detect ignore_dB=1

restart pulseaudio with "pactl exit" or log out and back in. While this fixes the noise, it breaks the balance and fade settings in the sound preferences.

Second, to have regular stereo sources (i.e. non surround 5.1 sources such as music and most movies) also routed to the LFE, go to System -> Preferences -> Sound, select the Hardware tab, and select the Analog Stereo Duplex profile. Unfortunately, however, this only routes the right channel to the LFE - if you want the sound from both channels mixed and routed to the LFE then you can do the following:

  1. Edit /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf and add the following to the end:
        [Mapping Analog-Upmix-51]
        device-strings = upmix51
        channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
        paths-output = analog-output analog-output-lfe-on-mono
        priority = 8
        direction = output
  2. Create/edit /etc/asound.conf and add:
        pcm.upmix51 {
            type route
            slave.pcm surround51
            slave.channels 6
            ttable {
                0.0 1
                1.1 1
                2.2 1
                3.3 1
                4.4 1
                0.5 0.5
                1.5 0.5
                5.5 1
            }
        }
  3. Restart pulseaudio: pactl exit
  4. Go to System -> Preferences -> Sound, select the Hardware tab, and select the new Analog-Upmix-51 Ouput + Analog Stereo Input profile.

Skype

  1. download the latest version from skype's website (grab the "Dynamic" package).
  2. Make sure you have the necessary QT4 libraries installed:
        urpmi libqtnetwork4 libqtgui4 libqtdbus4 libxv1
  3. Under Options, Sound Devices, make sure all are set to "PulseAudio server (local)".

Video works, including picture-in-picture and screen sharing.

Keyboard Backlight

To enable the keyboard-backlight hotkeys (F5/F6) you need to install pommed and start it:

    urpmi pommed
    chkconfig pommed on
    service pommed start

This also handles adjusting the backlight in response to ambient light changes.

Exposé and Dashboard Hotkeys

While the kernel generates keycodes for these keys, they are not mapped to any symbols in X11. To do this run

    xmodmap -e 'keycode 128 = F15' -e 'keycode 212 = F16'

(I put this into a gnome startup application). This will cause Exposé to be mapped to F15 and Dashboard to be mapped to F16, and you can for instance now use these keys when configuring compiz.

A Note on Key Mappings

Some keys are mapped in what may be a non-obvious manner:

PC Key MacBook Key(combination)
Page Up FN+UpArrow
Page Down FN+DownArrow
Home FN+LeftArrow
End FN+RightArrow
Backspace Delete
Delete FN+Delete
Insert FN+Return

Things That Work Out of the Box

Untested Features

More Information

There are some additional patches, information, etc at Ubuntu's MBP Pages

Acknowledgements

Lots of thanks goes to the Ubuntu folks, as many of the problems were diagnosed and solved there.

Ronald Tschalär / 25 October 2010 / ronald@innovation.ch.