Проблемы с Bluetooth после сна в OS X Yosemite (10.10)

Кажется, у меня постоянные проблемы с подключением Bluetooth, особенно после пробуждения моего Macbook Pro после долгого сна.

У меня есть динамик, который автоматически отключается после определенного периода бездействия, и обычно я открываю ноутбук, включаю динамик, и когда драйвер Bluetooth работает нормально, они автоматически переподключаются.

Однако проблема заключается в том, что мои периферийные устройства Bluetooth не подключаются повторно, если мой Macbook только что проснулся после долгого сна.

После поиска я нашел этот скрипт для перезапуска расширений ядра Bluetooth , но, похоже, он не работал на Yosemite.

Вот что sudo tail -f /var/log/system.logдало мне после выполнения kextloadand kextunload(имя хоста и имя пользователя отредактировано):

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вывод (имя хоста отредактировано):

$ 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

Кто-нибудь из вас видел эту проблему раньше? Любая помощь будет оценена по достоинству.

Попробуйте удерживать кнопку мыши в течение 2 секунд после того, как ваш Mac проснулся. Моя MagicMouse подключается после этого. Может быть побочным эффектом преднамеренного дизайна для экономии заряда батареи в режиме ожидания или что-то в этом роде.
Это случается со мной иногда. Другой симптом заключается в том, что ничего не происходит, если я пытаюсь выключить Bluetooth. Решение @webaholik исправило мой Bluetooth.
до сих пор эта проблема, 5 лет спустя. Ни один из ответов, кажется, действительно не помогает основной причине.

Ответы (16)

У меня были проблемы с повторным подключением клавиатуры и трекпада Bluetooth после обновления до Yosimite.

Сначала попробуйте это: откройте терминал и выполните 2 команды:

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

Мне пришлось бежать выше только один раз. Если позже Bluetooth снова сломает 2 варианта, просто снова запустите выше, или вы можете создать решение в 1 клик с помощью простого приложения с помощью Automator:

  1. Найдите (поиск Spotlight) и запустите Automator
  2. Нажмите «Новый документ» внизу
  3. Выберите «Приложение» для нового типа файла
  4. Нажмите «Утилиты» из списка
  5. Дважды щелкните «Запустить AppleScript».
  6. Замените (* Ваш скрипт здесь *) на:

    do shell script "kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport; 
    kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport" with administrator privileges
    
  7. Нажмите кнопку воспроизведения, чтобы проверить (запросит пароль)
  8. Файл->Сохранить на рабочий стол или куда угодно

Запускайте приложение-автоматизатор всякий раз, когда устройства Bluetooth не подключаются

Хм, я думаю, что это то, что я пробовал выше, как следует из журнала, и это не помогло. Может быть, я попробую это снова.
В вашем журнале я не увидел: kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport, только kextload, просто убедитесь, что вы сначала запустили выгрузку. Мне приходилось запускать это только один раз (на прошлой неделе), раньше почти ежедневно мне приходилось перезагружаться всякий раз, когда я пытался разбудить мой MacBook Pro и подключиться к моей Bluetooth-клавиатуре и мыши.
Оно работает! Спасибо! Также любопытно узнать, случается ли это с вами случайным образом или после того, как ноутбук спит и просыпается?
В основном это было при пробуждении, но иногда это случалось и при возвращении после того, как вынесли ноутбук из зоны досягаемости.
Я сделал скрипт для установки sleepwatcher и запускал эти команды каждый раз, когда компьютер выходит из спящего режима, что полностью избавило меня от проблемы: gist.github.com/Tyilo/c92684d277acb62272b5
На моем El Capitan (а гугление подсказывает, что многие другие) происходит kextunloadсбой ( Can't unload kext com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport; classes have instances) и оставляет Bluetooth недоступным (перемещайтесь по значку).
На моей High Sierra я не могу выгрузить:(kernel) Can't remove kext com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport; services failed to terminate - 0xdc008018. Failed to unload com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport - (libkern/kext) kext is in use or retained (cannot unload).
@webaholik, пожалуйста, помогите. У меня такая же проблема, как у Dr_Zaszuś.
@Dr_Zaszuś, ты нашел какое-нибудь решение? У меня такая же проблема.
@WebBrother - я больше не сталкиваюсь с этой проблемой и не могу ее воспроизвести. Тем не менее, вы можете попробовать это, так как мой метод выше не работает для вас: откройте Activity Monitor, найдите «синий», затем закройте «blued» или «bluetoothd». Его родительский процесс «launchd» должен автоматически перезапустить демон Bluetooth.
@WebBrother На самом деле, что помогло в моем случае (по крайней мере, временно), так это доступ к режиму отладки Bluetooth (погуглите, как это сделать), а затем заставить мой Mac забыть обо всех подключенных устройствах, а затем снова подключить их. Некоторое время у меня больше не было проблемы.

Решение Mikaey на форуме поддержки Apple:

  1. Выключите Wi-Fi
  2. Попробуйте повторно подключиться к вашим устройствам Bluetooth ( должно работать )
  3. Включите Wi-Fi снова

Это решило проблему для меня.

Действительно, я помню, что это иногда работало и на меня. А точнее, проблема была при подключении к Wi-Fi 5 ГГц.
Я сделал это, когда впервые столкнулся с проблемой, выключил и снова включил все в разных последовательностях, и это не решило мою проблему. Устройство блютуз просто не хотело подключаться к маку после сна.
Это решение сработало для меня. :) И я использовал Wi-Fi 5 ГГц, как @haylem.
... но в следующий раз, когда у меня возникла эта проблема, мне пришлось использовать решение @webaholik.
это решение работает для меня MacBook Pro Retina 13 дюймов 10.13.5

