本博客部分内容借鉴于:解决Linux无法连接蓝牙耳机Bose QuietComfort 35(QC35)的问题-漫月者,感谢博主的分享!
首先,安装蓝牙模块,参照Arch Wiki:Bluetooth。
安装bluez和bluez-utils:
1 | sudo pacman -S bluez |
加载模块:
1 | modprobe bluetooth |
设置开机启动:
1 | sudo systemctl enable bluetooth.service |
开启服务:
1 | sudo systemctl start bluetooth.service |
使用bluetoothctl来打开蓝牙控制台:
1 | bluetoothctl |
输入help来查看帮助。
输入power on(我也不知道干什么用的,似乎是开启控制台)。
输入scan on来搜索设备。
使用devices来查看设备。
使用pair来配对设备。
使用connect来连接设备。
注意,pair和connect后面应填的参数是设备的Mac地址,使用devices命令会出现设备的Mac地址。pair一次设备后再连接就不要用pair了,要用connect。
使用trust来信任设备,这点常用在于没有PIN码的设备上。
使用untrust来取消信任设备。
我只是列出了常用的命令,更多的命令还请输入help后查看,当然,是英文的。
我在连接设备的时候出现了:Failed to pair: org.bluez.Error.AuthenticationFailed,百度了一番在解决Linux无法连接蓝牙耳机Bose QuietComfort 35(QC35)的问题上找到了原因:似乎是因为我的设备不支持匹配低功耗设备。根据这位博主的教程,编辑/etc/bluetooth/main.conf文件:
1 | sudo vim /etc/bluetooth/main.conf |
将 # ControllerMode = dual改为ControllerMode = bredr,然后保存。
然后重启bluetooth服务:
1 | sudo systemctl restart bluetooth |
这里我重启的时候系统崩掉了。。。自动重启了系统后好了过来。
然后你需要断开之前设备的连接和untrust掉之前trust的设备(如果你没有连接设备和trust设备当我没说),然后再次连接,成功~
如果连接时出现Failed to connect: org.bluez.Error.Failed错误,那是你没装pulseaudio-bluetooth包,无法支持A2DP协议,装一个再试就可以了。
成功连接后声音输出可能会默认走的是HSP/HFP,音质会极差,在音频设置里切换到A2DP就正常了。更多蓝牙音频设备的设置可以查看Arch Wiki:Bluetooth headset。
安装这些包:pulseaudio-alsa, pulseaudio-bluetooth, bluez, bluez-libs, bluez-utils, bluez-firmware。bluez-firmware是AUR包,无法使用pacman直接安装,需要下载。链接可以查看上面发的那个Arch Wiki链接。
安装完这些包之后我又安装了一个音频控制器pavuconctrol,这个通过pacman就可以直接下载。安装完成后终端输入pavucontrol就可以使用了。
补充: spotify似乎无法使用蓝牙,这点十分的蛋疼,于是我使用了Audacious播放器,这是个本地播放器,可以通过pacman直接安装。使用了Audacious就可以用蓝牙耳机播放音乐了。。。太坑了,我一直以为是自己耳机的问题或是自己配置的不到位,没想到是播放器不支持。。。)
2020/07/16 10:41补充: 博主发现不是播放器不支持,是打开方式不对,正确的打开方式应该是:bluetoothctl连接蓝牙->打开播放器->播放音乐。这样无论是什么播放器都会使用耳机播放音乐了。还有一点,如果你连接上蓝牙打开播放器听了一段时间后又断开了蓝牙,那么需要重新启动播放器才能使用蓝牙耳机(流程: 连接蓝牙耳机->关闭播放器->打开播放器->播放音乐)。
那么本博客完~