Bluetooth audio (once again)

Maksim Yevmenkin maksim.yevmenkin at gmail.com
Fri Oct 3 16:45:07 UTC 2008


>  > isoc transfer support was added to ng_ubt(4). there are some known
>  > problems, at least in some cases system crashes when usb dongle is
>  > simply disconnected (without shutting down the stack first). the stack
>  > trace ends up deep in the usb guts and i had no time to look at it.
>
> Have you point me on something like test application to try/reproduce
>  issue ?

sure. first, you need to run -current. ng_ubt(4) isoc support has not
been mfc'ed yet. then you might want to connect sco hook to the
sockets layer, i.e. apply something like

beetle% diff -u /usr/src/etc/rc.d/bluetooth bluetooth
--- /usr/src/etc/rc.d/bluetooth 2008-07-23 10:50:01.000000000 -0700
+++ bluetooth   2008-07-28 11:13:28.000000000 -0700
@@ -126,6 +126,8 @@
        ngctl connect ${dev}l2cap: btsock_l2c: l2c ${dev}l2c \
                > /dev/null 2>&1 || return 1

+ngctl connect ${dev}hci: btsock_sco: sco ${dev}sco > /dev/null 2>&1
+
        # Initilalize HCI node
        ${hccontrol} -n ${dev}hci reset \
                > /dev/null 2>&1 || return 1

to your /etc/rc.d/bluetooth script.


now you can connect your bluetooth device. kick tires and make sure
you can do inquiry etc. then simply pull the device out _without_
stopping the stack first. at least on my system it often leads to
panic after a few seconds.

>  > sco sockets support was also added, however 1) sco sockets hook is
>  > *not* connected by default and 2) there are some known problems with
>  > the code. more specifically problems are related to "broken" bluetooth
>  > devices and the way they report sco buffer size/packet count. i happen
>  > to have few of those devices. we need to have a way to handle those
>  > kind of devices nicely.
>
> I have Platronics P590 headset with advanced audio and Nokia headset. I
>  may to check them against our bluetooth stack.

ok.be warned, you will need to write some code for that. its
relatively simple. basically open an rfcomm socket and then open a sco
socket. i can provide examples if you want me to.

also, receive path (i.e. from headset to pc) kinda works. send path
(from pc to headset) needs more work.

>  > before doing anything else, we need to fix existing code.
>
> Let's move forward

sure :) lets.

thanks,
max


More information about the freebsd-bluetooth mailing list