Problemi Bluetooth dopo la sospensione in OS X Yosemite (10.10)

52

Sembra che stia avendo problemi persistenti con la connettività Bluetooth, specialmente dopo aver svegliato il mio Macbook Pro da un lungo sonno.

Ho un altoparlante che si spegne automaticamente dopo un certo periodo di inattività, e il mio caso d'uso è tipicamente aperto sul portatile, accende l'altoparlante e quando il driver Bluetooth funziona normalmente, si ricollegheranno automaticamente.

Tuttavia, il problema sembra essere che le mie periferiche Bluetooth non si ricollegano se il mio Macbook è appena stato svegliato da un lungo sonno.

Dopo aver cercato in giro, ho trovato questo script per riavviare le estensioni del kernel bluetooth , ma non sembrava lavorare su Yosemite.

Ecco cosa mi ha dato sudo tail -f /var/log/system.log dopo aver eseguito un kextload e kextunload (nome host e nome utente redatti):

Nov 17 07:50:11 {redacted} sudo[8118]: username: TTY=ttys000 ; PWD=/Users/username; USER=root ; COMMAND=/sbin/kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
Nov 17 07:50:11 {redacted} kernel[0]: IOBluetoothUSBDFU::probe
Nov 17 07:50:11 {redacted} kernel[0]: IOBluetoothUSBDFU::probe ProductID - 0x821D FirmwareVersion - 0x0147
Nov 17 07:50:11 {redacted} kernel[0]: **** [IOBluetoothHostControllerUSBTransport][start] -- completed -- result = TRUE -- 0x0800 ****
Nov 17 07:50:11 {redacted} kernel[0]: **** [BroadcomBluetoothHostControllerUSBTransport][start] -- Completed -- 0x0800 ****
Nov 17 07:50:11 {redacted} kernel[0]: [IOBluetoothHCIController][staticBluetoothTransportShowsUp] -- Received Bluetooth Controller register service notification -- 0x0800 
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHostControllerUSBTransport][initHardwareWL] -- failed -- calling DoDeviceReset (kBluetoothControllerResetHub) -- 0x0800 ****
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHostControllerUSBTransport][DoDeviceReset] -- thread_call_enter1 (mReEnumerateOrResetThread) -- reEnumerateOrReset (0xffffff8213ac3ae0) = 2 --  returned FALSE -- 0x0800 ****
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHCIController][ProcessBluetoothTransportShowsUpActionWL] -- Error!! -- Something went wrong in the setup process. Could not communicate with Bluetooth Transport successfully -- 0x0800 -- 0x0800 ****
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHostControllerUSBTransport][ReEnumerateOrResetThreadEntry] -- entering -- param0 = 0xffffff806a870800, param1 = 0x2 -- 0x0800
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHostControllerUSBTransport][ReEnumerateOrReset] -- entering -- reEnumerateOrResetIn = 2 -- this = 0x0800 ****
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHostControllerUSBTransport][ReEnumerateOrReset] -- in our workloop -- 0x0800 ****
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHostControllerUSBTransport][ReEnumerateOrReset] -- parameter is valid -- 0x0800 ****
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHostControllerUSBTransport][ReEnumerateOrReset] -- reEnumerateOrReset = 2 -- 0x0800 ****
Nov 17 07:50:12 {redacted} kernel[0]: [IOBluetoothHostControllerUSBTransport][ReEnumerateOrReset] -- calling myHub->ReEnumerateDevice() -- gEnumerateCounter = 1 
Nov 17 07:50:12 {redacted} kernel[0]: [IOBluetoothHostControllerUSBTransport][ReEnumerateOrReset] -- exit; error = 0x0000 (kIOReturnSuccess)
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHostControllerUSBTransport][ReEnumerateOrResetThreadEntry] -- exiting -- 0x0800
Nov 17 07:50:12 {redacted} kernel[0]: IOBluetoothUSBDFU::probe
Nov 17 07:50:12 {redacted} kernel[0]: IOBluetoothUSBDFU::probe ProductID - 0x821D FirmwareVersion - 0x0147
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHostControllerUSBTransport][start] -- completed -- result = TRUE -- 0x0800 ****
Nov 17 07:50:12 {redacted} kernel[0]: **** [BroadcomBluetoothHostControllerUSBTransport][start] -- Completed -- 0x0800 ****
Nov 17 07:50:12 {redacted} kernel[0]: [IOBluetoothHCIController][staticBluetoothTransportShowsUp] -- Received Bluetooth Controller register service notification -- 0x0800 
Nov 17 07:50:12 {redacted} kernel[0]: [IOBluetoothHCIController::setConfigState] calling registerService
Nov 17 07:50:12 {redacted} kernel[0]: **** [IOBluetoothHCIController][ProcessBluetoothTransportShowsUpActionWL] -- Connected to the transport successfully -- 0xe300 -- 0x0800 -- 0x0800 ****
Nov 17 07:50:12 {redacted} sharingd[367]: 07:50:12.595 : SDStatusMonitor::kStatusBluetoothPowerChanged
Nov 17 07:50:12 {redacted} sharingd[367]: 07:50:12.617 : SDStatusMonitor::kStatusBluetoothPowerChanged
Nov 17 07:50:12 {redacted} sharingd[367]: 07:50:12.637 : SDStatusMonitor::kStatusBluetoothPowerChanged
Nov 17 07:50:12 {redacted} sharingd[367]: 07:50:12.657 : SDStatusMonitor::kStatusBluetoothPowerChanged
Nov 17 07:50:12 {redacted} sharingd[367]: 07:50:12.659 : BTLE scanner Powered Off
Nov 17 07:50:12 --- last message repeated 2 times ---
Nov 17 07:50:12 {redacted} coreaudiod[360]: 2014-11-17 07:50:12.663673 AM [AirPlay] BTLE client stopping to browse for AirPlay Solo Target Presence.
Nov 17 07:50:12 {redacted} blued[62]: hciControllerOnline; HID devices? 0
Nov 17 07:50:12 {redacted} coreaudiod[360]: 2014-11-17 07:50:12.663868 AM [AirPlay] BTLE client starting to browse for AirPlay Solo Target Presence.
Nov 17 07:50:12 {redacted} sharingd[367]: 07:50:12.664 : Starting Handoff scanning
Nov 17 07:50:12 {redacted} coreaudiod[360]: 2014-11-17 07:50:12.664336 AM [AirPlay] BTLE client stopped to browse for AirPlay Solo Target Presence.
Nov 17 07:50:12 {redacted} coreaudiod[360]: 2014-11-17 07:50:12.664753 AM [AirPlay] BTLE client started to browse for AirPlay Solo Target Presence.
Nov 17 07:50:12 {redacted} sharingd[367]: 07:50:12.664 : Stopping Handoff advertising
Nov 17 07:50:12 {redacted} sharingd[367]: 07:50:12.665 : BTLE scanner Powered On
Nov 17 07:50:12 {redacted} blued[62]: hostControllerOnline - Number of Paired devices = 2, List of Paired devices = (
      "00-0c-8a-dd-fd-88",
      "84-38-35-ec-1c-ea"
  )
