How I Learned to Stop Worrying and Love EFI

I've been noticing over the past few days that my battery life isn't what it use to be. I've also been noticing that the backlight on the keyboard wasn't dimming like it should have been, based on ambient lighting conditions and my MacBook Pro would give me the SPOD with next to no CPU utilization.  After poking around in some dark corners of OS X Lion to do some research into these problems, I determined that my battery was still in decent shape and my settings were correct in my Keyboard preference pane.  I decided on the nuclear option - an SMC reset.

"What's SMC," you ask?  SMC stands for System Management Controller, sometimes called the SMU for System Management Unit.  Both terms refer to the same thing, but SMC is the technically-correct name.  Without giving a detailed technical explanation, it controls things like your power indicators, lighting sensors, fans and general system performance.  After a long period of heavy usage, your system can get "confused" and start acting like an patient off their Xanax.  Luckily there is a quick fix known as "resetting the SMC", but it's best to check out other things first to ensure you're not doing too much.  Otherwise, it's kind of like replacing the wiring in your house for a burned-out light bulb.  Also, depending on the system you have - portable with a sealed battery, portable with removable battery or plugged in - you'll need to follow a different process.  Keep in mind that this process is only good for Intel-based Macintosh computers and does not apply for PPC-based logic boards.  For those on a PPC-based machine, a similar process of resetting the Power Management Unit (PMU) is in order.

I'll explain the process I took with my symptoms, and I encourage you to do the same if you're experiencing similar issues.  For issues I don't specifically mention here, you're always free to email me at john@classicyuppie.com for advice.

Symptom #1: Decreased Battery Life

