Self-starting Macs, and other secrets of NVRAM

No sooner do we learn that the new MacBook Pro does not play a startup chime, than Dan at tells us how we can re-enable it, and more. After all, it turns out that Apple did not remove the chime entirely, just muted it.

The reason is, as I surmised, because of the MacBook Pro’s blurring of startup and waking up from sleep. Another hidden feature of the new model is that, when you open the case of a shut-down MBP, it automatically powers up – and that too is a feature which can be disabled, as revealed at

Macs, even old ones, have what used to be termed ‘Parameter RAM’ (PRAM), now known as ‘Non-Volatile RAM’ (NVRAM), which stores a limited number of settings which are used from early on during the startup process, so cannot be read from disk. These vary between models, but typically include the system audio volume setting, Bluetooth configuration, the computer name, startup device, and display configuration. If they get messed up, then you will need to reset the NVRAM as detailed here.

You can inspect the current data stored in your Mac’s NVRAM using the Terminal command
nvram -p
which simply displays a list of variable names, and their current values.

That for my iMac17,1 contains settings for the following variables:

  • EFIBluetoothDelay – time allowed for a wireless keyboard to connect during startup
  • SystemAudioVolume – set this to %01 in other Macs to silence their startup chime
  • backlight-level
  • bluetoothActiveControllerInfo
  • bluetoothInternalControllerInfo
  • prev-lang:kbd
  • SystemAudioVolumeDB
  • efi-apple-recovery
  • fmm-computer-name
  • efi-boot-device
  • efi-boot-device-data
  • aht-results – details of the last run of Apple Hardware Test
  • display-config
  • LocationServicesEnabled.

The new MacBook Pro adds at least two more:

  • BootAudio – a boolean indicating whether the startup chime is to be played
  • AutoBoot – an integer determining boot behaviour when opening the case.

Before even thinking about altering any of these, ensure that you know how to reset your Mac’s NVRAM. If you mess a setting up, that’s what you’ll need to do or your Mac could be temporarily bricked.

You can alter the value of any variable in NVRAM using the nvram command in Terminal; for some variables this is likely to require that you assume root privileges using the sudo command, so you may wish to preface each command with sudo. Thus, the command
sudo nvram BootAudio=%01
sets that variable to true, and enables the startup chime on an otherwise mute MBP. Turn it off again with
sudo nvram BootAudio=%00

The AutoBoot variable is not a simple boolean value. To turn AutoBoot off, use the command
sudo nvram AutoBoot=%00
but to return it to the default behaviour, use
sudo nvram AutoBoot=%03
according to

The % sign indicates that the next two characters are given in hexadecimal, which is the default format; if you are really smart, you can use XML format with the -x option to nvram, but that gets more complex. If you’re changing a variable which normally contains a string, you should use a command of the form
sudo nvram fmm-computer-name="Howard%e2%80%99s iMac"

Once your Mac has started up, it keeps NVRAM settings in memory. They are automatically written out to the NVRAM when you clean restart or shut down, and resetting the NVRAM puts them back to their factory defaults.