После попытки запустить сценарии, предложенные другими ответами, выгрузив и перезагрузив как kext, так и демон bluetooth, мой bluetooth все еще не отвечал.

Однако я обнаружил, что если Yosemite спит с запущенным VMWare, а bluetooth не работает, когда ОС просыпается, закрытие VMWare устраняет проблему.

Кажется, что драйверы в VMWare не всегда правильно обрабатывают процесс сна/пробуждения.

Я заметил то же самое. VMWare была проблемой. После приостановки виртуальной машины блютуз снова заработал.

-- ОБНОВЛЕНИЕ: эта проблема НЕ исправлена ​​в OSX 10.11 El Capitan --

Ниже приводится альтернатива решению Automator, опубликованному вебоголиком, для тех, кто, как и я, находит неудобным повторный ввод пароля (скорее всего, вы только что ввели его для входа в систему после пробуждения вашего Mac).

Во-первых, в Терминале создайте скрипт, который перезагружает подсистему bluetooth:

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

Во-вторых, сделайте root его владельцем и переместите его в /sbin:

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

В-третьих, добавьте команду в список команд NOPASSWD в sudoers:

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

Наконец, создайте скрипт на рабочем столе, который вызывает bt_restart:

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

Выполнено! Просто дважды щелкните трекпадом ноутбука (или USB-мышью) кнопку « Перезапустить Bluetooth » на рабочем столе.

опечатка при смене владельца, не должно быть chown- chmodпытался отредактировать сам, но здесь нет кредита, и редактирование было ниже ограничения длины :-/
по крайней мере, на моей машине я получаю ошибку разрешения при попытке изменить /etc/sudoers, в качестве альтернативы вы можете редактировать файл напрямую с помощьюsudo visudo

У меня была такая же проблема, и я думаю, что заметил возможную причину проблемы. Моя мышь называлась «мышь моего имени» с апострофом, возможно, это вызывало ошибки.

Я изменил имя, чтобы избежать использования пробелов и специальных символов, теперь оно называется просто «mymouse», и, похоже, у меня больше нет проблемы.

Это выглядит интересно. В основном переименуйте устройство Bluetooth, чтобы оно не содержало пробелов. Я попробую.
@Leenyx Спасибо! Мне помогло! PS Macbook Pro (середина 2015 г.) Mac OS High Sierra 10.13.6

Подводя итог, вот список вещей, упомянутых здесь, в ссылках отсюда, в подобных темах на других сайтах или даже составленный мной на основе этих других. Я пробовал все это, по отдельности и во многих комбинациях. Все они, по крайней мере, однажды сработали; все потерпели неудачу хотя бы раз.

  • новые батарейки для мыши
  • удалить и повторно подключить мышь
  • отключить WiFi и мышь; подключить Bluetooth-мышь; восстановить Wi-Fi
  • отключите Wi-Fi, мышь и VPN; соединять; восстановить
  • удалить Bluetooth PAN; соединять
  • kextunload/загрузка USBTransport; соединять
  • подключите kextunload к sleepwatcher; спать; бодрствующий; соединять
  • отключите все разъемы USB (хорошо, все разъемы); соединять
  • выйти; авторизоваться; соединять
  • рестарт; авторизоваться; соединять
  • сбросить SMC (что включает в себя «выключение»); рестарт; войти подключиться
  • отключить хостинг виртуальных машин (например, VMWare, Parallels или VirtualBox)

