jcu*_*bic 4 fedora drivers firmware bluetooth linux-kernel
我有最近更新的 Fedora 32。我停电了,所以我需要关闭笔记本电脑,再次启动后,蓝牙停止工作(我不确定在关机前是否更新了某些内容)。
\nlinux 是这样说的:
\n$ uname -a\nLinux jcubic 5.6.16-300.fc32.x86_64 #1 SMP Thu Jun 4 18:08:38 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux\n\n$ dmesg | grep -i bluetooth\n[ 2.683570] Bluetooth: Core ver 2.22\n[ 2.683589] Bluetooth: HCI device and connection manager initialized\n[ 2.683592] Bluetooth: HCI socket layer initialized\n[ 2.683593] Bluetooth: L2CAP socket layer initialized\n[ 2.683595] Bluetooth: SCO socket layer initialized\n[ 2.693267] bluetooth hci0: Direct firmware load for qca/rampatch_usb_00000302.bin failed with error -2\n[ 2.693269] Bluetooth: hci0: failed to request rampatch file: qca/rampatch_usb_00000302.bin (-2)\n[ 8.209092] Bluetooth: BNEP (Ethernet Emulation) ver 1.3\n[ 8.209093] Bluetooth: BNEP filters: protocol multicast\n[ 8.209095] Bluetooth: BNEP socket layer initialized\n\n$ locate rampatch_usb_00000302.bin\n/usr/lib/firmware/qca/rampatch_usb_00000302.bin\n\n$ lsmod | grep -i bluetooth\nbluetooth 643072 12 btrtl,btintel,btbcm,bnep,btusb\necdh_generic 16384 1 bluetooth\nrfkill 28672 8 bluetooth,dell_laptop,cfg80211\n\n$ LC_ALL=C rfkill\nID TYPE DEVICE SOFT HARD\n 0 bluetooth hci0 unblocked unblocked\n 1 wlan phy0 unblocked unblocked\n\n$ hciconfig up \nhci0: Type: Primary Bus: USB\n BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0\n DOWN \n RX bytes:0 acl:0 sco:0 events:0 errors:0\n TX bytes:0 acl:0 sco:0 commands:0 errors:0\n\n$ sudo systemctl status bluetooth\n\xe2\x97\x8f bluetooth.service - Bluetooth service\n Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enable>\n Active: active (running) since Fri 2020-06-12 19:21:41 CEST; 55min ago\n Docs: man:bluetoothd(8)\n Main PID: 879 (bluetoothd)\n Status: "Running"\n Tasks: 1 (limit: 18735)\n Memory: 2.9M\n CGroup: /system.slice/bluetooth.service\n \xe2\x94\x94\xe2\x94\x80879 /usr/libexec/bluetooth/bluetoothd\n\ncze 12 19:21:41 jcubic systemd[1]: Starting Bluetooth service...\ncze 12 19:21:41 jcubic bluetoothd[879]: Bluetooth daemon 5.54\ncze 12 19:21:41 jcubic systemd[1]: Started Bluetooth service.\ncze 12 19:21:41 jcubic bluetoothd[879]: Starting SDP server\ncze 12 19:21:41 jcubic bluetoothd[879]: Bluetooth management interface 1.15 initialized\n
Run Code Online (Sandbox Code Playgroud)\n我不知道发生了什么,会不会是硬件故障?我的 grub 中只有一个 Fedora 32 内核。我最近有时会遇到笔记本电脑发出奇怪噪音的问题,可能是 CPU 风扇的问题。
\n编辑:
\n我无法找到任何解决方案,因此我从 GitHub 克隆了 Linux 存储库的镜像,似乎出现错误 -2,因为找不到文件或目录:
\n #define ENOENT 2 /* No such file or directory */\n
Run Code Online (Sandbox Code Playgroud)\n编辑:
\n我刚刚启动了 Xubuntu 20.04 的 Live DVD,并且蓝牙可以正常工作,我正在向 Fedora 报告该错误。
\n这是我的发现和我所做的步骤,我已向Fedora 错误跟踪器报告了该问题,他们建议删除并添加内核模块:
# modprobe -r btusb
# modprobe btusb
Run Code Online (Sandbox Code Playgroud)
它有点工作,dmesg 中的错误消失了,蓝牙指示器消失了(不知道如何重新启动它),但我能够使用bluetoothctl
,我能够扫描设备,但配对不起作用。我的 GNU/Linux 系统尝试连接,但随后因错误而断开连接:
连接失败:org.bluez.Error.Failed
经过一番挣扎,我解决了这个问题。在 bluez 中启用调试日志后,它显示此错误:
连接错误:权限被拒绝 (13)
所以解决方案是删除并再次配对设备:
$ bluetoothctl
[bluetooth]# devices
...
Device 04:FE:A1:57:6D:F3 JBL Flip 4
[bluetooth]# remove 04:FE:A1:57:6D:F3
[bluetooth]# scan on
[bluetooth]# pair 04:FE:A1:57:6D:F3
[bluetooth]# connect 04:FE:A1:57:6D:F3
Run Code Online (Sandbox Code Playgroud)
注意: 这只是 Fedora 中修复 bug 之前的解决方法。这也不是永久解决方案,修复后可能会再次发生。
注意2:我多次遇到这个问题,也许这是内核中的一个错误,第二次之后我不需要在bluetoothctl中删除设备。删除和添加内核模块就足够了。