V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mayuko2012
V2EX  ›  Apple

临时解决 MacOS Catalina 蓝牙设备自动断开

  •  
  •   mayuko2012 · 2020-03-16 17:09:47 +08:00 · 4333 次点击
    这是一个创建于 1717 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前段时间发了一个帖子: https://www.v2ex.com/t/652143。

    大概意思是 MacOS Catalina 中蓝牙音频设备会不定时的断开音频,很多 v2er 表示也遇到了相同的问题,包括:

    Apple Community 中也出现了很多类似的故障,包含 AirPods 以及其他的蓝牙音频设备:

    原因

    当系统内存压力变成「黄色」时,bluetoothaudio 这个进程会被系统当作闲置进程杀掉导致的。

    个人猜测,最主要的原因是:在/System/Library/LaunchDaemons中,com.apple.bluetoothaudio.plist这个文件里EnablePressuredExit这个值为true导致内存不足是被 kill 掉了。(不知道 Mojave 中这个值是什么

    解决方式

    先关闭系统的 SIP,修改这个值为false,再恢复 SIP。

    Catalina 中关闭 SIP 仍不能修改系统文件,只要

    sudo mount -uw /
    killall Finder
    

    一下就可以编辑了。

    目前已经正常使用一天,内存压力变成红色也没有出现bluetoothaudio被 kill 掉或者蓝牙音频设备断开的问题。

    第 1 条附言  ·  2020-03-16 21:01:05 +08:00

    更正:经4#提醒,需要修改的文件应该是com.apple.bluetoothaudiod.plist这个文件。

    22 条回复    2020-08-17 15:48:05 +08:00
    vincentss
        1
    vincentss  
       2020-03-16 19:16:42 +08:00
    碰到过几次,战略性 Mark
    sxiaojian
        2
    sxiaojian  
       2020-03-16 19:31:31 +08:00 via iPhone
    64G 内存表示依然断开
    clrss
        3
    clrss  
       2020-03-16 19:49:23 +08:00 via iPhone
    路过问一下,非苹果蓝牙鼠标 bluetoothd CPU 占用偏高有人遇到么
    Chris1489
        4
    Chris1489  
       2020-03-16 20:43:41 +08:00
    非常感谢大神的分享, 经过验证已经解决了这个困扰我多时的问题, 终于可以把有线耳机收起来了。

    顺便提示一下,文件名是 com.apple.bluetoothaudiod.plist,要多个“d”。
    而且遇到一个很奇怪的情况,这个文件在操作系统下可以看到,但是在恢复模式(关闭 SIP 时进入)中看不到。
    mayuko2012
        5
    mayuko2012  
    OP
       2020-03-16 20:59:53 +08:00
    @Chris1489 #4 感谢提醒~看不到这个文件可能和 Catalina 的新卷宗有关系?
    ihwbunny
        6
    ihwbunny  
       2020-03-17 09:36:42 +08:00
    至少 10.14.6 中, 是有 EnablePressuredExit 的, 只不过没怎么用
    ftu
        7
    ftu  
       2020-03-17 11:59:59 +08:00
    macOS 蓝牙太坑。。都多少年了,稳定不了
    sxiaojian
        8
    sxiaojian  
       2020-03-17 12:48:44 +08:00
    @ftu 用上了 intel 的蓝牙 5.0 之后,再也没有断断续续、频繁断开了
    justNoBody
        9
    justNoBody  
       2020-03-17 13:29:07 +08:00
    EnablePressuredExit 这个配置用于做啥的? 贸然修改会不会影响 macos 的稳定性?
    mayuko2012
        10
    mayuko2012  
    OP
       2020-03-17 13:54:13 +08:00
    @baofeidyz #9 个人猜测应该是「当内存不足时结束这个服务」,因为观察了很多次这个服务都是在内存压力大的时候被强制结束的。目前更改完后对于系统没有任何影响,不知道下一个版本升级后这个字段会不会被还原。
    lizhuoli
        11
    lizhuoli  
       2020-03-17 14:40:19 +08:00 via iPhone
    @baofeidyz Launchd 有文档说明的,指的是在进入 swap 阶段和 App Nap 阶段是否允许挂起。
    justNoBody
        12
    justNoBody  
       2020-03-17 14:49:08 +08:00
    @mayuko2012 我改完今天下午又遇到了一次蓝牙闪断的问题, 突然鼠标就不能动了, 但是 airpods 的歌没听, 不知道是不是我的鼠标太垃圾.
    mayuko2012
        13
    mayuko2012  
    OP
       2020-03-17 15:31:49 +08:00
    @baofeidyz #12 这个我没有遇到过,可能我们的故障不太一样吧
    hstdt
        14
    hstdt  
       2020-03-18 02:00:08 +08:00 via iPhone
    用了一天,好用,没断了!
    justNoBody
        15
    justNoBody  
       2020-03-19 11:50:51 +08:00
    再次遇到. 内存绿色. 断开了 airpods 和鼠标一起. 估计就是苹果没有考虑盖着屏幕的时候用蓝牙吧. 让人难受&绝望
    liumengdi
        16
    liumengdi  
       2020-03-22 17:08:35 +08:00
    好几天了, 没再出过问题, 感谢!!
    kenshinhu
        17
    kenshinhu  
       2020-04-16 09:47:46 +08:00
    我的文件里没有 EnablePressuredExit 这个属性,系统是:10.15.4
    spirityy109
        18
    spirityy109  
       2020-05-27 11:28:49 +08:00
    挺好用的 几天才断一次 谢谢
    xinlinqi
        19
    xinlinqi  
       2020-07-27 14:08:59 +08:00
    多谢分享,好几个小时没断了,哈哈
    ps0911
        20
    ps0911  
       2020-08-14 16:51:06 +08:00
    @kenshinhu 我的也没有,很尴尬

    @mayuko2012 方便贴一下这个文件的详细内容么?没找到这个配置项
    mayuko2012
        21
    mayuko2012  
    OP
       2020-08-17 10:12:44 +08:00
    @ps0911 #20
    head 20 应该是这样:

    ```
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>EnableTransactions</key>
    <true/>
    <key>EnablePressuredExit</key>
    <true/>
    <key>Label</key>
    <string>com.apple.bluetoothaudiod</string>
    <key>POSIXSpawnType</key>
    <string>Interactive</string>
    <key>ProcessType</key>
    <string>Interactive</string>
    <key>LegacyTimers</key>
    <true/>
    <key>LaunchEvents</key>
    ···
    </dict>
    ```
    绝对路径:/System/Library/LaunchDaemons/com.apple.bluetoothaudios.plist
    ps0911
        22
    ps0911  
       2020-08-17 15:48:05 +08:00
    感谢感谢,对比了一下文件这四行
    <key>EnableTransactions</key>
    <true/>
    <key>EnablePressuredExit</key>
    <true/>
    我的文件里都没有,我添加上试一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3859 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:29 · PVG 18:29 · LAX 02:29 · JFK 05:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.