Linux BlueZ 4.101允许GATT连接,但在Ubuntu上不显示GATT服务
我的目标是使用ubuntu 14.04上使用USB BLE加密狗(Cambridge Silicon Radio CSR8510 A10),使用Bluez 4.101(不是Bluez 5.x)通过USB BLE加密狗(Cambridge Silicon Radio csr8510 A10)暴露了GATT服务器. Bluez 4.101带有 gatt-example 插件的船舶已确认为他们确认作品.例如,帖子中的最后一个答案声称其有效:最终,我想在Bluez 4.101中实现自己的GATT服务器,类似于此文章: TW/2015/01/蓝牙 - 低能 - 燃烧 - gatt.html 我已经能够使用iPhone查看BLE广告并连接到BLE服务器,但是我看不到Bluez 4.101随附的GATT服务器示例的任何特征或服务.手机上的多个BLE扫描仪应用显示BLE服务器广告并允许连接,但他们都说此设备没有服务. 我已经设法完全删除了Ubuntu上的Bluez 4.101的包装管理器版本
2 2023-11-02
编程技术问答社区
我想在bluez上启用调试信息
我实际上是在尝试弄清DBG("")印刷品在我使用Bluez进行音乐流时将其转移到哪里.因此,基本上,我想知道所有Bluez调试消息都在哪里打印,无论是任何蓝牙操作.例如:扫描,查询,连接等. 希望有人可以帮助我. 预先感谢. 解决方案 我目前没有Ubuntu,但这是它在Fedora上工作的方式,我敢肯定它在Ubuntu上非常相似,尤其是SystemD-Part: 通过在 之后添加-d来启用调试 ExecStart=/usr/libexec/bluetooth/bluetoothd in /usr/lib/systemd/system/bluetooth.service 保存,然后: $ systemctl daemon-reload $ systemctl restart bluetooth 现在您在/var/log/syslog 中获取信息 其他解决方案 要添加到上面的DataFridge的答案中,我在Ubuntu 16.04中没有Bl
2 2023-11-01
编程技术问答社区
在linux命令行中使用蓝牙低能量
我正在使用Linux使用蓝牙低能调制解调器.我正在使用命令行选项,即hcitool.我能够使用命令来查找设备:$ hcitool scan 它对我来说很好,我也可以使用: 来广播我的设备 sudo hciconfig hci0 leadv 它也可以正常工作.但是我想将服务和特征添加到调制解调器设备中,该设备可以由其他设备检测到.我尝试过sdptool add,但对我不起作用.有人知道如何使用Ubuntu中的命令行工具将服务和特征添加到外围? 中 编辑:我的调制解调器正在广播,但无法探索其他BLE设备的服务和特征.现在,我能够使用hcio name command 设置设备的名称 编辑:现在我能够通过运行sudo hcidump命令来渲染服务和特征.但是我无法跟踪从何处获得这些服务和特征.一个确定的观察是这些服务正在从机器中渲染. 解决方案 SDP在BLE中不存在. 使用广播/广告框架和GATT客户端/服务器. 几个链接: blue> blue
4 2023-11-01
编程技术问答社区
如何使用Bluez5.50的BLE连接来加密数据
我正在研究一个涉及数据传输的C ++项目.我的系统由两个不同的设备组成,这些设备必须在可信的模式下交换敏感数据.为此,我下载并在我的Raspberry Pi上设置了最后一个Bluez库(v5.50). 是否有可能使用Bluez API启用数据加密? 搜索使用我发现不和谐意见的BLE加密机制的可能性.有人建议使用它,而另一些人则建议使用它,以支持应用程序级的加密利用,例如Cripto ++库. 哪个是最好的解决方案? 谢谢 解决方案 我的建议是始终加密连接.请参阅这个答案这说明了加密连接与开放连接的好处和重要性. 关于加密连接,您可以通过与设备配对来轻松执行此操作.在BLE中,配对允许加密连接数据包.使用Bluez,您可以使用bluetoothctl命令轻松地从命令行中执行此操作: - bluetoothctl [bluetoothctl] connect 00:11:22:33:44:55 [bluetoothctl] pair 00:11:2
20 2023-08-24
编程技术问答社区
我怎样才能在Linux上用bluez通过蓝牙4.0 LE连接到FitBit Zip?
我购买了Fitbit拉链.该设备使用蓝牙4.0 LE.我想至少通过Bluez连接到它.如果成功的话,我想看看我能找到多少协议. 我正在使用联想P500 IdeaPad,该IdeaPad已集成了对蓝牙4.0的支持.它似乎有效(一种) 当我这样做时: hcitool lescan 我能够找到该设备的蓝牙地址,该地址(尽管可能无关)是:CF:D9:24:DB:F4:7B 现在,我在另一个问题中读到: bluetoot :聆听Linux中的通知/指示我可以收听通知和其他协议功能.我已经与旧的蓝牙合作,但是我没有蓝牙LE的经验. 我被卡住了,试图使用hcitool lecc或gatttool连接到设备.连接时间已经出现,似乎在Linux盒子上留下了蓝牙状态不好的状态.我可以通过重新加载蓝牙相关的内核模块来解决此问题. 任何提示都将受到赞赏.我现在正在尝试最新的Bluez. 解决方案 请看一下 galileo project ,我们能够连接到跟踪器(并
4 2023-08-11
编程技术问答社区
Bluez 蓝牙ctl 扫描与 hcitool 扫描对比
我在Raspberry Pi(Buster and Stretch)上运行Bluez 5.50.我有一个BLE传感器设备,仅在按下传感器设备上的按钮时才广告数据.因此,广告是异步的,两者之间没有定期的广告(所有数据包都是唯一的,没有重复的).我对Bluez遇到了问题,尽管一旦收到数据包,Bluez似乎在接下来的11秒内没有从设备中报告任何其他数据包(偶尔的间隔很短).这是使用BluetoothCtl Line命令工具以及我自己的C ++应用程序(基于Bluez Client/Main.C示例).在两种情况下,在开始扫描之前,我都会清除扫描过滤器,将运输到LE并设置重复数据报告.相反,在运行HCITOOL扫描时,我会看到传感器中的所有数据包(它甚至在不同的广告频道上都报告了所有3个副本).因此,我的问题是,有没有办法通过DBUS API获取那些丢失的广告,可能还有一些其他设置?如果没有,HCI API是否可以从C ++使用,它应该解决问题吗?任何帮助,感谢! 根据亚历克斯的问题进行了
4 2023-07-28
编程技术问答社区
交换前的蓝兹配对
我正在使用但是,如果我不通过 bluetoothctl 在两个设备之间进行配对,我将无法使用客户端,因为它给了我错误: uh哦:无效的交换. 您能给我一些关于如何通过C代码制作这对的提示吗?我需要"自动"使用此方法,而无需在C代码之前通过 bluetoothctl 配对. 解决方案 在进入我的答案之前,我不确定如何使用" libbluetooth" API实现此目标.但是我以下答案是基于使用GDBU的DBU API.这很可能与最近的任何Bluez(带有蓝牙)运行一起工作. 注意,使用Bluez5,建议使用DBUS API. 简而言之,您需要开发一个代理,该代理在此处假设"确认"代理自动接受配对请求.请参阅代理人capabilitions 使用了最近的Bluez版本(至少5.47+),我们有一个新的API" ConnectDevice ",可用于无需扫描/发现即可连接设备.从您的问题中,我了解您正在尝试在两个RPI之间进行通信,因此您可以找到两个蓝牙控制器的
8 2023-07-28
编程技术问答社区
QBluetoothSocketPrivate::_q_readNotify() 14 错误
我编写了一个简单的应用程序,可以从我的PC(Linux,debian)访问智能手机的PBAP. 我看到了智能手机的所有服务,也可以连接(智能手机收到配对请求).但是几秒钟后,我得到以下错误: qt.bluetooth.bluez: void QBluetoothSocketPrivate::_q_readNotify() 14 error: -1 "Die Ressource ist zur Zeit nicht verfügbar" 有人知道如何修复它吗? 这是我调用的功能: void ServiceDiscoveryDialog::startClient(const QBluetoothServiceInfo &remoteService) { // Connect to service socket = new QBluetoothSocket(QBluetoothServiceInfo::Rf
8 2023-07-25
编程技术问答社区
Bluez无法永久连接到蓝牙LE遥控器,"功能未实现(38)"
我有一个新的克星图像: linux立体声5.10.17+#1414 apr 30 13:16:27 BST 2021 ARMV6L GNU/Linux 我确实将Bluez更新为bluez 5.52.有趣的是,我在/var/log/syslog中有以下条目: 6月30日23:15:09 Stereopida Bluetoothd [557]:蓝牙守护程序5.50 似乎表明先前安装的5.50版本仍在徘徊. 我在其他机器上进行了相同的设置,然后我可以让它起作用,但是这次似乎有问题. 现在使用BluetoothCtl,我可以看到我的设备并配对,但连接立即删除: [bluetooth]# trust 84:EB:18:0C:92:0F Changing 84:EB:18:0C:92:0F trust succeeded [bluetooth]# pair 84:EB:18:0C:92:0F Attempting to pair with 84:EB:1
174 2023-07-25
编程技术问答社区
Raspbian上的蓝牙LE
我从源安装了Bluez-5.15,并具有以下配置: $ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc \ --localstatedir=/var --libexecdir=/lib --disable-systemd 然后我必须手动将Gatttool手动复制到/usr/local/bin dir $ sudo cp attrib/gatttool /usr/local/bin/ 我重新启动了Raspberry Pi并尝试了以下连接到我的BLE设备: $ sudo hciconfig hci0 up $ sudo hcitool lescan LE Scan ... EA:FB:B5:CE:B0:13 DfuTarg $ sudo hcitool lewladd EA:FB:B5:CE:B0:13 $ sudo hcitool lecc EA:FB:B5:CE:B
10 2023-07-25
编程技术问答社区
BlueZ BLE Ecrypted Characteristic Read在粘合和连接后失败。
我将Raspberry Pi用作BLE的外围和NRF Connect工具作为BLE客户端.在Raspberry pi中,我正在运行简单的代理测试程序 ez.git/tree/test/示例 - 广告" rel =" nofollow noreferrer">广告程序和 从NRF连接工具i,首先将设备粘合并连接了设备.我已经为该过程附加了DBU日志. 在结合时,日志显示以下 signal time=1595076323.849939 sender=:1.15 -> destination=(null destination) serial=863 path=/org/bluez/hci0/dev_04_C8_07_BC_23_7A; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged string "org.bluez.Device1" array [ dict e
8 2023-07-25
编程技术问答社区
如何设置Bluez 5在配对过程中询问pin码
我使用QDBUS实现了org.bluez.agent1接口,我想设置固定的PIN(我将提供给用户),以便对所有配对请求进行身份验证,并在PIN错误时拒绝它们.代理功能应为" NoinputNoOutput",因为该项目将部署在无键盘或显示的RaspberryPi 3上.有没有办法处理这个?谢谢你 解决方案 对于固定键配对,您不应将功能初始化为" NoInputOutput". NoInputOutput意味着没有显示,并且该设备没有键盘/UI.在使用Bluez注册时提及代理商的此功能,指示Bluez(Bluetoothd)不要致电任何代理API进行身份验证. 这通常在没有任何手动干预的情况下对Autopair有用. You can see this sample code, which uses NoInputOutput capability to connect the device without any intervention. 您需要的是" display
6 2023-07-25
编程技术问答社区
在Bluez5中自动进行蓝牙配对/信任
我一直在努力使我的RPI 2像汽车蓝牙接收器一样功能,一切都很好,除了我不知道如何自动化bluez5中蓝牙设备的配对.在过去,我会使用蓝牙代理和一个简单的脚本,但是随着4-> 5的搬迁,这似乎已经消失了.设置的性质意味着我一旦在RPI上都在RPI上就没有KB/鼠标,因此它必须是一个完全自动化的设置,因此任何人都可以扫描RPI,并且如果可以自动进行pin pen,则可以自动启动pin pen pen peri,not peri periation the cli cli cli cli cli是正确的. 我已经在网络上搜索了,但是每个人似乎都说使用蓝牙可适用于他们,但是在这个特定的设置中,我希望能够让朋友配对自己的手机,不得不使用RPI信任RPI,并不理想. 解决方案 我不确定为什么您会说使用一个简单的脚本使用Bluez5.我认为你可以做到.以下是一个示例. 下载bluez5源并编辑test/simple-agent.注释代码行,如下所示: def RequestAu
90 2023-07-25
编程技术问答社区
为什么我不能在Raspberry Pi中用BPM传感器获得BLE指示响应?
我正在使用BPM,即Omron BP7350. 设备与制造商Android应用程序合作,可以在Raspberry Pi上连接到设备,但是当我尝试编写指示请求0200时,我没有从BPM传感器那里得到任何响应. 然后,我使用NRF Connect SDK Android应用测试了Omron BP7350,并且能够像在制造商应用程序中一样顺利阅读指示...所以我不明白可能是错误的. 我也尝试使用PI中的hcitool和gatttool,能够连接到设备,但是再次无法从BPM传感器获得指示,我开始认为这与我可能需要更好的理解是一个相关的配对问题,但是由于我不需要选择,但是我想知道您是否可以让我调试此问题. 这是NRF Connect SDK的日志消息: nRF Connect, 2020-06-03 BLESmart_0000015328FFB28ADF2F (28:FF:B2:8A:DF:2F) V 14:59:11.616 Connecting to 28:FF:
8 2023-07-25
编程技术问答社区
使用BlueZ外围设备和iOS的 "加密连接失败"。
我正在尝试制作覆盆子Pi蓝牙外围设备,因此我尝试同时运行Bluez示例"示例 - 高级服务器"和"示例广告".然后与我的手机进行通信.但是我"无法加密连接,连接已经意外地定时了."在我的iOS上使用NRF Connect App. 我正在使用iOS 14,bluez 5.50,覆盆子pi 4,覆盆子pi os stretch 解决方案 而不是使用现成的示例,建议您创建自己的Gatt服务器,然后通过BluetoothCTL工具作为外围广告.您可以通过以下序列执行此操作: - #bluetoothctl [bluetoothctl] menu gatt [bluetoothctl] register-service 0xFFFF # (Choose yes when asked if primary service) [bluetoothctl] register-characteristic 0xAAAA read # (Select a value of
4 2023-07-25
编程技术问答社区
用bluez通过蓝牙连接两个树莓派
I'm trying to use this API: https://www.linumiz.com/bluetooth-connectdevice-without-scanning/ to make a connection between two Raspberry PI.我正在使用此程序,例如: pi@raspberrypi:~/bluetoothC $ sudo ./bin/bluez_adapter_connect 适配器在 上供电 然后,在客户端: pi@raspberrypi:~/bluetoothC $ sudo ./bin/bluez_adapter_connect B8:27:EB:9F:91:A7 适配器在"上"无法获得结果: gdbus.error:org.freedesktop.dbus.error.unknownmethod:方法 接口上带有签名" a {sv}"的" connectDevice" " org.bluez.adap
20 2023-07-25
编程技术问答社区
Pulseaudio无法检测到蓝牙耳机
我正在尝试将蓝牙耳机连接到我的RPI.我的设置如下: Archlinux-Arm,内核:Linux-RaspberryPi 3.12.23-1 bluez4 4.101-4来自 Bluez-Tools 0.1.38-3 bluez-utils 5.20-1 pulseaudio 5.0-1 pulseaudio-alsa 2-3 i扫描该设备,成功配对,添加作为信任并将其连接: hcitool scan bluez-simple-agent hci0 bt-device --set Trusted 1 bt-audio -c 之后,设备状态如下(bt-device -i 输出): [00:23:7F:2A:3B:24] Name: PLT 510 Alias: PLT 510 [rw] Address: 00:23:7F:2A:3B:24 Icon: audio-card Class: 0x200404 P
46 2023-07-25
编程技术问答社区
我无法列出我的Raspberry Pi附近的BLE设备(python,btmgmt)。
我想使用称为cron脚本的Python脚本来扫描覆盆子环境中的BLE设备. 但是当我在cron中这样做(我的意思是我添加到sudo crontab -e)时,我最终得到了一个空列表. 当我登录为PI用户时-BTMGMT可以使用SU权限( ). pi@Pluto:~ $ btmgmt find Unable to start discovery. status 0x14 (Permission Denied) pi@Pluto:~ $ sudo btmgmt find Discovery started hci0 type 7 discovering on hci0 dev_found: 77:F8:D7:8A:1E:E5 type LE Random rssi -83 flags 0x0000 ... 所以在我写的python脚本中: flog.write("P01:\r\n") out = subprocess.Popen(['sudo', '/usr/bin/
10 2023-07-25
编程技术问答社区
树莓派蓝牙4.0连接
我正在尝试使用CoreBluetooth(蓝牙4.0)通过iPhone连接到Raspberry Pi.我发现了设备并使用此代码发送连接请求: if (peripheral != self.foundPeripheral) { NSLog(@"Try to connect to %@", peripheral.name); self.foundPeripheral = peripheral; [self.centralManager stopScan]; [self.centralManager connectPeripheral:peripheral options:nil]; } didconnectpheral或didfailedtoconnectpheral均未被调用.我还确保将RPI设置为使用 宣传蓝牙低能 sudo hciconfig hci0 leadv 但是,当我检查 的活动连接时 hcitool con 没有主动
10 2023-07-25
编程技术问答社区
使用Bluez的C/C++ BLE读/写示例
我开始使用微控制器和Raspberry Pi(Tardis Ble Dongle)建立一个简单的BLE网络.作为起点,我正在寻找一个简单的C或C ++示例来读取/编写BLE设备,类似于我在命令行上所做的事情.到目前为止,我发现的示例非常复杂.作为一个初学者,我需要一些非常简单的示例才能构建,然后再进行更复杂的设计.我可以像在下面的Gatttool示例中对BLE设备名称进行硬编码. 这是我当前使用Bluez的命令行选项的方式. 我可以使用命令行: $ sudo hcitool lescan LE Scan ... BB:A0:50:02:18:07 MyDevice 接下来,我可以使用Gatttool上的命令行上的设备: $ sudo gatttol -b BB:A0:50:02:18:07 -I [BB:A0:50:02:18:07][LE]> connect Attempting to connect to BB:A0:50:02:18:07 Connect
8 2023-07-25
编程技术问答社区