最新的发现:
通过find命令,终于找到蓝牙耳机的数据文件:
其中ref是在扫描蓝牙耳机前先用touch创建的文件,用于比较时间。
```
sudo find / ! -path "/proc/*" ! -path "/sys/*" ! -path "/run/*" ! -path "/root/*" ! -path "*/snap/*" ! -path "*/snapd/*" -newer ref -type f | more
```
找到几个刚刚修改的文件,用蓝牙的mac地址命名:
/var/lib/bluetooth/00:1A:7D:DA:71:15/AC:BD:70:4E:AE:1B/info
/var/lib/bluetooth/00:1A:7D:DA:71:15/AC:BD:70:4E:AE:1B/attributes
/var/lib/bluetooth/00:1A:7D:DA:71:15/cache/E0:D4:62:8A:04:B0
/var/lib/bluetooth/00:1A:7D:DA:71:15/cache/AC:BD:70:4E:AE:1B
例如我的蓝牙耳机:
/var/lib/bluetooth/00:1A:7D:DA:71:15/cache/AC:BD:70:4E:AE:1B
ubuntu mate 22.04无法链接蓝牙的原因,大概率是因为blueman的问题,用bluetoothctl工具可以连接蓝牙,但一旦打开blueman,就无法连接,原因可能是blueman无法弹出确认配对符的窗口界面。
------------------------------------------
好几次遇到升级Ubuntu版本之后,原本好好的蓝牙耳机连接失败,最早一次是18.04升级到20.04,从20.04升级到22.04,还有22.04的普通升级(升级kernel等)。
后面找到下面两个文章,做了几个事情,问题解决:
1、打开配置文件/etc/bluetooth/main.conf,将 # ControllerMode = dual改为ControllerMode = bredr,然后保存。
2、重启bluetooth服务:sudo service bluetooth restart
3、安装pulseaudio-bluetooth模块:
5933 2023-02-11 20:17:05 sudo aptitude install libavcodec-dev
5934 2023-02-11 20:17:34 sudo aptitude install libavutil-dev
5936 2023-02-11 20:18:09 sudo aptitude install libldacbt-abr-dev
5937 2023-02-11 20:18:22 sudo aptitude install libldacbt-enc-dev
5938 2023-02-11 20:19:00 sudo aptitude install pulseaudio-module-bluetooth
5939 2023-02-11 20:19:21 pulseaudio -k
5940 2023-02-11 20:19:30 pulseaudio --start
4、使用bluetoothctl命令扫描和连接蓝牙耳机:
alpha@mascot ~ $ bluetoothctl
Agent registered
[CHG] Controller 00:1A:7D:DA:71:15 Pairable: yes
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:1A:7D:DA:71:15 Discovering: yes
[CHG] Device AC:BD:70:4E:AE:1B RSSI: -54
[CHG] Device AC:BD:70:4E:AE:1B ManufacturerData Key: 0x027d
[CHG] Device AC:BD:70:4E:AE:1B ManufacturerData Value:
14 16 ee fd 01 01 01 02 c7 03 00 00 27 04 00 0f ............'...
01 10 02 11 f0 .....
[bluetooth]# connect AC:BD:70:4E:AE:1B
Attempting to connect to AC:BD:70:4E:AE:1B
[CHG] Device AC:BD:70:4E:AE:1B Connected: yes
Request confirmation
[agent] Confirm passkey 819602 (yes/no): yes
[CHG] Device AC:BD:70:4E:AE:1B Paired: yes
Connection successful
[CHG] Device AC:BD:70:4E:AE:1B ServicesResolved: yes
[FreeBuds 3]# exit
------
悲催的是,连接成功之后,由于音效不好,断续,按照这边文章折腾一下,又连接不上了:
Ubuntu20.04 外接音响播放音频时出现杂音或滋滋滋电流声解决方法_乌班图声音出现杂音_Yan_SWU的博客-CSDN博客
还有更悲催的是,连通知栏(Indicator Applet)的音量控制图标都不见了。
后来,经过多番折腾,发现Indicator Applet是 ayatana-indicator,通过sudo apt install ayatana-indicator-sound安装,把音量图标搞出来了(其他图标也可以类似操作)。
-----
又连接成功了:长按电源键超过10s,复位蓝牙耳机(FreeBuds 3),重新连接会显示配对数字确认,确认之后就可以重新连接了。
但声音卡顿。
--------
蓝牙接收器换一个USB接口,又可以连接上了,但有杂音,再换回原来的接口,还能连上,而且杂音也没有了。神奇的Ubuntu。
------参考-------
解决Linux无法连接蓝牙耳机Bose QuietComfort 35(QC35)的问题_百度知道
切换到Arch也有一段时间了,一直在用的QC35也又一次遇到了蓝牙配对的问题。以前都是用Blueman,或者直接连接有线,但是问题只是被隐藏了,这次还是好好把这个问题解决了一下。
Linux下连接蓝牙设备的方法可以参照 Arch Wiki:Bluetooth ,我使用的蓝牙设备是USB CSR8510蓝牙适配器,按页面说明安装好软件包后,启动蓝牙服务,进入bluetoothctl,耳机打开配对模式,scan on查找到我的耳机的MAC,pair 04:52:C7:5B:CB:65,出现问题:
如果你在蓝牙设置界面进行配对尝试,不同桌面也有不同的错误提示,反正就是无法完成配对。如果使用Blueman等软件,有机会可以通过多次重试成功连接,但是问题还是间歇出现,并不能治本。
百度是找不到什么好解决方案的,直接Google,不一会就找到了有用的解决方法, Pairing Bose QC 35 over Bluetooth on Fedora ,问题上看基本就是我的问题,最高票的回答也很简单,QC35声称支持低功耗蓝牙(LE)但不支持低功耗模式下的配对,Bluez也还不支持明明配对一个LE设备,却要切换到BR模式来配对(大概是这个意思),除非你在配置文件里指定所有设备都应该工作在BR模式,所以打开配置文件/etc/bluetooth/main.conf(没有的话新建一个),找到下面的
将 # ControllerMode = dual改为ControllerMode = bredr,然后保存,对于新建的文档,直接输入下面的然后保存
然后重启bluetooth服务
现在你应该能在bluetooth里愉快地配对了----才怪,你还需要删除以前的配对设置,否则会出现org.bluez.Error.AuthenticationRejected错误
再次尝试配对,信任,连接,如果连接时出现Failed to connect: org.bluez.Error.Failed错误,那是你没装pulseaudio-bluetooth包,无法支持A2DP协议,装一个再试就可以了。
成功连接后声音输出可能会默认走的是HSP/HFP,音质会极差,在音频设置里切换到A2DP就正常了。更多蓝牙音频设备的设置可以查看 Arch Wiki:Bluetooth headset
关于蓝牙协议可以查看百科,或者这里有简短的科普 蓝牙协议分析(1)_基本概念
关于这里bluetooth和QC35在配对时鸡同鸭讲的问题,给出解决问题的人也表示自己的蓝牙鼠标是LE,为了使用他后来把配置文件里的ControllerMode删掉了,但是耳机和鼠标都没受影响,他猜想可能配对后的设备是不受配置文件的影响的。
安装Pulseaudio模块在Ubuntu中开启蓝牙APTX/LDAC支持_Linux教程_云网牛站
安装Pulseaudio模块在Ubuntu中开启蓝牙APTX/LDAC支持
2018-10-21 20:41:50作者:张源新稿源:云网牛站
安装pulseaudio-bluetooth模块就能在Ubuntu 18.10/Ubuntu 18.04系统中实现蓝牙APTX/LDAC的支持,因为该模块整合了对于LDAC和APTX的支持,把它编译安装到你的Ubuntu系统里,重启Pulseaudio后配对你的蓝牙设备即可用。 pulseaudio-modules-bt Add Sony LDAC, aptX, aptX HD codecs (A2DP Audio) support for Linux PulseAudio. 安装方法 git clone https://github.com/EHfive/pulseaudio-modules-bt.git cd pulseaudio-modules-bt git submodule update --init git -C pa/ checkout v`pkg-config libpulse --modversion` mkdir build && cd build cmake .. make sudo make install 可以使用PPA安装(支持Ubuntu 18.04、18.10系统) sudo add-apt-repository ppa:eh5/pulseaudio-a2dp sudo apt-get update sudo apt-get install libavcodec libavutil libldac pulseaudio-module-bluetooth 安装完成后重启Pulseaudio: pulseaudio -k # if pulseaudio not restart automatically, run pulseaudio --start 安装后进行蓝牙配对就可以了。以上过程在Ubuntu 18.04配对测试成功。 |