Nov 17 07:50:13 {redacted} kernel[0]: AppleUSBMultitouchDriver::message - kIOUSBMessagePortHasBeenReset.
Nov 17 07:50:13 {redacted} kernel[0]: AppleUSBMultitouchDriver::checkStatus - received Status Packet, Payload 2: device was reinitialized
Nov 17 07:50:13 {redacted} hidd[74]: MultitouchHID: device bootloaded
Nov 17 07:50:13 {redacted} kernel[0]: AppleUSBMultitouchDriver::_deviceGetReport - DeviceRequest for reportID 0xc8 returned with result 0xe000404f - retrying

uname -a output (nome host redatto):

$ uname -a
Darwin {redacted} 14.0.0 Darwin Kernel Version 14.0.0: Fri Sep 19 00:26:44 PDT 2014; root:xnu-2782.1.97~2/RELEASE_X86_64 x86_64

Qualcuno di voi ha già visto questo problema? Qualsiasi aiuto sarebbe apprezzato.

    
posta Ivan Gozali 17.11.2014 - 17:02
fonte

14 risposte

52

Ho avuto problemi a ricollegare la mia tastiera e ampli bluetooth; trackpad dall'aggiornamento a Yosimite.

Prima prova questo: Apri Terminal & esegui 2 comandi:

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

