Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bluetooth ARM嵌入式linux的蓝牙技术_Bluetooth_Arm_Embedded Linux_Obex_Bluez - Fatal编程技术网

Bluetooth ARM嵌入式linux的蓝牙技术

Bluetooth ARM嵌入式linux的蓝牙技术,bluetooth,arm,embedded-linux,obex,bluez,Bluetooth,Arm,Embedded Linux,Obex,Bluez,我现在正在为在运行Linux的ARM嵌入式设备上安装蓝牙服务奋斗几天。我正在使用通过USB连接的蓝牙加密狗 让我们从头开始。我必须自己编译所有需要的包,这意味着expat、dbus、zlib、libffi、glib、bluez-3.36-libs和bluez-3.36-utils(是的,3.36,我知道它们很旧,但我的交叉编译器也是如此)、libopenobex-1.3、obexd-0.3、obexftp。然后我把二进制文件和lib放在设备上。此外,在内核中启用了蓝牙 我可以使用hciconfi

我现在正在为在运行Linux的ARM嵌入式设备上安装蓝牙服务奋斗几天。我正在使用通过USB连接的蓝牙加密狗

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

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

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

  • 这些是我唯一需要的工具吗

  • 将所有内容放到设备上后,我使用
    hciconfig hci0 up
    打开蓝牙,然后使用
    dbus launch
    启动dbus守护进程,然后尝试启动obexd。当我运行
    dbus launch
    时,它会打印dbus_会话_总线_地址和一些pid的值,然后当我尝试启动obexd时,它会要求我设置dbus_会话_总线_地址。这是否正常,因为我读到您必须仅为测试目的而设置?默认(实际)dbus会话总线地址是什么?我应该如何正确配置dbus

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

  • 为了实现我的目标,你能告诉我具体的步骤吗。我试图从互联网上了解更多关于它们的信息,也试图在网上找到这些步骤,但我找不到我需要的

  • 您能解释一下obexd、obexd客户端、obexd服务器、obex数据服务器和obexftp之间的区别吗?它们是要一起使用还是提供相同的功能?我无法从他们的手册页中澄清这一点


  • 我知道这是一篇很长的文章,有很多问题,但我没有蓝牙方面的经验,我面临解决这个问题的时间压力。任何帮助都将不胜感激

    您提出了许多问题,但将尝试回答:

  • 这几乎是你所需要的一切

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

  • 您可以使用简单代理(如果我没有错的话,它在3.36版本的tools目录中)。在非gui模式下(简单代理——默认值[follower by your pincode])可以工作

  • 基本上,您需要找到一个设备(进行扫描),进行身份验证(配对),然后继续进行文件传输,这将涉及obex级别的请求/响应(简单地说)

  • 据我所知,最初,obexftp/obexpush是在openobex之上用于文件传输的唯一独立实用程序。Obex data serer是作为GSOC竞争的一部分开发的,它被纳入了主要发行版。obexd是专为嵌入式使用而设计的obex数据服务器的精简版,与hcid(以及后来的蓝牙)紧密集成。请仅使用其中一个实用程序,而不是同时使用所有实用程序


  • 您提出了许多问题,但将尝试回答:

  • 这几乎是你所需要的一切

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

  • 您可以使用简单代理(如果我没有错的话,它在3.36版本的tools目录中)。在非gui模式下(简单代理——默认值[follower by your pincode])可以工作

  • 基本上,您需要找到一个设备(进行扫描),进行身份验证(配对),然后继续进行文件传输,这将涉及obex级别的请求/响应(简单地说)

  • 据我所知,最初,obexftp/obexpush是在openobex之上用于文件传输的唯一独立实用程序。Obex data serer是作为GSOC竞争的一部分开发的,它被纳入了主要发行版。obexd是专为嵌入式使用而设计的obex数据服务器的精简版,与hcid(以及后来的蓝牙)紧密集成。请仅使用其中一个实用程序,而不是同时使用所有实用程序


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