血(钱)的教训,附预防方法

2020-07-08 21:51:47 +08:00
 jdjingdian

Macbook Pro 16 内置蓝牙模块损坏分析

前言:前段时间我在网上看到了利用蓝牙的方式模拟 joycon 来实现低成本刷 amiibo 的教程,就决定自己试一试,本来想直接通过 parallel desktop 提供的共享蓝牙来做实验,但似乎共享蓝牙的方式并不能成功模拟 joycon,虽然可以通过物理机直接安装 Linux,但总觉得不够方便,所以我决定购买一个 usb 蓝牙适配器给 linux 虚拟机用,而这也是这次惨案的导火索。


我买的蓝牙适配器是 csa8510 芯片的,当我成功实现模拟 amiibo 的目的后,我把外接的 usb 蓝牙适配器从雷电 3 扩展坞上拔出来,这时我突然发现我的京造 k2 键盘没法通过蓝牙连接到 Mac 了,起初我还没当回事,直到我发现,handoff 、airdrop 等功能全部失灵的时候,我意识到,macbook 本机的蓝牙出故障了。

起初我以为不过是软件问题, 就通过重置 smc 、nvram 等方式尝试重置我的 mac,但是仍然没有用,心里想着重装解决 99%的问题,但我又不想重装 macOS,我就引导了一个外置的 Ubuntu 启动,但是结果并不乐观,虽然 Ubuntu 里面也可以识别到蓝牙适配器,但是根本搜不到任何蓝牙设备,直到这时我才明白,可能是硬件底层出问题了。

