dotfiles icon indicating copy to clipboard operation
dotfiles copied to clipboard

SystemAudioVolume not working in Yosemite

Open OmeGak opened this issue 9 years ago • 8 comments

Disabling the startup chime has stopped working with Yosemite, I'm afraid. Or at least I can't make it work.

Running sudo nvram SystemAudioVolume=" " works as expected since the new value is reflected in sudo nvram -p. However, upon reboot, the startup chime comes to greet me as usual.

Running sudo nvram -p afterwards shows that the value has gone back to the default L, so it would seem as if Yosemite resets the value to its default on reboot and before the chime, so the change is never made effective.

I've found this question in AskDifferent, but they haven't concluded anything. Maybe somebody here faced the same problem with better luck?

OmeGak avatar Mar 26 '15 23:03 OmeGak

try to use sudo nvram SystemAudioVolume=%00 instead.

this worked for me.

xinput avatar Mar 27 '15 14:03 xinput

Maybe you already know this: ultimately this sound is supposed to be a better alternative to the old 'successful POST' beep that PCs would make (I still have a system that does that when the speaker is plugged in to the motherboard). It represents a successful startup.

I agree it is very annoying, especially out in public when your system blasts it based on the last volume you had enabled, and not even headphones stop it.

I don't know why but I feel like this could be model specific and not necessarily a hard set value for all machines, or there just is not a way. So if some are saying that some value works, ask exactly what kind of Mac they have. I have a Mac Pro 2014 and 2 MacBook Pros (one 2012, one 2014), and the value being a single space has not worked consistently. %00 not sure yet (used to use this with a 2012 MacBook Air and it seemed to work). And like the post you linked to, many of the existing packages like StartNinja have not worked for me especially since Yosemite.

Tatsh avatar Mar 27 '15 21:03 Tatsh

sudo nvram SystemAudioVolume=%00 did finally work for me, but only the first time I reboot after running it. Then, the value is restored back to [ and the chime comes back thereafter. My laptop is MacBook Pro 2012.

OmeGak avatar Mar 28 '15 10:03 OmeGak

@OmeGak another idea would be to write a .plist and store it in /Library/LaunchDaemons which runs the command on every Boot.

it should look like this: <plist version="1.0"> <dict> <key>ProgramArguments</key> <array> <string>/usr/sbin/nvram</string> <string>SystemAudioVolume</string> <string>%00</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>

i'm not sure if this will work, you have to test it.

xinput avatar Mar 28 '15 14:03 xinput

In many cases I have set up my boot up volume manually by:

  1. Unplug all external soundcards and headphones.
  2. Log out to login screen.
  3. Adjust the volume to your liking. That volume will be your boot up volume.

Just to clarify that setting the volume is by no means a quirck, it is there by design.

sirkkalap avatar Apr 08 '15 09:04 sirkkalap

While distilling my own dotfiles I also stumbled upon this problem. As I base mine on @mathiasbynens's, I will share the result of my research here.

  • @xinput Unfortunately, adding plist with such settings does not solve the problem, even if I add <string>SystemAudioVolumeDB</string> <string>%00</string> to array of options. Of course, tried with different options: " ", %00, %80, %01 and couple of more.
  • doing sudo nvram SystemAudioVolumeDB="<option_here>", where <option_here> are the values used in point above, returns success, I can verify it by running sudo nvram -p | grep SystemAudioVolume
  • Setting both SystemAudioVolume and SystemAudioVolumeDB with any of the value does not mute the chime

My MBP is MacBook Pro i7, MBP112.0138.B14, currently Yosemite OS X 10.10.3 (14D136) but it didn't work with Mavericks too.

There is a less-than-perfect option to use some "auto mute" 3rd party software that would automatically mute the sound before logout / restart / shutdown event. Yeah, you still need to enable the sound after booting but it's better than annoying everyone if the office.

Edit: One more tip. After using AuteMute software, after reboot I can see it set the following values:

sudo nvram -p | grep SystemAudioVolume
SystemAudioVolumeDB 0
SystemAudioVolume   %dd

When I disable AutoMute and set such values myself, it doesn't work. After restart it's overwritten:

sudo nvram -p | grep SystemAudioVolume
SystemAudioVolumeDB %f5
SystemAudioVolume   ]

My conclusion is, it's not the matter of values, there is some mechanism that overwrites the settings.

mirfilip avatar May 17 '15 13:05 mirfilip

any updates on this?

rs38 avatar Apr 21 '16 16:04 rs38

Thank @mirfilip. Following command did trick on my iMac 2010.

sudo nvram SystemAudioVolumeDB=0
sudo nvram SystemAudioVolume=%dd

Update: 😂 nope, it only did the trick for one reboot. Not the second one.

3cp avatar Apr 15 '20 22:04 3cp