Ho dovuto solo eseguire una volta sopra. Se in seguito bluetooth interrompe nuovamente 2 opzioni, è sufficiente eseguire di nuovo sopra o è possibile creare una soluzione 1-click con una semplice applicazione utilizzando Automator:

  1. Cerca (ricerca Spotlight) ed esegui Automator
  2. Fai clic su "Nuovo Documento "in basso
  3. Scegli "Applicazione" per il nuovo tipo di file
  4. Fai clic su "Utilità" dall'elenco
  5. Fai doppio clic su "Esegui AppleScript"
  6. Sostituisci (* Lo script va qui *) con:

    do shell script "kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport; 
    kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport" with administrator privileges
    
  7. Premi play to test (ti verrà richiesta la password)
  8. File- > Salva sul desktop o ovunque

Avvia l'app di automazione ogni volta che i dispositivi Bluetooth non si connettono

    
risposta data 25.11.2014 - 20:32
fonte
10

La soluzione di Mikaey nel forum di supporto Apple:

  1. Disattiva la rete Wi-Fi
  2. Prova a riconnetterti ai tuoi dispositivi bluetooth ( dovrebbe funzionare )
  3. Attiva il WiFi

Questo ha risolto il problema per me.

    
risposta data 09.03.2015 - 22:43
fonte
6

Dopo aver provato a eseguire gli script suggeriti da altre risposte, scaricando e ricaricando sia il kext che il demone bluetooth, il mio bluetooth non rispondeva ancora.

Tuttavia, ho scoperto che se Yosemite dorme con VMWare in esecuzione e il bluetooth non funziona quando il sistema operativo viene riattivato, la chiusura di VMware risolve il problema.

Sembra che i driver in VMWare non gestiscano sempre correttamente il processo sleep / wake.

    
risposta data 25.06.2015 - 09:59
fonte
6

- UPDATE: questo problema è NON corretto in OSX 10.11 El Capitan -

Quanto segue è un'alternativa alla soluzione di Automator pubblicata da webaholic, per coloro che, come me, trovano scomodo dover inserire di nuovo la password (molto probabilmente l'avrete appena inserita per accedere dopo aver svegliato il Mac).

Innanzitutto, in Terminale, crea uno script che ricarica il sottosistema bluetooth:

cat > bt_restart <<END
#!/bin/sh
kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport && \
kextload   -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
END
chmod +x bt_restart

Secondo, fai di root il suo proprietario e spostalo in / sbin:

sudo chown root:wheel bt_restart
sudo mv bt_restart /usr/local/sbin

Terzo, aggiungi il comando alla lista dei comandi di NOPASSWD in sudoers:

echo -e "\n\n# Restart bluetooth without password\n$USER ALL=(ALL) NOPASSWD: /usr/local/sbin/bt_restart" | EDITOR='tee -a' sudo visudo

Infine, crea uno script sul desktop che chiama bt_restart:

echo '#!/usr/bin/sudo /usr/local/sbin/bt_restart' > ~/Desktop/"Restart Bluetooth"
chmod +x ~/Desktop/"Restart Bluetooth"

Fatto! Basta fare doppio clic sul trackpad del tuo notebook (o mouse USB) su Riavvia Bluetooth sul desktop.

    
risposta data 06.08.2015 - 14:35
fonte
3

Ho avuto lo stesso problema e penso di aver individuato una possibile causa del problema. Il mio mouse era chiamato "My Name's mouse" con l'apostrofo, forse questo causava errori.

Ho cambiato il nome per evitare l'uso di spazi e caratteri speciali, ora si chiama solo "mymouse" e non sembra che abbia più problemi.

    
risposta data 26.11.2014 - 12:16
fonte
3

