SCO环回蓝牙

时间:2014-07-09 10:52:53

标签: bluetooth fedora bluez

说明:

我有一个具有蓝牙功能的小型内部设备。目前,其他设备连接到该盒子。我们在我们的盒子里播放音乐,通过蓝牙我们在连接的设备上播放。我们用 “aplay -D btheadset”命令播放音乐。

要求:
我想知道我 sco loopback 的内容?以及如何检查我的蓝牙是否支持它?

我的调查:
我所知道的是我们可以通过SCO链接或ACL流式传输音乐。我如何确定它的SCO?我有任何关于环回的想法。

其他信息: 该应用程序使用Bluez图书馆向固件/硬件发送命令,我们广泛使用HCItool。

操作系统: Fedora的。

任何帮助对我们都有益。 感谢

1 个答案:

答案 0 :(得分:1)

SCO代表面向同步连接。 SCO链路主要是为音频设计的,并为数据包提供专用时隙。这使它适合音频(记住 - BT是基于数据包的传输)。

SCO Loopback由于缺乏更好的描述,是一种向自身播放音频的设备。就其本质而言,我怀疑这是可能的。不过,我认为你想要的是一个SCO 链接

现在,当设备启动与另一个设备的SCO连接时,它必须首先通过发送ACL数据包来启动连接。这是为了让两个设备相互了解。

ACL是面向主从的。这意味着设备都不希望在任何特定帧中包含数据包。

现在,确保在SCO模式下玩游戏:
这很可能已经是这种情况。现在我们正在使用更高质量的音频,BT设备已经变得非常依赖于定期的恒定数据包流。 SCO链接是确保这一点的好方法。

编辑:This是对SCO的测试。任何不支持它的设备都将被跳过 编辑2:在Fedora中,禁用<*>SCO links support (CONFIG_BT_SCO)(对不起,我不知道Fedora中的参数要禁用),看看你的工作设备现在是否失败。

至于将音频文件传入和传出设备,设备是否能够播放自己的音频?如果是这样,请将其安装为USB设备(请记住,蓝牙使用USB总线(我认为))

emerge或apt-get bluez-utils和obexfs。应该将所有其他lib作为依赖项。

#emerge bluez-utils obexfs

像这样修改/etc/bluetooth/hcid.conf

options {
autoinit yes"
security user
pairing multi
pin_helper /usr/bin/bluepin
}
device {
name testname
class 0x3e0100
iscan enable
pscan enable
lm accept
lp rswitch,hold,sniff,park 
}

加载模块:

# modprobe fuse
# modprobe bluetooth
# modprobe ehci-hcd
# modprobe uhci-hcd
# modprobe hci_usb
# modprobe l2cap
# modprobe rfcomm

激活BT,启动并获取设备的MAC

# echo enable >/proc/acpi/ibm/bluetooth
# /etc/init.d/bluetooth start
# hcitool scan

安装你的设备:

# mkdir /mnt/player
# mount -t fuse "obexfs#-b<MAC address> -B6" /mnt/player

如果您想要一个更加用户友好的界面,请尝试启动
kbtobexclient
并在位置放
obex://[00:01:02:03:04:05]

我希望这符合您的要求。