蓝牙状态错误 - Raspberry Pi - “无法设置隐私:被拒绝(0x0b)”

问题描述 投票:0回答:1

我正处于在我的 Raspberry Pi 4 上进行一些蓝牙网状网络工作的早期阶段。

根据说明,我发现需要重建内核才能启用 Mesh 所需的加密 API。

我开始

pi@pi-4:~ $ uname -a
Linux pi-4 5.10.63-v7l+ #1459 SMP Wed Oct 6 16:41:57 BST 2021 armv7l GNU/Linux
pi@pi-4:~ $ bluetoothd -v
5.55

并使用重建内核

git clone --depth=1 https://github.com/raspberrypi/linux
cd linux

KERNEL=kernel7l
make bcm2711_defconfig
vi .config # to customize the local name of the kernel build
make menuconfig

值得注意的是,我看到了关于设置内核选项的不同文档,所以我选择了选项的超集。通过 vi 和 UI 的组合进行设置。最终的编辑是

CONFIG_EXPERT=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_NET=y
CONFIG_BT=y
CONFIG_BT_RFCOMM=y
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=y
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=y
CONFIG_RFKILL=y
CONFIG_CRYPTO_USER=y
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y
CONFIG_KEY_DH_OPERATIONS=y
CONFIG_CRYPTO_USER_API_AEAD=y
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_CMAC=y

我还编辑了 statup 命令行选项以关闭 SAP 插件以摆脱启动错误。

KERNEL=kernel7l
make -j4 zImage modules dtbs
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img

pi@pi-4-x:~/ell-0.9/linux $ sudo reboot now
Connection to pi-4-x closed by remote host.
Connection to pi-4-x closed.
.
. reconnect
.

pi@pi-4:~ $ uname -a
Linux pi-4 5.10.90-v7l-With-BlueZ-Crypto+ #2 SMP Fri Jan 14 16:00:58 EST 2022 armv7l GNU/Linux

现在我查看状态的时候看到这个错误。当使用发行版 (5.55) 附带的 BlueZ 和从源代码 (5.63) 重建时,此错误是相同的。

有什么想法吗?

设置隐私失败:拒绝(0x0b)

pi@pi-4:~/linux $ sudo service bluetooth status
● bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-01-18 11:32:44 EST; 11min ago
       Docs: man:bluetoothd(8)
   Main PID: 1726 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 3715)
        CPU: 59ms
     CGroup: /system.slice/bluetooth.service
             └─1726 /usr/libexec/bluetooth/bluetoothd --noplugin=sap

Jan 18 11:32:44 pi-4 systemd[1]: Starting Bluetooth service...
Jan 18 11:32:44 pi-4 bluetoothd[1726]: Bluetooth daemon 5.55
Jan 18 11:32:44 pi-4 systemd[1]: Started Bluetooth service.
Jan 18 11:32:44 pi-4 bluetoothd[1726]: Starting SDP server
Jan 18 11:32:44 pi-4 bluetoothd[1726]: Excluding (cli) sap
Jan 18 11:32:44 pi-4 bluetoothd[1726]: Bluetooth management interface 1.18 initialized
Jan 18 11:32:44 pi-4 bluetoothd[1726]: Failed to set privacy: Rejected (0x0b)
Jan 18 11:32:44 pi-4 bluetoothd[1726]: Endpoint registered: sender=:1.21 path=/MediaEndpoint/A2DPSink/sbc
Jan 18 11:32:44 pi-4 bluetoothd[1726]: Endpoint registered: sender=:1.21 path=/MediaEndpoint/A2DPSource/sbc
bluetooth raspberry-pi bluez bluetooth-mesh
1个回答
0
投票

这看起来是由服务启动中的时间问题引起的,帮助服务中的两秒延迟可以解决问题(归功于上面@ukBaz 提供的链接)。对我有用的解决方案是:

  1. 使用以下示例命令编辑文件 bthelper 服务配置文件:
sudo nano /lib/systemd/system/[email protected]
  1. 编辑文件的 Service 部分以匹配以下示例:
 [Service]
 Type=simple
 ExecStartPre=/bin/sleep 2
 ExecStart=/usr/bin/bthelper %I

编辑:

或者,如果上述方法不能解决问题,您始终可以通过命令行手动控制序列:

sudo systemctl start sys-subsystem-bluetooth-devices-hci0.device
sudo hciconfig hci0 down
sudo systemctl start bluetooth
service bluetooth status
© www.soinside.com 2019 - 2024. All rights reserved.