我有一个 TP-Link UB500 蓝牙 5 适配器,在我的 Linux Mint 机器上与无线键盘和鼠标一起使用。该适配器使用RTL8761芯片。
在最近更新 Linux mint 版本更新后,我发现与鼠标和键盘的连接会频繁断开,通常每隔几分钟断开一次。
我通过安装以前版本的固件成功解决了该问题https://cdn.kernel.org/pub/linux/kernel/firmware/
。
我想报告这个问题,但是我可以在哪里报告呢?
我有一个 TP-Link UB500 蓝牙 5 适配器,在我的 Linux Mint 机器上与无线键盘和鼠标一起使用。该适配器使用RTL8761芯片。
在最近更新 Linux mint 版本更新后,我发现与鼠标和键盘的连接会频繁断开,通常每隔几分钟断开一次。
我通过安装以前版本的固件成功解决了该问题https://cdn.kernel.org/pub/linux/kernel/firmware/
。
我想报告这个问题,但是我可以在哪里报告呢?
我正在尝试连接蓝牙耳机,bluetoothctl
但没有成功。这是日志:
从bluetoothctl
:
[bluetooth]# connect 6C:D3:EE:E2:D2:D7
Attempting to connect to 6C:D3:EE:E2:D2:D7
[CHG] Device 6C:D3:EE:E2:D2:D7 Connected: yes
Connection successful
[CHG] Device 6C:D3:EE:E2:D2:D7 Connected: no
从journalctl -p3 -e
:
...
<datetime> nixos kernel: Bluetooth: hci0: FW download error recovery failed (-19)
...
我在 NixOS 上使用 bluez 1.70 不稳定。我尝试过多次重启,但没有帮助。我该如何解决这个问题?
很多在线建议建议我添加该行
ControllerMode=bredr
在我的/etc/bluetooth/main.conf
。这个值有什么作用,目前看起来默认是dual
. 更改此值如何更改我的蓝牙代理的行为?“bredr”是什么意思?
# Restricts all controllers to the specified transport. Default value
# is "dual", i.e. both BR/EDR and LE enabled (when supported by the HW).
# Possible values: "dual", "bredr", "le"
#ControllerMode = dual
虽然我认为这不相关,但我得到的错误是我在此处报告的错误
连接失败:org.bluez.Error.Failed br-connection-profile-unavailable
我尝试通过蓝牙将我的演讲连接到我的笔记本电脑,当我连接到它时,笔记本电脑给出了消息“ACTION II 的设置失败”。我做了一些搜索,安装了非免费存储库,但它仍然无法正常工作。最终我找到了这篇文章,并决定看看我的电脑会做出什么反应。我执行systemctl status bluetooth.service
导致:
● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-06-07 20:19:30 CEST; 20min ago
Docs: man:bluetoothd(8)
Main PID: 686 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 18984)
Memory: 6.7M
CPU: 105ms
CGroup: /system.slice/bluetooth.service
└─686 /usr/libexec/bluetooth/bluetoothd
Jun 07 20:19:30 debian bluetoothd[686]: profiles/sap/server.c:sap_server_register() Sap driver initialization failed.
Jun 07 20:19:30 debian bluetoothd[686]: sap-server: Operation not permitted (1)
Jun 07 20:20:40 debian bluetoothd[686]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for 54:B7:E5:6D:D3:68: Protocol not available
Jun 07 20:20:40 debian bluetoothd[686]: src/service.c:btd_service_connect() a2dp-source profile connect failed for 54:B7:E5:6D:D3:68: Protocol not available
Jun 07 20:21:22 debian bluetoothd[686]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for 54:B7:E5:6D:D3:68: Protocol not available
Jun 07 20:21:22 debian bluetoothd[686]: src/service.c:btd_service_connect() a2dp-source profile connect failed for 54:B7:E5:6D:D3:68: Protocol not available
Jun 07 20:21:24 debian bluetoothd[686]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for 54:B7:E5:6D:D3:68: Protocol not available
Jun 07 20:21:24 debian bluetoothd[686]: src/service.c:btd_service_connect() a2dp-source profile connect failed for 54:B7:E5:6D:D3:68: Protocol not available
Jun 07 20:21:28 debian bluetoothd[686]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for 54:B7:E5:6D:D3:68: Protocol not available
Jun 07 20:21:28 debian bluetoothd[686]: src/service.c:btd_service_connect() a2dp-source profile connect failed for 54:B7:E5:6D:D3:68: Protocol not available
我真的无法找到 sap 驱动程序是什么或如何安装它,我对 linux 还很陌生,所以我害怕如果我下载错误的东西会烧毁房子哈哈。感谢帮助!
昨天我的蓝牙工作正常,但是当我用 更新所有软件包时yay
,我的蓝牙无法连接。今天,我跑了:
sudo pacman -Syu
yay -Syu
现在我的蓝牙无法连接。
当我打开bluetoothctl
时,它给了我No default controller available
。
另外,您能否向我解释一下您希望我运行的所有命令,因为我对 Arch Linux 或 Linux 操作系统不太了解?感谢任何试图帮助我的人!:)
我跑了:
sudo systemctl enable bluetooth
sudo systemctl start bluetooth
sudo systemctl status bluetooth
给我:
● bluetooth.service - Bluetooth service
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disable>
Active: active (running) since Thu 2022-04-21 03:49:22 PDT; 1 day 7h ago
Docs: man:bluetoothd(8)
Main PID: 15162 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 13909)
Memory: 852.0K
CPU: 28ms
CGroup: /system.slice/bluetooth.service
└─15162 /usr/lib/bluetooth/bluetoothd --compat
Apr 21 03:49:22 hashem-damrah systemd[1]: Starting Bluetooth service...
Apr 21 03:49:22 hashem-damrah bluetoothd[15162]: Bluetooth daemon 5.64
Apr 21 03:49:22 hashem-damrah systemd[1]: Started Bluetooth service.
Apr 21 03:49:22 hashem-damrah bluetoothd[15162]: Starting SDP server
Apr 21 03:49:22 hashem-damrah bluetoothd[15162]: Bluetooth management interface 1.21 initialized
Apr 22 11:08:58 hashem-damrah systemd[1]: bluetooth.service: Current command vanished from the >
这是输出rfkill list
:
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
这是输出sudo lsusb
:
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 05c8:03d2 Cheng Uei Precision Industry Co., Ltd (Foxlink) HP TrueVision HD Camera
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
这是输出sudo lsmod | grep blue
:
bluetooth 856064 11 btrtl,btmtk,btintel,btbcm,bnep
ecdh_generic 16384 1 bluetooth
rfkill 32768 6 hp_wmi,bluetooth,cfg80211
crc16 16384 2 bluetooth,ext4
我使用 UE MEGABOOM 蓝牙音箱和三种设备:
大多数情况下,我将扬声器与媒体中心一起使用,有时在旅行时与笔记本电脑一起使用,很少与手机一起使用。
不久前,我开始注意到,每当我将扬声器插回充电器时(并且仅在那时),它就会失去连接。这开始突然发生,并且每次都可以在媒体中心重现。仅当我将扬声器插入充电器时才会出现 - 如果我在连接时将其从充电器中拔出,则不会发生任何事情。
在某些时候,我试图用笔记本电脑重现它,但是当我插入它时,扬声器仍然保持连接。然而,最近,我注意到当我插入扬声器时,笔记本电脑的连接也下降了。我还没有在手机上做任何彻底的测试。
我不使用 UE 为扬声器提供的应用程序(我在刻录机设备上安装过一次以进行基本配置,然后再也没有使用过)。
关于什么可能导致这种行为的理论:
有没有人遇到过类似的问题,和/或可以帮助我更多地了解这个问题?
我有一个 Lenovo Duet 3 蓝牙键盘,它在物理连接(它有 5 个针脚)到笔记本电脑时工作正常,当我将它连接到我的 Android 手机时也能正常工作。
但是,我无法让它在(Arch)Linux 下工作。内核和蓝牙堆栈(bluez-libs 等)是最新的,所以我使用bluetoothctl
(为清楚起见,输出缩写)连接设备:
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# scan on
Discovery started
[NEW] Device D6:45:02:72:41:4F Duet 3 BT
[bluetooth]# pair D6:45:02:72:41:4F
Attempting to pair with D6:45:02:72:41:4F
[CHG] Device D6:45:02:72:41:4F Connected: yes
[CHG] Device D6:45:02:72:41:4F ServicesResolved: yes
[CHG] Device D6:45:02:72:41:4F Paired: yes
[NEW] Primary Service (Handle 0x0000)
/org/bluez/hci0/dev_D6_45_02_72_41_4F/service000a
00001801-0000-1000-8000-00805f9b34fb
Generic Attribute Profile
... {more new services follow, e.g. for Dev. Information, Battery etc.}
Pairing successful
[Duet 3 BT]# trust D6:45:02:72:41:4F
Changing D6:45:02:72:41:4F trust succeeded
[Duet 3 BT]# connect D6:45:02:72:41:4F
Attempting to connect to D6:45:02:72:41:4F
Connection successful
[Lenovo Duet 3 BT Folio]#
设备保持连接状态,我可以看到电池信息。到目前为止,一切都很好,但是输入任何内容或使用触控板绝对没有任何作用,因此它作为输入设备毫无用处。
我在使用内核 5.15.28-1 的 Manjaro
我的问题与蓝牙有关。我有 bluez 5.61-1(我从 5.63-2 降级)。
我可以使用 systemctl 激活蓝牙,但不能从我编写的 systemd 服务激活:
#/etc/systemd/system/bt-restart.service
[Unit]
Description=restart bt and connect keypad
[Service]
Type=oneshot
User=root
RemainAfterExit=yes
ExecStart=/usr/bin/sleep 1
ExecStart=-/usr/lib/systemd/system/bluetooth
ExecStart=/usr/bin/sleep 3
ExecStart=/home/jcw/bin/enable-bt.sh
[Install]
WantedBy=multi-user.target
输出自
sudo systemctl status bt-restart
● bt-restart.service - restart bt and connect keypad
Loaded: loaded (/etc/systemd/system/bt-restart.service; enabled; vendor preset: disabled)
Active: active (exited) since Sat 2022-03-19 09:00:35 CET; 1h 27min ago
Process: 2762 ExecStart=/usr/bin/sleep 1 (code=exited, status=0/SUCCESS)
Process: 2763 ExecStart=/usr/lib/systemd/system/bluetooth (code=exited, status=0/SUCCESS)
Process: 2764 ExecStart=/usr/bin/sleep 3 (code=exited, status=0/SUCCESS)
Process: 2766 ExecStart=/home/jcw/bin/enable-bt.sh (code=exited, status=0/SUCCESS)
Main PID: 2766 (code=exited, status=0/SUCCESS)
CPU: 41ms
mars 19 08:59:50 jcw-k30amjafk31amj systemd[1]: Starting restart bt and connect keypad...
mars 19 08:59:51 jcw-k30amjafk31amj systemd[2763]: bt-restart.service: Executable /usr/lib/systemd/system/bluetooth missing,>
mars 19 09:00:35 jcw-k30amjafk31amj enable-bt.sh[2767]: Attempting to connect to 2B:24:13:DB:7C:99
mars 19 09:00:35 jcw-k30amjafk31amj enable-bt.sh[2767]: Failed to connect: org.bluez.Error.Failed
mars 19 09:00:35 jcw-k30amjafk31amj systemd[1]: Finished restart bt and connect keypad.
从Executable /usr/lib/systemd/system/bluetooth missing可以看出,systemd 没有找到 bluetooth.service。
但该文件存在。可以通过 systemctl 访问。所以呢?
编辑:第二行的结尾是“缺少可执行文件/usr/lib/systemd/system/bluetooth,跳过:没有这样的文件或目录”
根据 Bluez API 文档(设备 API),该Connect()
方法的返回表示一个或多个配置文件的成功连接:
无效连接()
(跳过)
如果成功连接了至少一个配置文件,则此方法将指示成功。
同时还有一个Connected
属性,描述为:
布尔连接 [只读]
指示远程设备当前是否已连接。PropertiesChanged 信号指示此状态的更改。
在实践中,方法的返回和通知属性设置Connect()
的信号的到达似乎相隔几秒钟。PropertiesChanged
Connected
true
运行 bluetoothctl 时:
[bluetooth]# connect XX:XX:XX:XX:XX:XX
Attempting to connect to XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
Connection successful
在 D-Bus 上捕获了以下消息:
方法调用时间=1646854334.904791 发件人=:1.521 -> 目的地=org.bluez 串行=50 路径=/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX;接口=org.bluez.Device1;成员=连接 信号时间=1646854336.902736 发件人=:1.128 -> 目的地=(空目的地)串行=10521 路径=/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX;接口=org.freedesktop.DBus.Properties;成员=属性已更改 字符串“org.bluez.Device1” 大批 [ 字典条目( 字符串“已连接” 变体布尔真 ) ] 大批 [ ] 方法返回时间=1646854339.349113 发件人=:1.128 -> 目的地=:1.521 串行=10522 回复串行=50
这告诉我们:
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
时,屏幕上会出现。Connected
true
time=1646854336.902736
Connection successful
消息。Connect()
time=1646854339.349113
问题是这两个事件之间有什么区别,哪一个实际上表示蓝牙设备已连接?
(断开设备连接时,Disconnect()
方法返回和信号到达0.003
相隔数秒)。
环境:Linux内核:5.4-179
,Bluez:5.62-r3
,Systemd 249.9
:。
蓝牙在我的机器上就像一个魅力。但是,bluetoothctl
在发现中不显示设备名称。奇怪的是,在运行时bluetoothctl info <whatever-the-mac-adress-is>
,我得到了我正在使用的设备的名称。
是否有一些地方可以自定义 bluetoothctl,并使其在发现时显示设备名称?
更准确地说,我得到了这个结果:
[NEW] Device 04:69:F8:A8:72:A2 04-69-F8-A8-72-A2
[NEW] Device 5B:72:90:C2:09:16 5B-72-90-C2-09-16
并且info
仅显示我几个月前使用的设备的名称。我想这个错误与当前的内核或当前的 bluez 版本有关。
我在内核 5.16.10 和 bluetoothctl 5.63 上使用 Artix Linux(带有 Runit)。