蓝牙BlueZ验证使用记录

news2024/9/9 1:09:47

最近使用的一款AICSemi AIC8800D8芯片做的WiFi+BT二合一模组,该模组WiFi使用SDIO通信,BT使用UART通信,供应商丢了一份驱动,包含了三个目录:aic8800_bsp、aic8800_fdrv和aic8800_btlpm,而蓝牙部分提供了lbh_server和lbh_client两个程序(未提供源码)。

首先,需要至少加载aic8800_bsp和aic8800_fdrv两份源码编译出来的KO文件(采用动态识别USB、SDIO、PCIE总线上的设备PID和VID来匹配加载KO),先加载bsp后加载fdrv,然后WiFi就能使用,而BT依赖这,这加载起来后,就可以通过UART操作BT了,使用lbh_server和lbh_client可以跑BLE模式下的GATT Server和Client,是可以让手机nRF Connect应用搜索并连接上的。(默认设备名字为BLE_SMARTCONFIG_TEST_CASE,广播设备名字为nooie-000b-01d)

但BLE不满足我们需求,我们还是想运行经典蓝牙模式,于是想到了BlueZ(板卡使用Buildroot构建文件系统,很轻松就可以使用其工具)的hciattach工具,验证后果然可以,下面是相应的使用过程:

hciattach -s 1500000 /dev/ttyS3 any 1500000 noflow nosleep

hciconfig set name AIC_BTTEST
hciconfig set class 0x100
hciconfig hci0 down
hciconfig hci0 up

bluetoothctl power on
bluetoothctl pairable on
bluetoothctl discoverable on
bluetoothctl agent on
bluetoothctl default-agent

至此,蓝牙设备就可以被搜索到了(手机等发起配对连接时,需要进入bluetoothctl交互窗口按提示操作即可,我们只想用obex来接收文件,故上面执行后就能满足,如果不想进入bluetoothctl交互窗口来操作配对连接,也可以通过bt-agent -c NoInputNoOutput命令设置配对连接验证方式)。接下来就在板端做如下操作就可以接收Android手机通过蓝牙发过来的文件:

将bluez5_utils/obex-dbus.conf文件复制到板端/etc/dbus-1/system.d/目录下,或者编译时将其编译到根文件系统,可以修改buildroot/package/bluez5_utils/bluez5_utils.mk文件,在相应位置添加如下语句:

$(INSTALL) -D -m 0644 -D package/bluez5_utils/obex-dbus.conf $(TARGET_DIR)/etc/dbus-1/system.d/

接下来在板端执行如下命令:

export DBUS_SESSION_BUS_ADDRESS="unix:path=/var/run/dbus/system_bus_socket"
/usr/libexec/bluetooth/obexd -r /userdata -n -a

