Fremantle Unsupported Bluetooth profiles

(HID host (i.e. support for Bluetooth keyboards))
(use <code> and <source>, links)
Line 1: Line 1:
-
There are several Bluetooth profiles officially missing/unsupported in Fremantle that are however supported by the upstream BlueZ project or can be made to work with some simple hacks.  
+
There are several [[Bluetooth]] profiles officially missing/unsupported in [[Open development/Maemo roadmap/Fremantle|Fremantle]] that are however supported by the upstream BlueZ project or can be made to work with some simple hacks.  
-
=== DUN server ===
+
== DUN server ==
There's a tool called pnatd (short for PhoNet AT Daemon) which can act as a proxy between the cellular modem PhoNet interface and a TTY device.
There's a tool called pnatd (short for PhoNet AT Daemon) which can act as a proxy between the cellular modem PhoNet interface and a TTY device.
-
==== Example script ====
+
=== Example script ===
-
<pre>
+
<source lang="bash">
sdptool add --channel 1 DUN
sdptool add --channel 1 DUN
while true; do
while true; do
Line 13: Line 13:
         sleep 1
         sleep 1
done
done
-
</pre>
+
</source>
There is one known issue: Most likely due to a bug in the way that the Bluetooth and TTY subsystems in the kernel interact in this use case data can be lost if the DUN client starts immediately sending AT commands when the connection is created. This can e.g. be worked around by adding a 1 second delay to the chat script on the client side.
There is one known issue: Most likely due to a bug in the way that the Bluetooth and TTY subsystems in the kernel interact in this use case data can be lost if the DUN client starts immediately sending AT commands when the connection is created. This can e.g. be worked around by adding a 1 second delay to the chat script on the client side.
-
=== HID host (i.e. support for Bluetooth keyboards and mice) ===
+
== HID host (i.e. support for Bluetooth keyboards and mice) ==
-
Fremantle comes with the bluetoothd input plugin installed but disabled through /etc/bluetooth/main.conf
+
Fremantle comes with the bluetoothd input plugin installed but disabled through <code>/etc/bluetooth/main.conf</code>
-
As shown by Johan Hedberg at the Maemo Summit 2009:
+
As shown by [[Maemo Summit 2009/Day 2#Hacking officially unsupported Bluetooth profiles to work in Fremantle|Johan Hedberg at the Maemo Summit 2009]]:
-
Your main.conf should look like:
+
Your <code>main.conf</code> should look like:
<pre>
<pre>
[General]
[General]
Line 32: Line 32:
</pre>
</pre>
-
With root rights change it to
+
[[root access|As root]] change it to:
<pre>
<pre>
[General]
[General]
Line 49: Line 49:
Then go to the bluetooth section pair the keyboard like any other bluetooth device and connect it.
Then go to the bluetooth section pair the keyboard like any other bluetooth device and connect it.
-
You'll need to complete some extra steps to get the layout working properly. See [[Fremantle Bluetooth Keyboard Layout]].
+
You'll need to complete some extra steps to get the layout working properly. See [[Fremantle Bluetooth Keyboard Layout]].
You can use the same instructions for a bluetooth mouse. The trackwheel will only zoom in & out for the browser (Firefox). Mouse sensitivity is too high, xorg.conf modifications should make it work properly.
You can use the same instructions for a bluetooth mouse. The trackwheel will only zoom in & out for the browser (Firefox). Mouse sensitivity is too high, xorg.conf modifications should make it work properly.
Line 55: Line 55:
Note that this will conflict with SIXAXIS(TM) Support, the controller will not connect to the device until this is reversed.
Note that this will conflict with SIXAXIS(TM) Support, the controller will not connect to the device until this is reversed.
-
=== PAN ===
+
== PAN ==
-
Fremantle comes with the bluetoothd network plugin installed but disabled through /etc/bluetooth/main.conf - to use your N900 as a PAN server for other clients (such as N8x0) just enable this.
+
Fremantle comes with the bluetoothd network plugin installed but disabled through <code>/etc/bluetooth/main.conf</code> - to use your N900 as a PAN server for other clients (such as N8x0) just enable this.
If you want to connect to another device over PAN, see [[Bluetooth PAN]] for more detailed information.
If you want to connect to another device over PAN, see [[Bluetooth PAN]] for more detailed information.
-
=== Phone Book Access Profile (PBAP) ===
+
== Phone Book Access Profile (PBAP) ==
-
Since Fremantle has Evolution Data Server as its contacts backend it might be possible to get some PBAP functionality by enabling PBAB support with the ebook driver in obexd. The obexd package might need to be recompiled for this (not 100% sure) and the --pbap commandline switch will need to be added to /usr/share/dbus-1/services/obexd.service. If this is not enough, the ebook driver might need some tweaking for Fremantle.
+
Since Fremantle has Evolution Data Server as its contacts backend it might be possible to get some PBAP functionality by enabling PBAB support with the ebook driver in obexd. The obexd package might need to be recompiled for this (not 100% sure) and the --pbap commandline switch will need to be added to <code>/usr/share/dbus-1/services/obexd.service</code>. If this is not enough, the ebook driver might need some tweaking for Fremantle.

Revision as of 09:46, 17 June 2010

There are several Bluetooth profiles officially missing/unsupported in Fremantle that are however supported by the upstream BlueZ project or can be made to work with some simple hacks.

Contents

DUN server

There's a tool called pnatd (short for PhoNet AT Daemon) which can act as a proxy between the cellular modem PhoNet interface and a TTY device.

Example script

sdptool add --channel 1 DUN
while true; do
        rfcomm -S --listen -1 1 /usr/bin/pnatd '{}'
        sleep 1
done

There is one known issue: Most likely due to a bug in the way that the Bluetooth and TTY subsystems in the kernel interact in this use case data can be lost if the DUN client starts immediately sending AT commands when the connection is created. This can e.g. be worked around by adding a 1 second delay to the chat script on the client side.

HID host (i.e. support for Bluetooth keyboards and mice)

Fremantle comes with the bluetoothd input plugin installed but disabled through /etc/bluetooth/main.conf

As shown by Johan Hedberg at the Maemo Summit 2009:

Your main.conf should look like:

[General]

#List of plugins that should not be loaded on bluetoothd startup
DisablePlugins = network,input,hal
...

As root change it to:

[General]

#List of plugins that should not be loaded on bluetoothd startup
DisablePlugins = network,hal
...

After saving, do a

stop bluetoothd [RETURN]
start bluetoothd [RETURN]

Then go to the bluetooth section pair the keyboard like any other bluetooth device and connect it.

You'll need to complete some extra steps to get the layout working properly. See Fremantle Bluetooth Keyboard Layout.

You can use the same instructions for a bluetooth mouse. The trackwheel will only zoom in & out for the browser (Firefox). Mouse sensitivity is too high, xorg.conf modifications should make it work properly.

Note that this will conflict with SIXAXIS(TM) Support, the controller will not connect to the device until this is reversed.

PAN

Fremantle comes with the bluetoothd network plugin installed but disabled through /etc/bluetooth/main.conf - to use your N900 as a PAN server for other clients (such as N8x0) just enable this.

If you want to connect to another device over PAN, see Bluetooth PAN for more detailed information.

Phone Book Access Profile (PBAP)

Since Fremantle has Evolution Data Server as its contacts backend it might be possible to get some PBAP functionality by enabling PBAB support with the ebook driver in obexd. The obexd package might need to be recompiled for this (not 100% sure) and the --pbap commandline switch will need to be added to /usr/share/dbus-1/services/obexd.service. If this is not enough, the ebook driver might need some tweaking for Fremantle.