Ubuntu 22.04上蓝牙无法打开——(MT7922网卡为例)
这个bug具体表现为:
1
2
3
4
5
6
7
8
9
10
11
12
13
~$ rfkill list all
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
~$ bluetoothctl
Agent registered
[bluetooth]# list
# 此处为空
[bluetooth]# exit
如果你是双系统,请先把windows的快速启动关闭,他会导致电脑没有完全关机,硬件处于挂起状态,linux无法正确初始化他。
还没有解决的话,就是内核中的蓝牙驱动模块有问题,我们替换掉蓝牙驱动模块。
检查快速启动状态
我们使用 DKMS 将新驱动编译到内核中。
1
mokutil --sb-state
如果输出是 SecureBoot disabled,那很好,您可以直接进行下一步。
如果输出是 SecureBoot enabled,您需要重启电脑,进入 BIOS/UEFI 设置,找到 “Secure Boot” 相关的选项并将其禁用 (Disable)。保存设置后再次启动进入 Ubuntu。
安装 git 和 DKMS
1 2
sudo apt update sudo apt install git dkms
下载新的驱动源代码
先通过
uname -r
确认内核版本如果是
6.5.x
:git clone https://github.com/jeremyb31/bluetooth-6.8.git -b 6.5-50
如果是
6.8.x
:git clone https://github.com/jeremyb31/bluetooth-6.8.git
通过 DKMS 添加并安装驱动
1 2 3 4 5 6 7 8
# 进入新下载的目录 cd bluetooth-6.8 # 将驱动源码添加到 DKMS 树 sudo dkms add . # 编译并安装模块 sudo dkms install btusb/4.2
重启电脑
万一这个新驱动导致了其他问题,以下是卸载命令
1
sudo dkms remove btusb/4.2 --all
重启电脑后即可恢复。
本文由作者按照 CC BY 4.0 进行授权