蓝牙驱动程序安装失败

蓝牙驱动程序安装失败

你好,我正在撰写我的论文,基于模型的物联网协议测试。

更新 Ubuntu(20.04LTS,带加密磁盘的双启动)后,使用 PyBluez 进行开发时出现问题。我无法再在两个蓝牙适配器之间建立连接(最终导致连接超时 - 连接从未建立),经过无休止的调试后,我认为 Ubuntu 更新可能是导致此问题的唯一原因。(更新前一天它运行良好)。

Start-Date: 2022-07-06  15:28:01
Commandline: aptdaemon role='role-commit-packages' sender=':1.88'
Upgrade: libqmi-proxy:amd64 (1.28.6-1~20.04.1, 1.30.4-1~ubuntu20.04.1), gnupg-utils:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2), gpg-wks-client:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2), openssl:amd64 (1.1.1f-1ubuntu2.15, 1.1.1f-1ubuntu2.16), gnupg-l10n:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2), update-notifier-common:amd64 (3.192.30.10, 3.192.30.11), azure-cli:amd64 (2.37.0-1~focal, 2.38.0-1~focal), snapd:amd64 (2.54.3+20.04.1ubuntu0.3, 2.55.5+20.04), ubuntu-advantage-tools:amd64 (27.8~20.04.1, 27.9~20.04.1), libqmi-glib5:amd64 (1.28.6-1~20.04.1, 1.30.4-1~ubuntu20.04.1), google-chrome-stable:amd64 (103.0.5060.53-1, 103.0.5060.114-1), gpg-wks-server:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2), gpg:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2), mainline:amd64 (1.0.15-0~202110201909~ubuntu20.04.1, 1.0.15-0~202204070351~ubuntu20.04.1), isc-dhcp-common:amd64 (4.4.1-2.1ubuntu5.20.04.2, 4.4.1-2.1ubuntu5.20.04.3), dirmngr:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2), firefox-locale-en:amd64 (101.0.1+build1-0ubuntu0.20.04.1, 102.0+build2-0ubuntu0.20.04.1), gpgv:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2), libmm-glib0:amd64 (1.16.6-2~20.04.1, 1.18.6-1~ubuntu20.04.1), libmbim-proxy:amd64 (1.24.8-1~20.04, 1.26.2-1~ubuntu20.04.1), libssl-dev:amd64 (1.1.1f-1ubuntu2.15, 1.1.1f-1ubuntu2.16), firefox:amd64 (101.0.1+build1-0ubuntu0.20.04.1, 102.0+build2-0ubuntu0.20.04.1), modemmanager:amd64 (1.16.6-2~20.04.1, 1.18.6-1~ubuntu20.04.1), libssl1.1:amd64 (1.1.1f-1ubuntu2.15, 1.1.1f-1ubuntu2.16), libssl1.1:i386 (1.1.1f-1ubuntu2.15, 1.1.1f-1ubuntu2.16), gnupg:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2), isc-dhcp-client:amd64 (4.4.1-2.1ubuntu5.20.04.2, 4.4.1-2.1ubuntu5.20.04.3), libmbim-glib4:amd64 (1.24.8-1~20.04, 1.26.2-1~ubuntu20.04.1), gpg-agent:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2), update-notifier:amd64 (3.192.30.10, 3.192.30.11), gpgconf:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2), gpgsm:amd64 (2.2.19-3ubuntu2.1, 2.2.19-3ubuntu2.2)
End-Date: 2022-07-06  15:28:55

由于我不确定导致该问题的具体原因,并且不确定使用 synaptic 降级到旧版本是否会破坏我的 Ubuntu,所以我放弃了降级。

除了其他内容(似乎不相关)之外,我尝试安装华硕的新蓝牙驱动程序('20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202')。但是,由于$ sudo make install INTERFACE=all以下错误,它无法正常工作:

/home/marko/Downloads/20200909_LINUX_BT_DRIVER_KERNEL_5.7_COEX_v0202/20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202/20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202/uart/bluetooth_uart_driver/hci_ldisc.c: In function ‘hci_uart_init’:
/home/marko/Downloads/20200909_LINUX_BT_DRIVER_KERNEL_5.7_COEX_v0202/20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202/20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202/uart/bluetooth_uart_driver/hci_ldisc.c:1082:16: error: ‘struct tty_ldisc_ops’ has no member named ‘magic’
 1082 |  hci_uart_ldisc.magic = TTY_LDISC_MAGIC;
      |                ^
