MacBook Pro status update

I’ve been asked to keep my blog up to date with regard to Linux support of the MacBook Pro, so here are my latest findings. For more background, see the previous post on the same subject.

Anything that I don’t mention here or in another post can be assumed to work (or I just haven’t tested that particular thing yet, though I’m doing some extensive tests).

  • Sound: still nothing, none of the various patches floating are good enough
  • Battery life: no news here, 1h30 is the max you’ll get. You need to suspend to disk if you want to swap the battery, it’s not possible to do that in suspend to ram like it was on the PowerBook (G4 500, at least). Sad.
  • Heat/fan noise: catastrophic. Fans running at 4000-4200 rpm on a typical desktop or on my laps, down to 3000 rpm on a glass desktop. More on the SMC below.
  • ATI drivers: still suck. No PowerPLAY support on amd64, which means the GPU is running at the highest clock rate, consuming a lot of power and generating a lot of heat. XVideo makes the X server segfault, watching a short movie using vlc’s OpenGL output managed to crash the box hard, corrupting part of the kernel memory. fglrx kills the machine on resume.

In a previous post, I was reporting a lot of timeouts from the applesmc “driver”. After a (very) quick look at the AppleSMC kext for OS X, I know why this happens. It looks like the OS X driver uses an interrupt and configures the SMC for that. So it probably doesn’t poll the SMC 20 times per second like the applesmc “driver” does.

It also looks like the OS X driver uses SMC keys we know nothing about. I could also confirm that the SMC has access to temperature sensors for the CPU, GPU and memory, but it looks like we have no idea of the corresponding SMC keys. With this information, it’d be possible to switch the SMC to manual mode with a userspace governor.

What probably happens when we run Linux on this machine is that the SMC stays in automatic mode, and it’s very conservative in this mode. It won’t hesitate to run the fans at high speed to keep the machine safe. It is highly probable that the OS X driver is taking over the fan control to keep the machine both cool and quiet. This is mostly speculation, as the better device power management in OS X plays a role too, and the SMC could very well still be in automatic mode under OS X keeping the fans at low speed just because the machine generates way less heat.

Unfortunately, the AppleSMC kext isn’t released as part of Darwin, so we’ll have to wait until it is. Could be a long wait, though.

The SMC handles a lot of things. I don’t feel safe running an OS without a proper driver for the SMC on this machine. The fans probably aren’t designed to run at 4000+ rpm for 3 years and will probably fail early or something.

Comments are closed.