就这样就能满足蓝牙广播并启用obexd服务,接收手机等设备发过来的文件。(注意启动obexd时有可能导致广播被关闭了,需要使用如下命令再开启广播:

bluetoothctl discoverable on

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

http协议与nginx

动态页面与静态页面的差别: (1)URL不同 静态⻚⾯链接⾥没有“?” 动态⻚⾯链接⾥包含“?” (2)后缀不同 (开发语⾔不同) 静态⻚⾯⼀般以 .html .htm .xml 为后缀 动态⻚⾯⼀般以 .php .jsp .py等为后…

我国工业大模型发展中的四个反差现象

以大模型为代表的新一代人工智能技术正加速推进新型工业化的变革进程。2024年1月,国务院常务会议研究部署推动人工智能赋能新型工业化有关工作,强调以人工智能和制造业深度融合为主线,以智能制造为主攻方向,以场景应用为牵引&…

【Git从入门到精通】——知识概述及Git安装

🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL&#xff0…

Google Test的使用

Google Test支持的操作系统包含下面这些: 1、Linux 2、Mac OS X 3、Windows 4、Cygwin 5、MinGW 6、Windows Mobile 7、Symbian一、google test的基本使用步骤 1、包含gtest/gtest.h头文件 2、使用TEST()宏定义测试case 3、在测试体中使用gooletest断言进行值检查…

Java从入门到精通(十四) ~ 多线程

晚上好,愿这深深的夜色给你带来安宁,让温馨的夜晚抚平你一天的疲惫,美好的梦想在这个寂静的夜晚悄悄成长。 目录 前言 一、多线程是什么? Java中的多线程 二、使用步骤 1.创建方式 1.1 Thread 线程 1.2 Runnable 任务 1.…

视创云展:重塑线上会议体验,六大核心引领数字空间新纪元

视创云展以其革命性的“数字活动”解决方案为核心,精心构建了一个超越想象的未来数字世界。通过整合六大前沿技术模块,它不仅为参会者打造了一个身临其境的线上会议环境,更让每一位参与者都能跨越物理界限,深刻感受会议的每一个瞬…

2024经济师考试报名『注册流程』图解!

⏰报名时间:8月12日—9月11日 ☑️报名注册流程 1、经济师考试报名注册网站:中国人事考试网. 2、点击考生登录栏目中的【新用户注册】按钮,进行注册。 3、进入用户注册界面,填写注册信息。 4、填写完毕确认无误后点击【提交】&…

CMS61850客户端

近一年都比较忙,很久没有更新文档了。这次抽了点时间,把CMS61850的客户端再补上。方便大家进一步的学习。当然61850相关的文档已经写的快吐了。不出意外,这应该是最后一篇关于61850的文章了。 本次提供的demo,可直接在windows上运…

【React】WeChat微信网站应用登录之wxLogin.js

以下基于wxLogin.js在React应用中使用案例 实验环境 antd:^5.14.1next:14.1.0react:^18 组件调用示例 "use client";import { useEffect, useState } from "react"; import { WechatChannel } from "./channel&qu…

【论文阅读笔记】DeepCAD: A Deep Generative Network for Computer-Aided Design Models

1 引言 现有3D生成模型: 3D点云:大量离散的3D点组成的数据表示形式; 多边形网格:一系列相连的多边形组成的3D模型; 水平集场:使用数值函数来表示物体的边界,并根据函数值的正负来确定物体内部…

示波器显示屏5个名词解释(峰峰值、平均值、频率、占空率、上升时间)

一般在使用示波器时,需要找到示波器测量的一些数据,包括峰峰值、频率等,但所显示出的所有名词可能不是很能理解,小编今天就具体介绍一下。下图是一般我们调节过后的示波器显示屏的数据显示: 1、峰-峰值 (Pe…

Clickhouse 生产集群部署(Centos 环境)

文章目录 机器环境配置安装 JDK 8安装 zookeeperClickhouse 集群安装rpm 包离线安装修改全局配置zookeeper配置Shard和Replica设置image.png添加macros配置启动 clickhouse启动 10.82.46.135 clickhouse server启动 10.82.46.163 clickhouse server启动 10.82.46.218 clickhous…

Python中的类型注解和静态类型检查使用详解

概要 Python作为一种动态类型语言,其灵活性和易用性使其广受欢迎。然而,动态类型也带来了一些问题,如代码可读性差和运行时错误等。为了提高代码质量和可维护性,Python从3.5版本开始引入了类型注解(Type Hints),并且借助第三方工具可以实现静态类型检查。本文将详细介绍…

熊猫乳品再创新高:超高温灭菌稀奶油,驱动餐饮品质升级

随着餐饮行业的蓬勃发展,乳制品在餐饮端的应用日益广泛且需求多样化。中华老字号品牌企业熊猫乳品,在近期推出了专为餐饮定制的高品质产品-熊猫乳品超高温灭菌稀奶油,凭借其卓越性能,在多项测试中脱颖而出,成为餐饮制作…

Docker入门指南:基础命令、操作容器与镜像管理,附存储、网络及Compose应用

Docker命令 下载镜像 命令命令示例docker search 镜像名检索镜像docker search nginxdocker pull 镜像名下载镜像docker pull nginxdocker images / docker image ls查看镜像列表/docker rmi 镜像名/IMAGE ID删除指定镜像docker rmi nginx / docker rmi e784f4560448 镜像名&…

【计算机网络】TCP和UDP的封装以及案例

TCP和UDP的封装以及案例 背景知识TCP实现UDP实现封装Network用NetWork再次实现TCP和UDP小知识点 背景知识 TCP:传输控制协议(Transmission Control Protocol) UDP:用户数据报协议 (User Datagram Protocol&#xff09…

二叉树--堆(上卷)

二叉树–堆(上卷) 树 树的概念与结构 树是⼀种⾮线性的数据结构,它是由 n(n>0) 个有限结点组成⼀个具有层次关系的集合。把它叫做 树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽…

重新定义高性能轻薄本!华硕灵耀16 Air评测:锐龙AI 9 HX 370当今最优秀移动处理器...

一、前言:制程工艺不变 IPC性能暴涨20%的Zen 5架构 这十年来AMD的CPU给我们带来了一次又一次的惊喜! 今天上市AI PC所搭载的锐龙AI 300系列处理器,与上代的锐龙8000系列移动处理器一样,都是采用了台积电4nm先进工艺。 但如标题所言…

什么是杀猪盘?

GPT-4o (OpenAI) "杀猪盘"是一种常见的网络诈骗形式,也被称为“爱情投资诈骗”或“婚恋诈骗”。这种骗局通常有以下几个关键步骤: 1. **接触和交流**:诈骗者在交友平台或社交媒体上创建虚假的个人资料,吸引受害者&…

Sentinel 核心概念和工作流程详解

前言: 上一篇文章中,我们对 Sentinel 有了基本认知,知道其是 Alibaba 开源的一个服务稳定性组件,我们从 Sentinel 控制台认识了 Sentinel 的流控、降级、热点、授权规则,本篇我们将从核心概念和工作流程方面继续分析 …