You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Ubuntu 22.04.4蓝牙开机未实际扫描设备却显示‘disconnected’的配置咨询

Ubuntu 22.04.4蓝牙开机未实际扫描设备却显示‘disconnected’的配置咨询

你观察得很准确——Ubuntu 22.04.4确实会通过蓝牙配对数据库记录曾经连接过的设备状态,而不是每次开机都主动扫描所有蓝牙设备,这就是为什么未开机的配对设备会显示“disconnected”的原因。针对这个情况,你可以尝试以下几种配置调整来改变这个行为:

  • 调整蓝牙服务的启动扫描设置

    • 编辑蓝牙核心配置文件:sudo nano /etc/bluetooth/main.conf
    • 找到AutoEnable选项,确保它被设置为true(如果文件里没有这个选项,直接添加一行AutoEnable = true即可),这个配置会让蓝牙服务在启动时自动开启扫描功能。
    • 若需要设备保持可被发现状态,还可以添加DiscoverableTimeout = 0(根据自身需求选择,非强制配置)
    • 修改完成后保存文件,重启蓝牙服务使配置生效:sudo systemctl restart bluetooth
  • 禁用蓝牙设备的持久化记录(不推荐,仅适用于不需要保留配对历史的场景)

    • 删除系统存储的蓝牙配对数据库:rm -rf /var/lib/bluetooth/*
    • 重启蓝牙服务:sudo systemctl restart bluetooth,之后系统会重新扫描并仅记录新配对的设备状态。
  • 配置开机自动触发蓝牙扫描

    • 创建一个开机扫描脚本:sudo nano /usr/local/bin/bluetooth-scan-on-boot.sh
    • 在脚本中写入以下内容:
      #!/bin/bash
      # 延迟10秒等待蓝牙服务完全启动
      sleep 10
      # 开启蓝牙扫描
      bluetoothctl scan on
      # 持续扫描5秒后关闭
      sleep 5
      bluetoothctl scan off
      
    • 给脚本赋予执行权限:sudo chmod +x /usr/local/bin/bluetooth-scan-on-boot.sh
    • 创建systemd服务文件来管理这个开机脚本:sudo nano /etc/systemd/system/bluetooth-scan.service
    • 写入以下服务配置:
      [Unit]
      Description=Trigger Bluetooth scan on system boot
      After=bluetooth.service
      
      [Service]
      ExecStart=/usr/local/bin/bluetooth-scan-on-boot.sh
      Type=oneshot
      
      [Install]
      WantedBy=multi-user.target
      
    • 启用这个服务,确保开机自动执行:sudo systemctl enable bluetooth-scan.service

需要注意的是,系统默认保留配对设备状态是为了优化重连速度,让曾经配对过的设备能更快地重新连接。如果你只是临时需要查看当前可用的蓝牙设备,也可以直接在蓝牙设置界面点击“刷新”按钮手动触发扫描。

备注:内容来源于stack exchange,提问作者Salvatore Terress

火山引擎 最新活动