Fremantle Unsupported Bluetooth profiles

m (Protected "Fremantle Unsupported Bluetooth profiles": Excessive vandalism ([edit=autoconfirmed] (expires 18:49, 16 December 2018 (UTC)) [move=autoconfirmed] (expires 18:49, 16 December 2018 (UTC))))
 
(21 intermediate revisions not shown)
Line 17: Line 17:
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) ==
+
Nonetheless, two dimensions of time kind a plane of time, which has no beginning and no end and is not restricted to any single course. have a look [url=http://www.connoisseurseafood.pl/chocolate-slim--gdzie-kupic-cena-apteka.htm]Chocolate Slim[/url] my blog [url=http://www.rcn-conti.lv/man-pride-cena-lietoana-latvij.htm]Man Pride[/url]
-
 
+
-
Fremantle comes with the bluetoothd input plugin installed but disabled through <code>/etc/bluetooth/main.conf</code>
+
-
 
+
-
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 <code>main.conf</code> should look like:
+
-
<pre>
+
-
[General]
+
-
 
+
-
#List of plugins that should not be loaded on bluetoothd startup
+
-
DisablePlugins = network,input,hal
+
-
...
+
-
</pre>
+
-
 
+
-
[[root access|As root]] change it to:
+
-
<pre>
+
-
[General]
+
-
 
+
-
#List of plugins that should not be loaded on bluetoothd startup
+
-
DisablePlugins = network,hal
+
-
...
+
-
</pre>
+
-
 
+
-
After saving, do a
+
-
<pre>
+
-
stop bluetoothd [RETURN]
+
-
start bluetoothd [RETURN]
+
-
</pre>
+
-
 
+
-
Note that editing the bluetooth/main.conf file will conflict with SIXAXIS(TM) Support, the controller will not connect to the device until this is reversed.
+
-
 
+
-
=== Bluetooth Keyboard ===
+
-
 
+
-
Bluetooth keyboards should pair like any other bluetooth device.
+
-
 
+
-
You'll need to complete some extra steps to get the layout working properly. See [[Fremantle Bluetooth Keyboard Layout]].
+
-
 
+
-
=== Bluetooth Mouse ===
+
-
 
+
-
For a bluetooth mouse, extra steps are also required. By default, mouse sensitivity is unusably high. There are some modified versions of the evdev_drv.so driver (and bluetooth.ko module) available in [http://talk.maemo.org/showthread.php?t=57427 this talk.maemo.org thread] that will fix this problem.
+
-
 
+
-
Depending on the mouse, you may also need to install the [http://packages.debian.org/lenny-backports/bluez-compat bluez-compat] package from Debian and libxmuu1, then run "hidd --search" in order to pair. See [http://talk.maemo.org/showthread.php?p=737916#post737916 this post] for more details.
+
== PAN ==
== PAN ==
Line 69: Line 27:
== Phone Book Access Profile (PBAP) and IrMC Sync ==
== Phone Book Access Profile (PBAP) and IrMC Sync ==
-
The following is a summary of those two threads on talk.maemo.org:
+
{{main|Bluetooth PBAP}}
-
 
+
-
[http://talk.maemo.org/showthread.php?t=36272 "Car kit can not access contact information"] and
+
-
 
+
-
[http://talk.maemo.org/showthread.php?t=59114 Announce - Bluetooth PBAP and IrMC / Carkit support is coming to N900...].
+
-
 
+
-
For further information you might want to check these threads.
+
-
 
+
-
Please post to the second one to get support and share your experiences with  this solution there as well!!!
+
-
+
-
=== General Information ===
+
-
 
+
-
'''--- PBAP ---'''
+
-
 
+
-
The Bluetooth Phone Book Access Profile (PBAP) allows to exchange Phone Book objects between carkits and mobile devices.
+
-
Or in other words, PBAB profile gives your car unit read access to your mobile phone book...
+
-
(to be exact: to both, the phonebook stored on SIM card and the phone book stored on internal memory. But for N900 only second one is relevant).
+
-
 
+
-
Described in a more specific way, whenever a connection between your carkit and your PBAB enabled phone is established, your phone book will be transfered to your carkit automatically.
+
-
What happens from now with the transfered phone book of course depends on the features of your carkit.
+
-
Usual use cases are browse and dial (voice-dial if supported by carkit) your contacts and show caller names for incoming calls.
+
-
With an integrated In-Car Infotainment/Phone/Navigation/Whatever system it is even possible to use the contacts addresses as target for the navigation system.
+
-
 
+
-
By default N900 does NOT support PBAP and thus the in-car use cases described above are either not possible or require manual workarounds as the in other threads described "Petrovich workaround" (manual sending of vCards via Bluetooth) or OPP (Object Push Profile - A Bluetooth profile that enables a Bluetooth device to transfer (push) an object (e.g. contact) to another Bluetooth device).
+
-
 
+
-
 
+
-
'''--- IrMC ---'''
+
-
 
+
-
This project also aims to provide IrMC support.
+
-
IrMC is another method to transfer the phone book to e. g. a car kit via Bluetooth which is by default not supported by N900.
+
-
 
+
-
 
+
-
 
+
-
Here comes the good news:
+
-
<div style="text-align:center;">'''NOW YOU CAN HAVE PBAB and IrMC ON YOUR N900 !!!'''</div>
+
-
 
+
-
=== Credits ===
+
-
 
+
-
Credits for the achieved so far go to those who contributed in the old thread [http://talk.maemo.org/showthread.php?t=36272 "Car kit can not access contact information"] as well as the new thread [http://talk.maemo.org/showthread.php?t=59114 Announce - Bluetooth PBAP and IrMC / Carkit support is coming to N900...]:
+
-
 
+
-
Especially the developers: drdrewusaf, tuxy, jarmo2, hschmitt, Ossman, mirakels..., but of course also all the others who helped with testing and troubleshooting!
+
-
 
+
-
 
+
-
=== Disclaimer ===
+
-
 
+
-
<font color=red>'''!!! CAUTION !!!'''
+
-
 
+
-
This project is still in development stage, which means there are still some risks, downsides and issues to be solved before PBAB on N900 is ready for the average user...(see below).
+
-
 
+
-
Please read this summary carefully and evaluate the risks involved for yourself!
+
-
(Keep in mind that this can cause problems for the phone. Backup your data, backup your config (apps > system > backup) and know how to reflash)
+
-
 
+
-
'''Whatever you do, you are doing it at your own risk!'''</font>
+
-
 
+
-
However, if you want to have PBAB / IrMC and want to help out here -
+
-
 
+
-
'''You are more than welcome as a tester or even developer.'''
+
-
 
+
-
Of course, before you start playing with your phone, you should check if your carkit does support PBAP / IrMC.
+
-
 
+
-
If it does not, this solution can not help you - Sorry!
+
-
 
+
-
(Note: Carkits older than 2007 probably do NOT support PBAP)
+
-
 
+
-
 
+
-
=== Current Project Status: ===
+
-
 
+
-
'''--- Successfull phonebook transfers were reported for the following carkits ---
+
-
'''
+
-
 
+
-
 
+
-
(If you are able to successfully transfer your phonebook to any carkit not listed here, please let us know or just add to following list!):
+
-
 
+
-
 
+
-
Via PBAP:
+
-
 
+
-
* 2008 BMW 120d
+
-
* 2008 BMW 318d
+
-
* 2008 BMW 320d with Business Navi
+
-
* 2008 BMW 535d Touring with Navigationsystem Professional
+
-
* 2010 BMW X1
+
-
* 2007 BMW X5 E70
+
-
* 2010 Audi A3 with RNS-E and bluetooth preparation
+
-
* 2009 Audi with RNS-E
+
-
* 2010 Peugeot 5008 Connect Nav carkit
+
-
* Bury AD9060
+
-
* Bury C9056
+
-
* Parrot MKi9100
+
-
* Vauxhall (Model unknown)
+
-
* Citroen (Model unknown)
+
-
 
+
-
Via IrMC
+
-
 
+
-
* Citroen C4 picasso
+
-
 
+
-
 
+
-
====''' Known issues / problems '''====
+
-
 
+
-
 
+
-
* <s>Broken PC Suite connectivity</s>
+
-
* False Maemo 5 update announcement in App Manager
+
-
* In some cases broken file transfer via BT to certain devices
+
-
* Lists for outgoing/incoming/missed calls are not supported (some carkits maintain own lists)
+
-
* Installing/Removing requires manual steps in xTerm
+
-
 
+
-
 
+
-
====''' Installation Guide '''====
+
-
 
+
-
 
+
-
Step 1)
+
-
 
+
-
Download the following 3 files and copy them to your phone (provided by drdrewusaf):
+
-
 
+
-
[http://ftp.us.debian.org/debian/pool/main/libo/libopenobex/libopenobex1_1.5-2_armel.deb Openobex 1.5-2 libraries]
+
-
 
+
-
[http://ftp.us.debian.org/debian/pool/main/libo/libopenobex/openobex-apps_1.5-2_armel.deb Openobex 1.5-2 apps]
+
-
 
+
-
[http://forums.internettablettalk.com/attachment.php?attachmentid=11779&stc=1&d=1278357528 obexd]
+
-
 
+
-
 
+
-
Step 2)
+
-
 
+
-
Open a root terminal and navigate to the folder you saved the 3 files in (where "/path/to/files" is the real path to your downloaded files):
+
-
 
+
-
<source lang="bash">
+
-
cd /path/to/files</source>
+
-
 
+
-
 
+
-
Step 3)
+
-
 
+
-
Install the packages.
+
-
As root run:
+
-
 
+
-
<source lang="bash">
+
-
dpkg -i libopenobex1_1.5-2_armel.deb openobex-apps_1.5-2_armel.deb obexd_0.28-0maemo3_armel.deb</source>
+
-
 
+
-
 
+
-
Step 4)
+
-
 
+
-
Download the latest version of obexd binary provided by mirakels from here
+
-
 
+
-
[http://talk.maemo.org/attachment.php?attachmentid=12612&d=1280519142 obex download]
+
-
 
+
-
This version provides:
+
-
* PBAP support (actually the plain PBAP that is in the 0.29 repo)
+
-
* IRMC sync support (only full phonebook retrieves)
+
-
* extra CR/LF between contacts
+
-
* support for multiple phone numbers per contact
+
-
* PC-Suite support (based on the patch test from hschmitt)
+
-
 
+
-
BUGS: pbap sends phonebook twice.
+
-
 
+
-
 
+
-
Step 5)
+
-
 
+
-
Replace the current obexd in /usr/lib/obex/obexd with the new one from mirakels,
+
-
as root run:
+
-
 
+
-
<source lang="bash">
+
-
mv <where your new version is> /usr/lib/obex/obexd</source>
+
-
 
+
-
Make sure that it is excecutable
+
-
 
+
-
<source lang="bash">
+
-
chmod a+x /usr/lib/obex/obexd</source>
+
-
 
+
-
 
+
-
Step 6)
+
-
 
+
-
Edit the obex start command in ''/usr/share/dbus-1/services/obexd.service'':
+
-
* for PBAB include the option ''--pbap'' (already added after previous steps),
+
-
* for IRMC include the option ''--irmc'' (both is possible too),
+
-
* for PC Suite connection add ''--capability !/usr/bin/gen-obex-capability.sh''
+
-
 
+
-
 
+
-
Step 7)
+
-
 
+
-
Reboot, test and ENJOY - hopefully ;-)
+
-
 
+
-
'''-> Please share your results !!!'''
+
-
 
+
-
   
+
-
====''' Troubleshooting '''====
+
-
 
+
-
For troubleshooting install and use hcidump and/or syslog
+
-
 
+
-
   
+
-
=====''' Download and install hcidump '''=====
+
-
 
+
-
 
+
-
First you need to add the developer repository, see [http://wiki.maemo.org/Documentation/devtools/maemo5#Installation Wiki page].
+
-
 
+
-
After adding the repository, run the following command as root:
+
-
 
+
-
<source lang="bash">
+
-
apt-get install bluez-hcidump</source>
+
-
 
+
-
OR if the above fails, try the following steps:
+
-
 
+
-
 
+
-
Step 1)
+
-
 
+
-
Download the deb-package containing hcidump from here: [http://repository.maemo.org/pool/fremantle/free/b/bluez-hcidump/bluez-hcidump_1.42-0maemo2_armel.deb hcidump download]
+
-
 
+
-
 
+
-
Step 2)
+
-
 
+
-
Unpack it (alien on Linux, 7-zip on Windows)
+
-
 
+
-
 
+
-
Step 3)
+
-
 
+
-
Copy /usr/sbin/hcidump to the N900
+
-
 
+
-
 
+
-
Step 4)
+
-
 
