21

My MacBook Pro internal speaker has crashed, as it does every few months. I'm sure a reboot will fix it, but wondering if there's any way I could restore the speaker without rebooting? (Setting things back up again is time-consuming.)

UPDATE: It didn't actually work after reboot. I noticed the headphone slot is red, like in this picture, so it seems it's trying to serve optical out, since MBP uses the same slot as explained in that thread.

UPDATE 2: Best solution I've seen is here. https://discussions.apple.com/thread/4220803?start=0&tstart= Note that it's fiddly and you might need to reboot before re-trying the headphones.

3
  • 1
    What do you mean that your speaker has "crashed"? Does it simply not work? Have you visited an Apple Store or Apple reseller to see if they can fix it?
    – Cajunluke
    Commented Jun 5, 2012 at 18:17
  • 1
    Have you tried anything like a SMC reset or PRAM reset?
    – da4
    Commented Jun 5, 2012 at 18:19
  • CajunLuke, it's not a hardware issue. It just does this sometimes. da4 no, just asking if there's a way to do it without reboot.
    – mahemoff
    Commented Jun 5, 2012 at 19:38

9 Answers 9

8

Sometimes changing the sound output from your system preferences > sound panel will reinitialize the connection to your hardware. If you only have one output device available, try installing soundflower, just to have a second output in your list that you can cycle through.

System Pref pane

Also: setting things back up after a reboot is a snap with snow leopard. It can remember which apps you had open and reopen them for you.

9
  • WRT setting things back up - see my previous questions on here. Setting up a dev environment isn't easily automated.
    – mahemoff
    Commented Jun 5, 2012 at 19:40
  • Didn't work unfortunately. I switched to SoundFlower and also a USB headset (which works fine).
    – mahemoff
    Commented Jun 6, 2012 at 2:55
  • Time to hit the genius bar... sounds like a hardware problem. Commented Jun 7, 2012 at 19:26
  • This isn't a hardware problem I know of, just something that randomly happens once every few months when I pull the headphones out. (Which is why I'm back here.)
    – mahemoff
    Commented May 14, 2013 at 18:41
  • Time to hit the genius bar... sounds like a software problem. Commented May 15, 2013 at 20:45
50

Try restarting the daemon process that processes audio by typing in Terminal:

sudo killall coreaudiod

This should reinitialize the audio and perhaps reload drivers.

6
  • it does bring back sound/mic functionality but has left OS UI out of sync with the hardware, the audio controls in Apple menu appear to be greyed out, and volume up/down keys shows disabled sign. Commented Mar 4, 2018 at 11:09
  • 1
    following seems to get everything back in normal working conditions: sudo kill ps -ax | grep 'coreaudiod' | grep 'sbin' |awk '{print $1}' src: gist.github.com/felipecsl/5177790 Commented Mar 4, 2018 at 11:18
  • 1
    Hint : you should avoid putting your sound at maximum before executing this command. After resetting the sound, I could not lower the volume for some seconds and the sound was very loud.
    – Karlo
    Commented Oct 28, 2019 at 15:47
  • 1
    Sometime you need to terminate the process using kill -9 to make it work.
    – noomz
    Commented Nov 25, 2019 at 3:12
  • 3
    sudo killall -9 coreaudiod
    – user459118
    Commented Jan 7, 2020 at 11:29
7

Try quitting CoreAudio from activity monitor, forcing it to relaunch itself.

4
  • That's the kind of thing I was looking for, but didn't work unfortunately.
    – mahemoff
    Commented Jun 6, 2012 at 2:54
  • This is cool and it worked for me..
    – niksmac
    Commented Feb 4, 2013 at 5:58
  • Unfortunately, CoreAudio is such an integral part to pretty much every Cocoa based Mac application so when it starts messing up, many aspects of the OS go haywire until it's s restarted. It also makes isolating the issue is difficult. =/
    – Alexander
    Commented Feb 5, 2013 at 3:47
  • Stopping coreaudiod from activity monitor worked for me!
    – Adam Grant
    Commented Oct 31, 2016 at 2:55
3

This answer is based on a comment on @morphos' answer.

Headphones work, but it doesn't work when I take them out. The prefpane changes to "Digital Out" of type "Optical digital out port" and doesn't let me even change the volume. (the volume controls faded and hitting volume keys shows a crossed out sign)

That means that it thinks you have an optical toslink cable connected. Hold down option and click the volume button in the menu. Now select "Internal Speakers"

Alternatively, you could go to System Preferences > Sound > Output and select Internal Speakers

1

Are you using headphones with your MBP? This thing happens when you take the phones out? Just plug them back make the sound go up and down gently pressing F11 or F12 (a few keystrokes). Unplug it and keep pressing the F11 or F12 keys until you hear it...

1
  • Headphones work, but it doesn't work when I take them out. The prefpane changes to "Digital Out" of type "Optical digital out port" and doesn't let me even change the volume. (the volume controls faded and hitting volume keys shows a crossed out sign)
    – mahemoff
    Commented Jun 5, 2012 at 19:43
1

I clicked on System Preferences then chose Sound, clicked on the Sound Effects Tab and then double clicked any sound effect and the sound returned.

0

You want this:

sudo kextunload /System/Library/Extensions/AppleHDA.kext
sudo kextload /System/Library/Extensions/AppleHDA.kext

Checked and works on High Sierra. Taken from here.

1
  • This gives an error message every time I try it. (kernel) Can't unload kext com.apple.driver.AppleHDA; classes have instances: (some classes and instance counts) Failed to unload com.apple.driver.AppleHDA - (libkern/kext) kext is in use or retained (cannot unload). Then the sound becomes completely unresponsive, icon grayed out, function keys not working etc.
    – Patrick M
    Commented Aug 6, 2018 at 23:42
0

The command sudo killall coreaudiod worked for my MacBook Air when the speaker volume went low after disconnecting the AirPods.

0

The following is a standard pattern I used to kill a process coreaudiod

sudo kill -9 $(ps -ef | grep coreaudiod | grep -v grep |awk '{print $2}')

This worked whereas the several others I tried from above or in comments did not.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .