Comment 0 for bug 488103

Revision history for this message
Alexey Spiridonov (snarkmaster) wrote : Poor support for MacBook Pro 5,1: no jack sense, no in-line headset microphones, broken volume control

I have carefully read through these bugs:
  https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/337314
  https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/433633
  https://bugs.launchpad.net/alsa-driver/+bug/396563
They conflate a bunch of snd_hda_intel driver issues, and pulseaudio issues across many hardware platforms. However, some of these issues are quite separate between different chipsets. E.g. model=laptop does different things on different chipsets, and doesn't do a thing for my chipset ALC889A. See the full quirks list here:
  http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt

I am reporting this from a x86_64 install, but my sound was broken in exactly the same way when I was running i386.

I have not found a published configuration, which makes the sound on my MacBook Pro 5,1 work completely. I have tried:
1) linux-backports-modules-alsa-generic + snd_hda_linux option "model=mb5" (same as autodetected),
2) default 2.6.31-15-generic + snd_hda_linux option "model=mb5".
In both:
 * (GOOD) Both left and right speakers work (and subwoofer too, I suspect).
 * (BAD) No jack sense: "cat /proc/asound/card*/codec*" is the same regardless of whether headphones are plugged in
 * (BAD) Speakers always on: Volume controls always enable + maximize Front+LFE+Surround outputs (in tandem), never touch headphones (which are muted by default, and labeled "HP" -- which I suspect breaks PulseAudio paths that depend on the string Headphones). The only manual way (i.e. using alsamixer) to silence the speakers is to 0 (but not mute) those three sliders in alsamixer, and then never to touch the PulseAudio volume controls ever again. That's sad.
 * (SLIGHTLY BAD) Headphones should be on by default, not to make users set them up.
 * (BAD) Headset microphones don't work. Apple extensively uses a 3.5 jack standard which combines stereo output and microphone input. This is supported by iPhones & co, and their computers. Apple, and many external vendors manufacture such headsets. The headset works automagically under MacOS, but fails to work under linux, no matter what input settings I choose.
3) linux-backports-modules-alsa-generic + snd_hda_linux option "model=mbp3" (recommended by community page https://help.ubuntu.com/community/MacBook5-1/Karmic),
4) default 2.6.31-15-generic + snd_hda_linux option "model=mbp3".
In both:
 * (BAD) Only the right speaker works, and even that after switching alsamixer from 2 channels to 4 channels.
 * (BAD) No jack sense -- just as above
 * (OKAYISH) The system volume controls affect only the headphone volume. You are free to manually choose the speaker volume via "Surround".
 * (SLIGHTLY BAD) If "4 channel" mode is what it takes to have some semblance of speaker sound, that should be on by default.
 * (BAD) Headset microphones don't work.
5) model=imac24 -- useless for this machine, the mixer settings are totally broken, still no jack sense.

In particular, the latest karmic backports have no effect on my problems.

On the basis of the above, I'm changing the community docs to no longer make a blanket recommendation for model=mbp3. People have to make a choice between two different sets of issues.

In an ideal world:

1) The driver would support jack sense.
2) The driver would add an extra input for microphones connected through the output 3.5 jack.
3) PulseAudio would automatically mute the speakers on headphones being plugged in.
4) PulseAudio would switch to the headset microphone when that's plugged in.
5) PulseAudio would provide overrides for both of those behaviors.