+
-
In xTerm as root:
+
-
 
+
-
<source lang="bash">
+
-
chmod a+x /usr/sbin/hcidump</source>
+
-
 
+
-
 
+
-
'''-- Usage of hcidump --'''
+
-
 
+
-
 
+
-
For testing/debugging with hcidump, run the following command (where "/some/path/somefilename" is a real path and any name you choose for your output file.)
+
-
 
+
-
<source lang="bash">
+
-
hcidump -w /some/path/somefilename</source>
+
-
 
+
-
right before turning your head unit/car on. Then, do what you would normally do to get contacts to show up and wait for it to finish/fail. Then, press ctrl+c on the phone to exit hcidump. Finally, you can view the output/dump file with Wireshark or upload your dump files so we can see what's going on.
+
-
 
+
-
'''-> Please share your results !!!
+
-
'''
+
-
 
+
-
 
+
-
=====''' Install syslogd and enable obexd debug option '''=====
+
-
 
+
-
 
+
-
For further troubleshooting information you may also want to try to enable obexd syslog debugging messages:
+
-
 
+
-
 
+
-
Step 1)
+
-
 
+
-
Install syslogd:
+
-
As root run
+
-
 
+
-
<source lang="bash">
+
-
apt-get install sysklogd</source>
+
-
 
