前言:前段时间我在网上看到了利用蓝牙的方式模拟 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 上出了这种问题怪用户使用不当,虽然我还是很喜欢苹果,但是不能否认的是,在某些方面,苹果还是需要改进呀,尤其是承担自己应有的责任这一块。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.