Ho ancora questo problema in macOS Sierra. @ Il link di Tyilo sopra al suo succo mi ha dato un punto di partenza. Ma volevo anche usare homebrew per installare sleepwatcher, ei file plist non erano impostati correttamente fuori dalla scatola. Così ho giocato a lungo e ho realizzato questo script che mi ha permesso di lavorare in modo affidabile per me.

brew install sleepwatcher
sudo touch /etc/rc.sleep
sudo tee -a /etc/rc.wakeup <<EOF
#!/bin/sh
# Sleepwatcher script to get bluetooth working after the mac wakes up
# Got this approach from https://gist.github.com/Tyilo/c92684d277acb62272b5
kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
EOF
sudo chmod +x /etc/rc.wakeup
brew services start sleepwatcher
sudo tee -a /Library/LaunchAgents/de.bernhard-baehr.sleepwatcher-20compatibility-custom.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>de.bernhard-baehr.sleepwatcher</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/sbin/sleepwatcher</string>
        <string>-V</string>
        <string>-s /etc/rc.sleep</string>
        <string>-w /etc/rc.wakeup</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>
EOF
sudo launchctl load /Library/LaunchAgents/de.bernhard-baehr.sleepwatcher-20compatibility-custom.plist
    
risposta data 29.07.2017 - 20:57
fonte
2

Grazie a Tyilo dai commenti sulla risposta accettata, ho modificato il suo script per installare sleepwatcher e aggiungere allo script un codice che non solo scaricherà il driver Bluetooth ( com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport ), ma anche riavvia blued , Demone Bluetooth Apple.

Lo script può essere trovato qui: link

L'esecuzione di questo ha risolto tutti i problemi per me.

    
risposta data 09.06.2015 - 02:38
fonte
2

Per riassumere, ecco un elenco di cose menzionate qui, in link da qui, in thread simili in altri siti, o anche inventati da me ragionando da quegli altri. Ho provato tutti questi, singolarmente e in molte combinazioni. Tutti loro sembravano lavorare almeno una volta; tutti hanno fallito almeno una volta.

  • nuove batterie del mouse
  • rimuovi e ricollega il mouse
  • spegni WiFi e mouse; collegare il mouse Bluetooth; ripristina WiFi
  • disattiva WiFi, mouse e VPN; Collegare; ripristino
  • elimina il PAN Bluetooth; collegare
  • kextunload / load USBTransport; collegare
  • collegare kextunload a sleepwatcher; dormire; sveglio; collegare
  • disconnetti tutti i connettori USB (diamine, tutti connettori); collegare
  • disconnettersi; accesso; collegare
  • restart; accesso; collegare
  • reset SMC (che implica "shut down"); ricomincia; accedi connetti
  • chiude l'hosting di macchine virtuali (come VMWare, Parallels o VirtualBox)

Ho scelto di mantenere questa lista a portata di mano e di utilizzare "tutto quanto sopra".

Penso che l'unica cosa certa, qui, è che c'è una grande dose di "random" da qualche parte, forse una gara tra tutti questi driver per reti, pseudo-reti, reti a più livelli, reti virtuali e reti proxy. In tal caso, probabilmente non è solo colpa di Apple, perché questi driver provengono da una varietà di fonti.

Ovviamente, la famosa reputazione di Apple "funziona bene" era in gran parte basata sul proibire proprio questo tipo di diversità in collisione.

    
risposta data 20.10.2015 - 19:27
fonte
2

Consapevoli che questo è piuttosto un vecchio post ora ma è stato impazzito dal ritardo che avevo dopo il risveglio del sonno prima che il Magic Trackpad fosse utilizzabile .... potrebbe facilmente essere un buon 30 sec. Ho provato la maggior parte / tutti i suggerimenti e i suggerimenti che ho trovato con un effetto minimo.

Tuttavia, ho appena provato a spostare l'icona Bluetooth sulla barra dei menu (CMD ALT Drag) dalla sua posizione normale (circa 7 ° in) al 2 ° in (come contato da destra), cioè accanto al menu Spotlight.

