I have had success connecting my Brailliant (Baum driver) through bluetooth on Fedora 8 and Ubuntu Gutsy, using a USB bluetooth dongle.

Both distros have a passkey-agent utility as part of bluez-utils package, but that utility is not the same on each distro!

On Fedora 8:
passkey-agent <pin> <address>
or passkey-agent --default <pin>

On Ubuntu Gutsy:
passkey-agent --default /usr/local/bin/bluepin-dave
(using Dave's script).

On FC6, I had to compile passkey-agent by hand from the bluez sources.

This is of course somewhat clunky. The right thing to do would probably be for BRLTTY to register as an agent over dbus and provide the PIN directly. I haven't looked closely at how this is done, but it should be possible to start from the passkey-agent code. There may be interesting details such as when to register and reregister...

The probe attempts over bluetooth seem to take a bit longer. I don't know if there are any timeouts we can tweak... If you try this be patient, sometimes it might take like 20secs to connect.

One glitch I've had is if the USB bluetooth dongle is disconnected: brltty keeps writing to the dead bluetooth interface indefinitely, all the while flooding your log with "Transport endpoint is not connected". The attached patch is my quick&dirty fix for this: perhaps this could be better done at a higher level that would apply to all drivers?

Note that disconnection of the USB bluetooth dongle doesn't just happen when you pull it out: in my case it was happening on suspending my laptop. With the attached patch, my bluetooth connection is reestablished on resume.

Thanks

--
Stéphane Doyon
<[EMAIL PROTECTED]>
http://pages.videotron.com/sdoyon/
Index: BrailleDrivers/Baum/braille.c
===================================================================
--- BrailleDrivers/Baum/braille.c       (revision 3406)
+++ BrailleDrivers/Baum/braille.c       (working copy)
@@ -1817,6 +1817,10 @@
   int count = writeData(bluetoothConnection, buffer, length);
   if (count != length) {
     if (count == -1) {
+      if(errno == ENOTCONN) {
+        LogPrint(LOG_WARNING, "Bluetooth disconnect");
+        pendingCommand = BRL_CMD_RESTARTBRL;
+      }
       LogError("Baum Bluetooth write");
     } else {
       LogPrint(LOG_WARNING, "Trunccated bluetooth write: %d < %d", count, 
length);
_______________________________________________
This message was sent via the BRLTTY mailing list.
To post a message, send an e-mail to: [email protected]
For general information, go to: http://mielke.cc/mailman/listinfo/brltty

Reply via email to