首先安装BlueZ协议栈并启动服务,然后加载蓝牙内核模块、检测硬件适配器,接着配置用户权限与组,再通过bluetoothctl完成设备扫描与配对,最后安装OBEXFTP工具并使用正确通道号实现蓝牙文件传输。

如果您在使用CentOS Stream 8系统时发现蓝牙设备无法识别或传输文件功能受限,可能是由于缺少必要的蓝牙协议栈支持或相关工具未安装。以下是启用BlueZ蓝牙协议栈及OBEXFTP文件传输功能的具体步骤:
一、安装BlueZ蓝牙协议栈
BlueZ是Linux官方的蓝牙协议栈,提供对蓝牙核心功能的支持,包括设备发现、配对和连接管理。
1、更新系统软件包列表以确保获取最新的依赖信息:sudo dnf update -y。
2、安装BlueZ主程序及相关依赖组件:sudo dnf install bluez bluez-tools -y。
3、启动并启用蓝牙服务,使其随系统启动自动运行:sudo systemctl enable bluetooth --now。
4、检查服务状态确认其正常运行:sudo systemctl status bluetooth,若显示active (running),则表示服务已就绪。
二、加载蓝牙内核模块与硬件检测
确保系统正确识别蓝牙适配器并加载相应的内核驱动模块是实现功能的前提。
1、使用命令 lsmod | grep bt 查看是否已加载蓝牙相关模块,如btusb、bluetooth等。
2、若未加载,手动插入USB蓝牙驱动模块:sudo modprobe btusb。
3、运行 hciconfig -a 命令查看是否存在hci0接口,若有输出且包含BD Address,则表明硬件已被识别。
4、如果无任何适配器显示,尝试使用 lspci | grep -i bluetooth 或 lsusb 检查硬件是否存在。
三、配置蓝牙权限与用户组
为避免普通用户执行蓝牙操作时出现权限不足问题,需将用户加入特定系统组。
1、创建或确认wheel组存在,并添加当前用户到该组:sudo usermod -aG wheel $USER。
2、部分系统中蓝牙访问受dbus策略控制,需确保用户属于 lp 或 dialout 组,可执行:sudo usermod -aG dialout $USER。
3、重新登录使组变更生效,或使用 newgrp wheel 切换当前会话组。
四、启用蓝牙设备扫描与配对功能
通过命令行工具验证蓝牙通信能力,并完成外部设备的发现与绑定。
1、打开交互式蓝牙控制工具:bluetoothctl。
2、在提示符下依次输入以下命令: power on —— 启用控制器; agent on —— 启动默认代理; default-agent —— 设置为主代理; scan on —— 开始扫描周边设备。
3、等待目标设备MAC地址出现后,执行 pair XX:XX:XX:XX:XX:XX 进行配对。
4、配对成功后使用 trust XX:XX:XX:XX:XX:XX 标记为可信设备,便于后续自动连接。
五、安装并配置OBEXFTP实现文件传输
OBEXFTP用于通过蓝牙协议发送和接收文件,尤其适用于与手机等移动设备交换数据。
1、安装OBEXFTP客户端工具:sudo dnf install obexftp obexfs -y。
2、确认目标设备已开启OBEX对象推送功能,并处于可被发现状态。
3、使用命令 obexftp --bluetooth --device=XX:XX:XX:XX:XX:XX --channel=10 --put /path/to/file.txt 向设备发送文件。
4、若需列出远程设备上的文件,可运行:obexftp --bluetooth --device=XX:XX:XX:XX:XX:XX --channel=10 --get /remote/path/。
5、通道号(channel)可能因设备而异,可通过 sdptool browse XX:XX:XX:XX:XX:XX | grep -i obex 查询实际服务通道。