Finora? ... problema andato!

Non è sicuro al 100% perché ciò si verificherebbe, ma sospetto che potrebbe essere qualcosa a che fare con l'ordine in cui le attività da quelle voci sulla barra dei menu RHS sono indirizzate dopo il risveglio, cioè quelle più vicine a RHS hanno priorità più alta? / p>

Ci vuole solo un paio di secondi per fare, quindi se hai anche questo problema - potrebbe valere la pena provare?

(iMac 27 "i7 / OS X 10.10.5)

JH

    
risposta data 12.03.2017 - 14:01
fonte
2

La maggior parte dei suggerimenti che ho letto sembravano un po 'complessi per qualcosa di così semplice. Ho deciso di adottare un approccio noob:

  1. È andato su Preferenze di Sistema / Mouse / Imposta Mouse Bluetooth
  2. Schermata visualizzata "Nessun mouse trovato" e inizia la ricerca.
  3. Spegni il mio mouse e riaccendilo (soluzione Windows a una miriade di problemi).
  4. Ha trovato il mio mouse.
risposta data 18.07.2017 - 23:42
fonte
2

Sembra che i comandi kextunload non funzionino più su High Sierra. Tuttavia , c'è uno strumento da riga di comando di terze parti per fare la stessa cosa e funziona: link - tu puoi modificare gli script qui menzionati per utilizzare blueutil , oppure esiste persino una soluzione completa (molto simile a quella che abbiamo già visto in questa pagina): link

    
risposta data 27.12.2017 - 17:45
fonte
2

Questo articolo di Michael Kummer riporta un elenco abbastanza esauriente di tentativi falliti di correggere i problemi Bluetooth su Mac, e infine suggerisce una soluzione compromessa disabilitando il handsoff che sembra funzionare: link

Visto anche in link

    
risposta data 26.11.2018 - 07:58
fonte
1

Reinstalla MacOS.

Questa non è davvero una soluzione, ma voglio solo condividere la mia esperienza per dare un po 'di speranza a coloro che stanno affrontando lo stesso problema del mio - che questo potrebbe non essere un problema hardware o di interferenza con il wifi, che potrebbe essere più costoso o problematico per risolvere la reinstallazione di MacOS.

Cosa ho provato: dopo che il mio Macbook Pro 2015 si è svegliato dal sonno, non è stato possibile connettersi ai dispositivi Bluetooth. Il problema ha peggiorato gli straordinari, inizialmente da un piccolo inconveniente (ad es. Disabilitando e riattivando il modulo bluetooth o il wifi potrebbe risolverlo) in seguito a un enorme dolore (ad esempio, richiede un riavvio con reset SMC / PRAM).

Un sintomo o un effetto collaterale che potrebbe essere correlato era che il computer a volte impiegava troppo tempo (10 secondi di secondi) per svegliarsi.

Reinstallare (pulito) MacOS è stata la mia ultima risorsa, ma sembra funzionare semplicemente. Dopo aver reinstallato, non ho riscontrato problemi o intoppi con Bluetooth, Wi-Fi o dormire.

Dichiarazione di non responsabilità: esiste probabilmente una correzione adeguata che può ottenere lo stesso effetto, che potrebbe essere o non essere stata ancora scoperta. Inoltre, la reinstallazione del sistema operativo comporta sempre rischi di perdita di dati e produttività da valutare.

Nuovo aggiornamento: è stato senza problemi per una settimana. Ma poi il problema del bluetooth sembra tornare a volte. Non ho fatto molti tentativi con il sistema durante la settimana, a parte l'installazione di alcuni software e pacchetti molto comuni principalmente tramite Homebrew.

    
risposta data 26.08.2018 - 11:16
fonte
-1

Prova a fare clic con il mouse dopo che il tuo Mac si è svegliato dal sonno.

Sembrava che il mio Magic Mouse 2 si connettesse più velocemente con un Mac Mini con macOS Sierra (10.12.2).

    
risposta data 05.01.2017 - 03:31
fonte

Leggi altre domande sui tag