/home/marko/Downloads/20200909_LINUX_BT_DRIVER_KERNEL_5.7_COEX_v0202/20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202/20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202/uart/bluetooth_uart_driver/hci_ldisc.c:1082:25: error: ‘TTY_LDISC_MAGIC’ undeclared (first use in this function); did you mean ‘TTY_LDISC_HALTED’?
 1082 |  hci_uart_ldisc.magic = TTY_LDISC_MAGIC;
      |                         ^~~~~~~~~~~~~~~
      |                         TTY_LDISC_HALTED
/home/marko/Downloads/20200909_LINUX_BT_DRIVER_KERNEL_5.7_COEX_v0202/20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202/20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202/uart/bluetooth_uart_driver/hci_ldisc.c:1082:25: note: each undeclared identifier is reported only once for each function it appears in
/home/marko/Downloads/20200909_LINUX_BT_DRIVER_KERNEL_5.7_COEX_v0202/20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202/20200806_LINUX_BT_DRIVER_RTL8761B_COEX_v0202/uart/bluetooth_uart_driver/hci_ldisc.c:1086:22: error: assignment to ‘ssize_t (*)(struct tty_struct *, struct file *, unsigned char *, size_t,  void **, long unsigned int)’ {aka ‘long int (*)(struct tty_struct *, struct file *, unsigned char *, long unsigned int,  void **, long unsigned int)’} from incompatible pointer type ‘ssize_t (*)(struct tty_struct *, struct file *, unsigned char *, size_t)’ {aka ‘long int (*)(struct tty_struct *, struct file *, unsigned char *, long unsigned int)’} [-Werror=incompatible-pointer-types]
 1086 |  hci_uart_ldisc.read = hci_uart_tty_read;
      |                      ^

我决定使用$ sudo make install INTERFACE=usb。之后,我的笔记本电脑的蓝牙适配器似乎找不到,并且有了它,蓝牙就无法工作了。当我使用外部蓝牙适配器时,它们会被找到,并且默认使用(插入时)。我尝试了另一个驱动程序,发生了同样的情况,即使它不是完全相同的错误(在安装期间)。

现在,我猜测这$ sudo make install INTERFACE=all将允许笔记本电脑的蓝牙适配器工作,但是,我无法使安装工作,正如您在前面的屏幕截图中看到的那样。

  1. 我的第一个问题是如何让笔记本电脑的蓝牙适配器重新工作?
  2. 我的第二个问题是,第一张截图中的更新日志中是否有与蓝牙相关的依赖项?如果有,我该如何修复它?

重新安装 Ubuntu 是最后一个选择。

如果我们能解决这个问题,我将不胜感激。我已经被这个问题困扰了 3 天了。

以下是来自终端的更多信息:

$ lspci -knn | grep Net -A3
03:00.0 Network controller [0280]: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter [168c:003e] (rev 32)
    Subsystem: Lenovo QCA6174 802.11ac Wireless Network Adapter [17aa:0827]
    Kernel driver in use: ath10k_pci
    Kernel modules: ath10k_pci
04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 10) 

更新

正如下面的评论所建议的那样,第一个问题已经通过卸载附加驱动程序得到解决。

第二个问题的原因仍不清楚。

$ hcitool lecc --random 04:42:1A:57:16:91
Could not create connection: Connection timed out

在 Ubuntu 更新之前不会发生这种情况。其他命令似乎均未受到影响。

我知道这是一个不同的知识领域,但我怀疑 Ubuntu 更新是否会导致故障。

答案1

您不需要为您的[0cf3:e300]设备安装任何驱动程序。它由 Linux 内核原生支持。

您的错误日志显示驱动程序未构建,因为它与您的内核不兼容。

您需要卸载该驱动程序,因为它可能会将树内模块列入黑名单或执行其他操作。不要问“如何卸载它”,因为我们不知道该驱动程序是什么,也不知道该驱动程序安装后会做什么。

相关内容