+
-
 
+
-
Step 2)
+
-
 
+
-
Kill running obexd process
+
-
As root run
+
-
 
+
-
<source lang="bash">
+
-
killall obexd</source>
+
-
 
+
-
 
+
-
Step 3)
+
-
 
+
-
Restart obexd with enabled debug option
+
-
As root run
+
-
 
+
-
<source lang="bash">
+
-
/usr/lib/obex/obexd --debug --opp --ftp --pcsuite --pbap --symlinks --root .obex-root --root-setup /usr/bin/obex-root-setup --capability !/usr/bin/gen-obex-capability.sh</source>
+
-
 
+
-
 
+
-
Step 4)
+
-
 
+
-
Sysklogd will create a file /var/log/syslog
+
-
 
+
-
After your test copy this file to some other location (do not delete the original) and edit out the relevant part and post it [http://talk.maemo.org/showthread.php?t=59114 here].
+
-
 
+
-
 
+
-
 
+
-
====''' Downgrade to Original State '''====
+
-
 
+
-
To reinstall the original packages:
+
-
 
+
-
 
+
-
Step 1)
+
-
 
+
-
Download these 2 .deb packages:
+
-
 
+
-
[http://repository.maemo.org/pool/fremantle/free/libo/libopenobex1/libopenobex1_1.4-0maemo3+0m5_armel.deb libopenobex1 1.4]
+
-
 
+
-
[http://repository.maemo.org/pool/fremantle/free/o/obexd/obexd_0.18-0maemo5+0m5_armel.deb obexd 0.18]
+
-
 
+
-
 
+
-
Step 2)
+
-
 
+
-
Place them in a folder on the N900, say /home/user/mypackages
+
-
 
+
-
 
+
-
Step 3)
+
-
 