Я решил держать этот список под рукой и использовать «все вышеперечисленное».

Я думаю, единственное, что здесь точно, это то, что где-то задействована большая доза «случайности», возможно, гонка среди всех этих драйверов для сетей, псевдосетей, многоуровневых сетей, виртуальных сетей и прокси-сетей. В этом случае, вероятно, это вина не только Apple, потому что эти драйверы поступают из разных источников.

Конечно, когда-то знаменитая репутация Apple как «просто работает» была в значительной степени построена на запрете именно такого столкновения разнообразия.

После безуспешных попыток взломать gazillion, который я нашел, только перезагрузка преуспела. Но «удалить Bluetooth PAN» сработало. Спасибо огромное!

У меня все еще есть эта проблема в macOS Sierra. Ссылка @Tyilo выше на его суть дала мне отправную точку. Но я также хотел использовать доморощенный для установки sleepwatcher, и файлы plist не были настроены должным образом из коробки. Так что я долго экспериментировал и придумал этот сценарий, благодаря которому у меня все заработало надежно.

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

Благодаря Tyilo из комментариев к принятому ответу, я изменил его сценарий, чтобы установить sleepwatcher и добавить к сценарию некоторый код, который не только выгрузит драйвер Bluetooth ( com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport), но и перезапустит bluedдемон Apple Bluetooth.

Скрипт можно найти здесь: https://gist.github.com/timgws/fc63aeca6a248bbb25ff .

Запуск этого решил все проблемы для меня.

Сознавая, что это довольно старый пост, но меня сводила с ума задержка, которую я получал после пробуждения во сне до того, как можно было использовать Magic Trackpad .... легко может быть добрых 30 секунд. Перепробовал большинство/все подсказки и подсказки, которые смог найти, но без особого эффекта.

Однако я только что попытался переместить значок Bluetooth в строке меню (перетаскивание CMD ALT) из его нормального положения (примерно 7-е место) на 2-е место (если считать справа), то есть рядом с меню Spotlight.

Пока?... проблема ушла!

Не уверен на 100%, почему это может быть, но подозреваю, что это может быть как-то связано с порядком, в котором задачи из этих элементов в строке меню RHS решаются после пробуждения, т. е. те, что ближе к RHS, имеют более высокий приоритет?

Это занимает всего пару секунд, поэтому, если у вас тоже есть эта проблема, возможно, стоит попробовать?

(iMac 27 дюймов i7 / OS X 10.10.5)

ДХ

Большинство предложений, которые я читал, казались немного сложными для чего-то столь же простого, как это. Решил использовать нубский подход:

  1. Перешел в Системные настройки/Мышь/Настроить Bluetooth-мышь.
  2. На экране появилось сообщение «Мышь не найдена» и начался поиск.
  3. Выключил мышь, а затем снова включил ее (решение Windows для множества проблем).
  4. Он нашел мою мышь.

Похоже, kextunloadкоманды больше не работают в High Sierra. Тем не менее , есть сторонний инструмент командной строки для выполнения того же самого, и он работает: https://github.com/toy/blueutil — вы можете настроить упомянутые здесь сценарии, чтобы использовать blueutilвместо них, или даже есть полноценное решение ( очень похоже на то, что мы уже видели на этой странице): https://gist.github.com/ralph-hm/a65840c4f5e439b90170d735a89a863f

Вы автор этой утилиты?
Нет, только узнал о том, когда я снова искал решение этой проблемы…
Все, что он делает, — это выполняет те же действия по включению/выключению питания, которые вы можете выполнять из предварительной панели Bluetooth. В моем случае они не помогли. Кстати, если вы хотите использовать это, вам нужно скачать zip, а затем запустить xcodebuild -project blueutil.xcodeprojectв распакованной директории. Это тогда в build/Release.

В этой статье Майкла Куммера приводится довольно исчерпывающий список неудачных попыток исправить проблемы Bluetooth на Mac и, наконец, предлагается скомпрометированное решение путем отключения громкой связи, которое кажется работающим: https://michaelkummer.com/technology/mac-bluetooth-issues-affect -клавиатура-трекпад/

