- 积分
- 76
- 最后登录
- 2024-4-18
- 精华
- 0
- 阅读权限
- 20
- 主题
- 10
- UID
- 661891
- 帖子
- 116
- PB币
- 285
- 威望
- 5
- 贡献
- 0
- 技术
- 3
- 活跃
- 278
- UID
- 661891
- 帖子
- 116
- PB币
- 285
- 贡献
- 0
- 技术
- 3
- 活跃
- 278
|
本帖最后由 Etrock 于 2019-3-8 10:37 编辑
intel 蓝牙的bug是搜不到设备,或者搜到后连不上,查看系统报告,蓝牙MAC为00-00-00-00-00-00。
前两天群友发了个帖子,可以用热切换的方式在macOS下让intel的蓝牙工作,验证后确实可行,但也只是把蓝牙驱动了,还是有些问题:- 无法手动关闭/开启蓝牙;
- 后台会一直在搜索设备;
- 有时候不会重连耳机,需要手动进偏好设置连耳机;
- 隔空投送,不能用;
- 蓝牙鼠标可用;
black.dragon74原帖
https://osxlatitude.com/forums/topic/10127-updated-nov-2017-fix-btfirmwareuploader-in-macos-high-sierra/
帖子的方法是用的ubuntu,有点耗资源,特别是当后台开多后,ubuntu启动可能就会报内存不足;
于是找了个超小的Tiny Core Linux,装完BT驱动和组件后虚拟机才20多M大小,运行时最低192MB运存,推荐使用,具体安装方法网上都有;
http://tinycorelinux.net/
我装的是命令行版(界面版肯定耗资源),硬盘创建了个128M的磁盘就足够,运存给192MB,其他硬件都移除。
安装到硬盘后,网络是默认是通的,软件模块只需要安装蓝牙和usb的组件即可。
- tce-load -wil bluez usbutils firmware-intel
复制代码
这时候在vmware的工具栏,点击把蓝牙交给linux,查蓝牙的log可以看到Device booted in xxx usecs
这时候断开蓝牙,或虚拟机挂起/关闭,蓝牙交回给macOS,这时候可以正常连接耳机;
- 改虚拟机的配置文件,让虚拟机启动(恢复时)自动把macOS的蓝牙接到linux里。
1.先启动一次虚拟机的linux,然后把蓝牙转给linux,然后关机或挂起。
2.打开虚拟机Tiny的包内容,查看vmware.log文件,搜Bluetooth,会看到一段 “vid:xxxx pdi: xxxx”,记住后面那段“path:x/x/x”
3.编辑Tiny目录下的TinyCoreLinux.vmx文件,把 usb.autoConnect.device1="path:0/0/2/2",改成上面看到你自己的蓝牙路径
重新打开/恢复虚拟机,默认就会自动接管蓝牙,不用自己再操作;
这样就只用打开/关闭(休眠)虚拟机就行(中间隔个十几秒,给模块一点时间);
- 这里是我做好的虚拟镜像,直接可用(macOS要装好VMWare);
https://share.weiyun.com/51bNUrE
热切换还有个坑,睡眠后蓝牙固件会又丢了,需要再到虚拟机去初始一遍。
于是我试了下,可以用sleepwatcher控制,自动完成这个操作;
* 先安装brew环境,终端运行
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
* 然后安装sleepwatcher
brew install sleepwatcher
* 在用户目录创建一个.wakeup文件,给权限
vi ~/.wakeup
chmod +x .wakeup
* 启动sleepwatcher服务:brew services start sleepwatcher
* 我的.wakeup内容
XiaoMideMacBook:~ xiaomi$ cat .wakeup
open -j -g ~/Desktop/TinyCoreLinux.vmwarevm //打开虚拟机
sleep 25 //等25秒蓝牙固件准备好,这个时间可以自己试,太快了蓝牙固件没恢复好
osascript -e 'tell app "VMware Fusion" to quit' //关闭虚拟机
**睡眠起来后,如果停在登陆界面,sleepwatcher也会让任务起来,他还可以触发拔插电源线的操作,相当好用~
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|