我立刻预约了天才吧,运气不错,最早可以约第二天,在此后我继续在谷歌上搜索相关问题,没想到一搜才发现,这个问题似乎很普遍,在 apple 官方的论坛下有 16 页的讨论,而且引发事故的原因都几乎一致,基本都是无意接了 usb 蓝牙适配器之后内置的蓝牙模块就不能用了,最早可以追溯到 19 年底,但可能这个问题至今没有得到官方的重视,所以一直没有发布相关的固件修复。( https://discussions.apple.com/thread/250944058 )后来也有好事的老哥在 2020 款 13 寸 Macbook Pro 上尝试,发现也复现了相同的问题,所以目前至少这个故障影响了 Macbook Pro 16 和 2020 款 Macbook Pro 13 寸机型,甚至可能影响范围更广泛。

那么这个问题产生的原因是什么呢?经过调查,我们发现,当 MacBook Pro 接入了外置的蓝牙适配器之后,系统会将外置的蓝牙适配器设置为默认蓝牙通讯设备,但是当你拔掉外置的蓝牙适配器之后,系统没法将默认设备设置回内置的模块,即使重启也没有效果。现在似乎还没有能稳定恢复正常使用的方法,如果真的碰到这种情况,就只能去天才吧换主板了,现在 mac 的集成度那么高,如果不在保修期,换一次真的是要-8000,所以一定要想办法去预防,刚刚也提到系统会将外置的蓝牙适配器设为默认设备,所以我们可以通过这个角度来预防内置模块暴死,在内置的命令行输入以下命令可以起到预防作用:

sudo nvram bluetoothHostControllerSwitchBehavior=never

这句话的作用是禁止系统自动切换默认蓝牙设备。

第二天我到了天才吧,天才跟我说她也没遇到过这种情况,好在我的电脑还有保修,所以没有花钱,就是得等 1 周才能取,因为主板没有现成的更换零件。但说实话天才的一句话让我很难受,天才跟我说这属于 使用不当 ,我当时简直就是黑人问号,本来这应该是苹果新电脑的固件问题,毕竟旧的 mac 、windows 笔记本之类的都不会有这种情况,结果在新 mac 上出了这种问题怪用户使用不当,虽然我还是很喜欢苹果,但是不能否认的是,在某些方面,苹果还是需要改进呀,尤其是承担自己应有的责任这一块。

9587 次点击
所在节点    MacBook Pro
49 条回复
mitong3269
2020-07-08 22:02:26 +08:00
不应该算使用不当啊
jdjingdian
2020-07-08 22:11:59 +08:00
@mitong3269 对呀,其实我买这个蓝牙适配器是想给虚拟机用的,并没有想在 mac 系统下使用,结果说我使用不当,就心里很不舒服,当然这也是苹果一贯作风了吧……
Xusually
2020-07-08 22:36:19 +08:00
这种问题去天才吧的话,应该直接描述为蓝牙不能使用。。。。。你说这么一堆,本来没问题也说你使用有问题了,因为毕竟插拔的硬件不一定都是“Apple Certified”
手动狗头.gif
jdjingdian
2020-07-08 22:54:06 +08:00
@Xusually 哎,我是想描述详细一点,这样报上去的话也许能让苹果从根源解决这个问题
geniussoft
2020-07-08 23:24:36 +08:00
@Xusually 一般骗保的时候确实可以这么说。但是,这个真的使用得很恰当了。
ryd994
2020-07-09 02:01:15 +08:00
带上你的 usb 蓝牙,去苹果店,把他们电脑全部插一遍。
他敢抓你,你就在店里给他广而告之。
(当然,还有一台 Windows 本以证明你的 usb 蓝牙本身工作正常)
littlewing
2020-07-09 02:19:01 +08:00
我的理解是硬件并没有坏,只是默认配置回不来了,既然如此,我很好奇那这个配置是保存在哪里的?为什么重装系统,重置 smc nvram 都不行?苹果自己也没有解决办法?
jdjingdian
2020-07-09 02:26:27 +08:00
@ryd994 哈哈,原本我也想这样,但还是做人留一线日后好相见吧
jdjingdian
2020-07-09 02:28:22 +08:00
@littlewing 对,我也认为硬件其实没有坏,只是“点不着火”了,这个问题应该是出在系统底层的固件逻辑里的,所以用户重置 smc nvram 都不起作用。苹果肯定有解决办法,无非是个固件更新的事情,但是可能苹果还没重视这个问题所以一直没修复
tsui
2020-07-09 05:19:59 +08:00
reddit 上似乎有类似的讨论,这也太扯淡了,幸好我好多年没用过蓝牙 dongle 了
https://www.reddit.com/r/mac/comments/hlfxpe/psa_for_anyone_buying_a_new_16_macbook/
wtks1
2020-07-09 06:21:47 +08:00
连重装系统都不行?这个配置难道是直接写进主板的?
l33ch
2020-07-09 09:24:45 +08:00
罗技优联接收器受影响吗? iMac 呢?
jdjingdian
2020-07-09 09:32:56 +08:00
@l33ch 罗技优联是 2.4G 适配器,不会造成问题,iMac 目前没有 T2 芯片所以暂时也不受影响
jdjingdian
2020-07-09 09:33:59 +08:00
@wtks1 应该是 t2 固件底层逻辑的错误,所以用户毫无办法
NeoChen
2020-07-09 09:36:42 +08:00
额,是不是只要外接过 usb 蓝牙适配器后,就都会出现这种问题?
l33ch
2020-07-09 09:45:02 +08:00
@jdjingdian
多谢回复。

我很好奇,mbp 都是 typec 的小口,遇到问题的蓝牙适配器是 c2a 转接的吗?还是直接 c 口的?
RichardSun
2020-07-09 10:02:33 +08:00
感谢楼主分享,这个坑太大了日常根本不会想到还能有这种问题。
RichardSun
2020-07-09 10:03:09 +08:00
@l33ch 罗技的优联还没 C 口的,所以都要用个转换头
jdjingdian
2020-07-09 10:03:24 +08:00
@NeoChen 不一定,如果是不兼容 mac 的适配器芯片的话,插上去应该不会有问题,出问题的是兼容 mac 系统的芯片,我买的是 csr8510 芯片的蓝牙适配器
jdjingdian
2020-07-09 10:04:00 +08:00
@l33ch 蓝牙适配器是 a 口的,我是插在我的雷电 3 扩展坞上

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/688363

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX