难以与Ubuntu上的蓝牙OBDII设备配对

时间:2013-10-03 02:21:29

标签: ubuntu bluetooth bluez beagleboneblack elm327

我正试图与运行Ubuntu Linux的Beaglebone Black的汽车OBDII蓝牙设备配对,而且没有太多运气。

我最初能够使用bluez-simple-agent设置hci0,尽管它从未向我询问过PIN码。此设备的PIN应为“1234”。现在,当我运行bluez-simple-agent时,我得到了这个:

ubuntu@ubuntu-armhf:/etc/bluetooth$ sudo bluez-simple-agent hci0 00:0D:18:A0:4E:35
Creating device failed: org.bluez.Error.AlreadyExists: Already Exists

如果它正常工作会好的,但是当我尝试使用rfcomm绑定时,我反复得到“无法连接RFCOMM套接字:无效交换”(重启设备后第一次)然后“不能连接RFCOMM套接字:连接“每次都被拒绝。

这是我的/etc/bluetooth/rfcomm.conf文件:

rfcomm0 {
    # Automatically bind the device at startup
    bind no;

    # Bluetooth address of the device
    device 00:0D:18:A0:4E:35;

    # RFCOMM channel for the connection
    channel 16;

    # Description of the connection
    comment "OBDII";
}

运行“rfcomm bind 0”会在/ dev / rfcomm0成功创建一个设备:

rfcomm0: 00:0D:18:A0:4E:35 channel 16 clean 

然而,试图从/ dev / rfcomm0读取,给我这个:

ubuntu@ubuntu-armhf:/etc/bluetooth$ sudo cat /dev/rfcomm0
cat: /dev/rfcomm0: Invalid exchange
ubuntu@ubuntu-armhf:/etc/bluetooth$ sudo cat /dev/rfcomm0
cat: /dev/rfcomm0: Connection refused
ubuntu@ubuntu-armhf:/etc/bluetooth$ 

此后,rfcomm返回:

ubuntu@ubuntu-armhf:/etc/bluetooth$ rfcomm
rfcomm0: 00:0D:18:A0:4E:35 channel 16 closed 

我认为我根据“sdptool记录”的结果使用正确的频道(16)

ubuntu@ubuntu-armhf:/etc/bluetooth$ sudo sdptool records 00:0D:18:A0:4E:35 
...
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 16
Profile Descriptor List:
  "Serial Port" (0x1101)
    Version: 0x0100

任何帮助都会非常感激,因为此时我的想法非常好。

参考文献:

2 个答案:

答案 0 :(得分:3)

从蓝牙设置中删除配对设备并重新添加

答案 1 :(得分:0)

我知道这有点晚了但是因为我到这里可能会有其他人在努力使用它所以我会发布对我有用的东西,使用我认为是相同的设备(OBDII ELM327蓝色连接器),

[使用BBB与DEBIAN WHEEZY]

  1. 我在/ etc / bluetooth /

    下面有以下rfcomm.conf文件

    rfcomm0 {
        绑定是;
        装置AA:BB:CC:DD:EE:FF; #远程设备的MAC
        第16频道;
        评论“OBDII”;
        }

  2. $#rfcomm connect rfcomm0

  3. 每次BBB连接到设备时,它似乎将其配置保存在/ var / lib / bluetooth / XX:XX:XX:XX:XX:XX(使用hcitool dev获取蓝牙适配器的MAC地址)

    1. 我正在做什么以确保它下次连接,我正在删除/ var / lib / bluetooth / XX:XX:XX:XX:XX:XX forlder的所有内容,并在启动时使用cron作业,在控制台上使用“ crontrab -e ”命令将以下行添加到cron
    2. $ @reboot rm / var / lib / bluetooth / *

      所以每次再次启动时,我都可以在必要时使用Linux命令建立连接

      我知道这有点棘手,我不知道删除蓝牙文件夹有多好或多坏,但它对我有用,如果您有任何其他意见或建议请告诉我

      此致