+
-
As root run (replace /home/user/mypackages with the path to the folder where you placed the files):
+
-
 
+
-
<source lang="bash">
+
-
apt-get remove openobex-apps
+
-
cd /home/user/mypackages
+
-
dpkg -i *.deb</source>
+
-
 
+
-
 
+
-
Step 4)
+
-
 
+
-
Reboot the phone.
+
-
 
+
-
OR run as root
+
-
 
+
-
<source lang="bash">
+
-
apt-get install libopenobex1=1.4-0maemo3+0m5
+
-
apt-get install obexd=0.18-0maemo5+0m5</source>
+
-
 
+
-
Reboot the phone.
+
-
 
+
-
OR run as root
+
-
 
+
-
<source lang="bash">
+
-
apt-get update
+
-
apt-get install --reinstall obexd libopenobex1 openobex-apps </source>
+
-
 
+
-
Reboot the phone.
+
[[Category:Users]]
[[Category:Users]]

Latest revision as of 18:49, 16 December 2017

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

[edit] 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.

[edit] 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.

Nonetheless, two dimensions of time kind a plane of time, which has no beginning and no end and is not restricted to any single course. have a look [url=http://www.connoisseurseafood.pl/chocolate-slim--gdzie-kupic-cena-apteka.htm]Chocolate Slim[/url] my blog [url=http://www.rcn-conti.lv/man-pride-cena-lietoana-latvij.htm]Man Pride[/url]

[edit] 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.

[edit] Phone Book Access Profile (PBAP) and IrMC Sync

Main article: Bluetooth PBAP