I first noticed my battery life decreasing over the past month or so.  I'm bad about not performing a calibration on my system every month and I'm a pretty hardcore power user of my MacBook Pro (it's my primary machine), despite owning an iPad and iPhone.  The first thing I wanted to do was to eliminate the possibility of a bad battery.  While my machine is still covered under AppleCare, Apple charges $179 USD for their battery replacement plan should the problem turn out to be something other than a manufacturer defect.  I was scared of this route, not knowing what an Genius Bar associate might find in the physical recesses of my computer.  Being no stranger to Mac OS, I decided that a little detective work was in order.

The first thing I did was to note the stats my iStat Pro dashboard widget was displaying.  I wanted to see what the general reporting information was to determine a baseline.  Everything looked good based on the data it was reporting, however, I decided to dig deeper.  My experience has been that looking at only once source of information can give you skewed data and as such, I assume that if a problem is diagnosed with only one set of data, it's been misdiagnosed.  I pulled up my About This Mac data by going to the Apple logo in the upper left-hand corner --> More Info… --> System Information panel --> System Report.

The System Report Panel will give you a bunch of awesome, but generally ignorable information, unless you're trying to root out a problem.  It's one of the first places I check if iStat Pro doesn't give me what I need and I'm trying to verify a hardware issue with my Mac. I located the Power option and it displays all sorts of cool info about my battery.  The data that I was most interested in, in this case was the Health Information.

Doing some reference on the Internet about what the baseline for a failing battery cycle count would be, I quickly determined that I was no where near it.  Apple states that it's laptop batteries are designed to retain 80% of it's original battery life through 300 charge cycles and around 1000 charge cycles, their batteries are considered to be "end of life" (meaning it's time to replace them).  It's important to remember that a charge cycle is a complete charge from a "dead", discharged state, up to 100% and back down to completely discharged.  I've had my laptop since March 2011 and as of this post, I've only had 115 complete charge cycles.  I don't discharge my battery all the time because I never like to run out of juice and I don't know when the next opportunity might arise to plug in.

Seeing that my charge cycle rate was still healthy, I determined that the problem might be caused by the recent snap of cold weather we've been experiencing in central Indiana.  It was only through other symptoms that I had which got me thinking it might be something else.

Symptom #2: Keyboard Backlight Wouldn't Auto-Dim

I keep my apartment rather dimly lit and because of that, my keyboard's LED backlight is constantly on.  Sometimes I switch my the location around my apartment I work in - sometimes I'll be in the living room on the couch (usually watching TWiT or Revision 3, in addition to being in several IRC rooms), sometimes I'll work at the kitchen table, and other times I'll be working on my MBP just before bed.  There is a built-in sensor that will detect the amount of ambient light on the keyboard and adjust the brightness of the backlight or turn it off completely.

The light above the kitchen table is directly overhead, and the lighting in the living room and bedroom is to the left and right sides of the laptop, respectively.  Because of this, I would expect that the dimmer the ambient light, the brighter the keyboard should become, however, I determined that either the sensor wasn't working properly or the backlight was somehow getting stupid because it would no longer dim.  I checked the Keyboard preference pane option to ensure it had the correct setting.

This setting will retain itself even if you manually set the brightness of the backlight using the F5/F6 keys.  The only way to turn this off is to manually uncheck this box - using the F5/F6 keys will not turn this off.  I confirmed this by testing the sensor manually.  I simply put my hand over the FaceTime camera on my screen (the sensor is to the right of the optic, opposite the activity light for the camera).  The less light the sensor has, the brighter it should make the backlight and it wasn't moving.

Symptom #3: Spinning Pinwheel of Death (SPOD)

I haven't gotten the SPOD since my 10.5 Leopard days.  Snow Leopard was great for keeping the performance of the hardware components in check and on my iMac the fan would hardly ever spin up except for processor-taxing jobs.  That's the way it should be.  However, I would notice a lot of SPOD'ing on my MacBook Pro doing routine tasks like opening Mail, surfing around the Internet in Safari and listening to music in iTunes. This isn't normal.

I double-checked my processor usage using the Activity Monitor utility.  The Activity Monitor gives up-to-the-second performance stats for all running system processes down to the root level of the operating system and will display recent statistics on CPU usage, RAM, boot volume activity and usage and network performance.  Clicking on the column for CPU in the list of running processes will sort the processes in order of which are consuming the most or least of your processing power (depending on ascending or descending order, of course!).

Getting a spinning pinwheel without doing any intensive processor tasks (as opposed to running Photoshop, for example), is a classic sign that your Mac is in need of some TLC.

The Solution

Since my MacBook Pro is an Intel-based machine, I decided that a reset of the Parameter Random Access Memory (PRAM) and SMC was in order. PPC-based Mac don't have a SMC to reset, but instead it's called the Power Management Unit.  The PMU, found on older PowerBook and iBook models is responsible for controlling functions like hard disk spin down, charging and A/C adapter control and trackpad control among others.  More information can be found on Apple's knowledge base article HT1431 regarding the PMU and how to reset it.

On the rare occasion startup problems persist, a reset their Non-Volatile Random Access Memory (NVRAM) might be needed.  Since NVRAM was and element with machines running Open Firmware, Intel-based Mac users will not need to worry about it.  Intel Macs use the Extensible Firmware Interface (EFI) and operates differently than Open Firmware.

First, some technical details...

Under Open Firmware, NVRAM was used to control system boot options, similar to BIOS under Windows.  Under EFI, Apple has moved to a volume-based set of parameters for booting rather than RAM-based.  To this end, the firmware instructions for the main boot volume of an Intel-based Mac can be found in /System/Library/CoreServices/boot.efi.  (Warning: You cannot reset the EFI instructions by simply deleting this file. This file does not operate anything like NVRAM and there is a very good reason why Apple has locked this file from modification and hidden it from search via Spotlight. Any consequences of modifying this file is strictly your responsibility. I don't even know why you'd want to mess with the EFI instructions anyway...)  The EFI instructions take over after the PRAM has loaded its specifications.  When you see the grey screen on your display during boot, that's the EFI instructions at work (it's actually the part where the video display is being tested).  NVRAM is still there, but it doesn't contain any data itself.  When you hit the power button, the PRAM loads it's initial set of instructions, giving you the bong or startup chime that Mac users are so familiar with.  Once that's done, the EFI's NVRAM pulls the boot parameters from the boot.efi file on your startup volume.

PRAM is a whole different beast.  Parameter RAM sets a different set of instructions for your computer like audio volume levels, application font, cursor blink rate (called insertion point rate), mouse cursor speed (called scaling) and a ton of other creature comforts.  If NVRAM is the path that leads you to your front door providing a clearly mapped path to the inside of your house, PRAM is more like the landscaping and furniture inside the house - they serve completely different functions.

You might think all of this information is boring.  I assure you: there is a point.  I am giving you background information like this because too often I hear of people deleting or modifying files and system settings when they aren't sure what purpose they serve.  This is the single most dangerous thing to do next to surfing pr0n or downloading mysterious attachments.  If you don't know what it does or what it's going to do to your system, don't touch!  However, there will be times (very, very few) that you can try things that will help with the problems you are experiencing - like resetting your SMC.  Whenever you're unsure or uncomfortable performing a certain action, visit the friendly folks at the Genius Bar and they'll hook you up.

Now that you know the difference between PRAM and SMC resets, you can pinpoint which reset will yield fixes for certain things and as you can imagine, an SMC reset would be beneficial to my three symptoms.

As I mentioned previously, the type of Mac you have will determine what procedure you should follow to reset the SMC.  For example, since my MacBook Pro is a unibody model, I have no way to (easily) remove the battery.  Because of that, it's required that I leave the A/C adapter plugged in during a SMC reset procedure.  For those of you with Mac laptops where the batter is removable, you should remove the battery and disconnect the A/C adapter.  Also the key combinations used for resetting are different.  The procedures are:

  • For a Intel Mac with a non-removable battery: After shutdown disconnect all USB, Firewire, Display Port/Thunderbolt peripherals and remove any SD cards and ExpressCards you may have installed (applicable on some MacBook Pro and MacBook Air models.  Leave your A/C adapter connected and press  Control + Option + Shift + Power button on the left side of your keyboard simultaneously and release simultaneously.  If you look at the LED on your power cord, you might notice that it temporarily changes color from amber to green, if it was previously charging.  This is your indication that the SMC reset was successful and you can boot your Mac back up normally.  (Note: This may not be the case on every reset of the SMU for every machine.  YMMV.)
  • For an Intel Mac with a removable battery: After shutdown, remove your battery, and any USB, Firewire, Display Port/Thunderbolt peripherals and remove any SD cards and ExpressCards you may have installed (applicable on some MacBook Pro and Air models). Disconnect your A/C adapter.  Press and hold the Power button for five (5) seconds.  Reconnect only your battery and A/C adapter and boot your Mac up.  After you've logged back into OS X, you can reconnect your USB, Firewire, Display Port/Thunderbolt peripherals and insert any SD cards and ExpressCards you were working with.
  • For Intel Macs plugged straight into power: After shutdown, remove your battery, and any USB, Firewire, Display Port/Thunderbolt peripherals and remove any SD cards and ExpressCards you may have installed (applicable on some MacBook Pro and Air models) and disconnect your power cord for fifteen (15) seconds.  Reattach the power cord and wait five (5) seconds.  Press the power button and boot back into OS X.  After you've logged back in, you can reconnect your USB, Firewire, Display Port/Thunderbolt peripherals and insert any SD cards you were working with.

The reason I suggest waiting until you're logged into OS X to reconnect your peripherals is that sometimes people forget that the external hard drive they have is also a bootable drive and their machine goes batshit when it tries to load an old copy of Jaguar from the device.  Likewise, I've seen some problems with USB devices being recognized right off the bat after an SMC reset.  IMO, it's best to wait until everything is settled back to the OS again before reconnecting.  I speak from experience.  Here's my cautionary tale: I once had an iMac that wouldn't see any Firewire 400 devices plugged into it. I disconnected all my peripherals, performed the SMC reset, and reconnected my all my peripherals before I booted back up and logged into OS X.  After I got into the OS, it wouldn't see anything I connected!  I shut the iMac down, disconnected everything, performed the SMC reset again, except this time I waited to reconnect everything until I logged back into OS X.  After this second attempt, everything worked perfectly.  I'm not saying that this will definitely happen to you if you don't wait, but when it comes to an over-thousand-dollar computer and several hundred more put into peripherals, I don't take chances.  As with most tech advice given here and everywhere else, YMMV.