【问题标题】:Bluetooth for ARM embedded linuxARM嵌入式Linux的蓝牙
【发布时间】:2013-01-05 01:21:57
【问题描述】:

我正在为在运行 Linux 的 ARM 嵌入式设备上设置蓝牙服务而苦苦挣扎了几天。我正在使用通过 USB 连接的蓝牙加密狗。

让我们从头开始。我必须自己编译所有必需的包,这意味着 expat、dbus、zlib、libffi、glib、bluez-3.36-libs 和 bluez-3.36-utils(是的 3.36,我知道它们很旧,但我的 cross-编译器)、libopenobex-1.3、obexd-0.3、obexftp。然后我将二进制文件和库放在设备上。此外,内核中启用了蓝牙。

我可以使用hciconfig hci0 up 命令激活蓝牙,我可以使用hcitool scan 执行扫描,我什至可以使用 l2ping 以前发现的设备进行 ping。

我想要的是能够使用 ftp 协议在该 ARM 设备和另一个蓝牙设备之间传输文件,我的问题就从这里开始了。

  1. 这些是我唯一需要的工具吗?

  2. 把所有东西都放在设备上后,我使用hciconfig hci0 up打开蓝牙,然后我使用dbus-launch启动dbus守护进程,之后我尝试启动obexd。当我运行dbus-launch 时,它会打印 DBUS_SESSION_BUS_ADDRESS 的值和一些 pid,然后当我尝试启动 obexd 时,它会要求我设置 DBUS_SESSION_BUS_ADDRESS。这是否正常,因为我读到您必须仅出于测试目的进行设置?默认(真实)dbus 会话总线地址是什么?我应该如何正确配置 dbus?

  3. 我倾向于认为问题出在配对过程中,当两个蓝牙设备尝试进行身份验证时。我如何从命令行执行此操作,因为这就是我所拥有的(没有 GUI)?

  4. 能否请您向我介绍为实现我的目标要遵循的详细步骤。我试图从互联网上了解更多关于它们的信息,也试图在网上找到这些步骤,但我找不到我需要的。

  5. 能否请您解释一下 obexd、obexd-client、obexd-server、obex-data-server、obexftp 之间的区别?它们是要一起使用还是提供相同的功能?我无法从他们的手册页中澄清这一点。

我知道这是一篇很长的帖子,里面有很多问题,但我没有使用蓝牙的经验,而且我面临着解决这个问题的时间压力。任何帮助将不胜感激。

【问题讨论】:

  • 这里发生了很多不同的事情。通过将其分解为关于 SO 的多个问题,您可能会获得更好的运气。
  • 我的猜测是这些组件中至少有一些将使用系统而不是会话总线。理想情况下,您应该在启动时通过 init-scripts 或 SystemD 启动。任何用户界面都可以很好地使用会话总线。 dbus-launch 通常用于引导 X,以便它及其子进程可以继承必要的环境变量。如果从 shell 执行此操作,请尝试 dbus-launch /bin/sh

标签: bluetooth arm embedded-linux obex bluez


【解决方案1】:

您提出了许多问题,但会尽力回答:

  1. 这就是你需要的一切。

  2. 为什么要启动会话总线?不会启动系统总线帮助,hcid 使用系统总线(据我所知)。您需要使用正确的参数执行交叉编译的 obexd(或任何其他实用程序)。

  3. 您可以使用 simple-agent(如果我没记错的话,它位于 3.36 版本的工具目录中)。在非 gui 模式下( simple-agent --default [ follower by your pincode ] )将起作用。

  4. 基本上你需要找到一个设备(做扫描),认证(对),然后进行文件传输,这将涉及到 obex 级别的请求/响应(简单来说)。

  5. 据我所知,最初 obexftp / obex-push 是唯一可以在 openobex 之上进行文件传输的独立实用程序。 Obex-data-serer 是作为 GSOC 竞赛的一部分开发的,该竞赛已包含在主要发行版中。 obexd 是专为嵌入式使用而设计的 obex-data-server 的精简版本,并与 hcid(以及后来的蓝牙)紧密集成。请仅使用其中一种实用程序,不要同时使用所有实用程序。

【讨论】:

  • 感谢 dbus 提示;启动 dbus 作为系统帮助。最后,我设法解决了这个问题。我不知道 openobex 默认情况下没有启用蓝牙。在使用 obexftp 使用启用蓝牙的文件传输构建它之后。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-03
  • 1970-01-01
  • 2012-05-19
  • 2011-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多