Также можно увидеть на https://www.forbes.com/sites/bradmoon/2017/07/13/this-trick-may-solve-your-mac-bluetooth-connectivity-issues/#6fefb3f45196.

Спасибо - я подробно рассмотрю эти статьи позже. Мой новый Imac (2 недели назад) постоянно сбрасывает Bluetooth, и я, должно быть, провел не менее 8 часов по телефону с так называемыми «гениями», но безрезультатно....

Переустановите MacOS.

На самом деле это не решение проблемы, но я просто хочу поделиться своим опытом, чтобы дать надежду тем, кто сталкивается с той же проблемой, что и моя, — что это может быть не аппаратная проблема или проблема с помехами Wi-Fi, которая может быть более дорогостоящей. или проблематично решить эту проблему переустановкой MacOS.

Что я испытал: после того, как мой Macbook Pro 2015 года вышел из спящего режима, он не смог подключиться к устройствам Bluetooth. Проблема усугублялась со временем, от небольшого неудобства (например, отключение и повторное включение модуля bluetooth или Wi-Fi может решить эту проблему) до серьезной боли (например, требуется перезагрузка со сбросом SMC/PRAM).

Симптом или побочный эффект, который мог быть связан с этим, заключался в том, что компьютеру иногда требовалось слишком много времени (десятки секунд) для пробуждения.

Переустановка (чистая) MacOS была моим последним средством, но, похоже, она просто работает. После переустановки я не наблюдал никаких проблем или сбоев с блютузом, вайфаем или сном.

Отказ от ответственности: вероятно, есть какое-то правильное исправление, которое может достичь того же эффекта, которое может быть еще не обнаружено. Кроме того, переустановка ОС всегда сопряжена с риском потери данных и производительности, которые следует оценивать.

Новое обновление: в течение недели проблем не было. Но потом проблема с Bluetooth иногда возвращается. В течение недели я не особо возился с системой, за исключением установки некоторых очень распространенных программ и пакетов, в основном через Homebrew.

Основываясь на предложениях других людей, я создал простой сценарий оболочки для сброса Bluetooth. Подробнее см. суть .

Упрощенная версия (зависит от blueutilнапитка):

blueutil -p 0
networksetup -setairportpower en0 off
sleep 3
networksetup -setairportpower en0 on
sleep 3
blueutil -p 1

Он выключает Bluetooth, выключает Wi-Fi, снова включает Wi-Fi и, наконец, снова включает Bluetooth.

ОБНОВЛЕНИЕ 2: последнее решение работало только около недели. Я обновился до macOS Mojave (10.14.6), и эта проблема, похоже, устранена. Буду следить и отчитываться, если что-то изменится.

ОБНОВЛЕНИЕ: я смог решить эту проблему на 100% после нескольких месяцев наблюдения, перейдя System Preferences-> General-> сняв флажокAllow Handoff between this Mac and your iCloud devices

Итак, я имел дело с этим на своем Macbook Pro (начало 2015 г.) примерно столько же, сколько он у меня был. Перепробовал почти все, kextunload/ kextload, сброс SMC и т. Д. ... безрезультатно. Чтобы быть конкретным, мой симптом заключается в том, что после пробуждения значок Bluetooth будет иметь волнистую форму, как это: введите описание изображения здесьИ отказывается подключаться к каким-либо устройствам. Такое поведение присутствовало в Yosemite, а также в High Sierra (версия, на которой я сейчас работаю).

ЕДИНСТВЕННЫЙ обходной путь, который сработал для меня с согласованностью> 80% (кроме перезагрузки), заключается в следующем:

System Preferences-> Bluetooth-> Снимите флажок Show Bluetooth in menu bar-> Проверьте Show Bluetooth in menu bar, затем подождите 10 секунд (в этот момент ваш bluetooth должен быть доступен и не иметь волнистой линии на значке) -> повторите попытку подключения устройства.

Это сработало для меня в 80% случаев, хотя иногда мне все еще нужна перезагрузка. Надеюсь это поможет.

ОБНОВЛЕНИЕ: Это предотвратило недоступность Bluetooth, но, похоже, Bluetooth просто иногда не подключался / не работал, хотя значок показывает, что все в порядке ... Не совсем уверен, что делать дальше. Это похоже на проблему, которую Apple должна исследовать.

Попробуйте щелкнуть мышью после того, как ваш Mac выйдет из спящего режима.

Это, казалось, ускорило подключение моей Magic Mouse 2 к Mac Mini под управлением macOS Sierra (10.12.2).