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

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 上出了这种问题怪用户使用不当,虽然我还是很喜欢苹果,但是不能否认的是,在某些方面,苹果还是需要改进呀,尤其是承担自己应有的责任这一块。

9616 次点击
所在节点    MacBook Pro
49 条回复
zhouweiluan
2020-07-09 10:07:19 +08:00
这问题真可怕,以后在公司看谁不顺眼拿个 usb 蓝牙适配器插他 MacBook 一下就溜,深藏功与名。
jdjingdian
2020-07-09 10:12:41 +08:00
@zhouweiluan 哈哈哈哈,得要特定机型才行,要是公司统一配的 2020 款 13 寸或 16 寸那才行
flavoury
2020-07-09 10:39:57 +08:00
感谢!
ysc3839
2020-07-09 13:59:42 +08:00
@ryd994 应该是没用的。没记错的话展示机的 USB 全都禁用了。
ysc3839
2020-07-09 14:12:58 +08:00
@littlewing @jdjingdian
这种估计是固件 bug,同时又无法重置错误的配置。
我在用的一个 B75 主板固件就有 bug,写入了错误的 EFI Variable 数据之后,开机屏幕能亮但是马上会重启,取下 CMOS 电池也无法恢复,最终只能用编程器重刷解决。
locoz
2020-07-09 16:14:07 +08:00
绝了...居然能有这种 BUG 还好之前有一次把家里的 USB HUB 连到电脑上的时候已经把蓝牙模块拔掉了,要不然估计蓝牙挂了还一脸懵逼不知道咋回事。
Johnoo
2020-07-09 16:28:03 +08:00
直接跟天才小哥说,机器蓝牙坏了,你说那么多,人家肯定就说认为损坏了。
xuhaoyangx
2020-07-09 16:38:20 +08:00
@ysc3839 #23 展示机没有禁用 usb 。
KIMMG
2020-07-09 21:24:16 +08:00
我估计重装 macOS 能解决问题
jdjingdian
2020-07-09 22:33:57 +08:00
@KIMMG 要是能重装解决我就没必要发这个文章出来了
GhostLin
2020-07-10 11:21:05 +08:00
@jdjingdian 以我的经验,过去天才吧就是要装傻。一般都是换新。你要显得你比他还懂,基本就准备抬杠了。
pjntt
2020-07-10 13:09:46 +08:00
都拿去天才吧了,就让天才解决就好了,我们这些平凡人不要说太多,误导天才的判断。
“怎么弄的?不知道呀,用着好好就成这样了,,,,
干过什么了?没干什么呀,就跟平常用那样...插电,开机,打字,,,
接过什么外设?,,,呃,鼠标算不算?”
lslqtz
2020-07-11 02:44:55 +08:00
黑苹果表示内置和外置都可以驱动,但是内置驱动时似乎不会自动切换蓝牙适配器🤔
jdjingdian
2020-07-11 19:17:54 +08:00
@lslqtz 哈哈,旧款 mac 也不会,看起来是跟 t2 芯片有关系才导致的
LinYa
2020-07-30 15:35:18 +08:00
老哥,你更换了主板以后开启 禁止系统自动切换默认蓝牙设备,这个有没有效果,有没有试过重新插入 usb 蓝牙试试?我这周更换回主板想试试。。。还是说带上 usb 蓝牙去天才吧?
jdjingdian
2020-07-30 17:28:38 +08:00
@LinYa 上面写了,用 sudo nvram bluetoothHostControllerSwitchBehavior=never 来禁止蓝牙设备自动切换,如果你的设备在保修期想换主板,那你可以插上蓝牙适配器试试,但我建议多一事不如少一事
LinYa
2020-07-30 18:19:32 +08:00
@jdjingdian 好的谢谢
yiheng233
2020-08-03 20:32:48 +08:00
昨天新买的 MBP13 寸出现了一样的问题,但没有连接过蓝牙适配器
试过随航等功能最开始可以用
唯一连接的外接设备是微软的 2.4G 鼠标
不是很懂苹果
jdjingdian
2020-08-04 09:49:02 +08:00
@yiheng233 2.4G 鼠标应该不在蓝牙的范畴内才对啊,去直营店问问吧,看看能不能退货或者换新
yiheng233
2020-08-04 15:02:14 +08:00
@jdjingdian 我也不清楚是如何触发的,现在已经在走官网换新的流程

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

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

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

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

© 2021 V2EX