/[gentoo]/xml/htdocs/doc/en/bluetooth-guide.xml
Gentoo

Contents of /xml/htdocs/doc/en/bluetooth-guide.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.14 - (show annotations) (download) (as text)
Mon Oct 22 05:27:37 2007 UTC (6 years, 8 months ago) by nightmorph
Branch: MAIN
Changes since 1.13: +3 -7 lines
File MIME type: application/xml
bluez-sdp was removed from portage two years ago

1 <?xml version='1.0' encoding="UTF-8"?>
2
3 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/bluetooth-guide.xml,v 1.13 2007/05/16 09:10:33 nightmorph Exp $ -->
5
6 <guide link="/doc/en/bluetooth-guide.xml">
7 <title>Gentoo Linux Bluetooth Guide</title>
8
9 <author title="Author">
10 <mail link="deathwing00@gentoo.org">Ioannis Aslanidis</mail>
11 </author>
12 <author title="Contributor">
13 <mail link="puggy@gentoo.org">Douglas Russell</mail>
14 </author>
15 <author title="Contributor">
16 <mail link="marcel@holtmann.org">Marcel Holtmann</mail>
17 </author>
18 <author title="Author">
19 <mail link="fox2mike@gentoo.org">Shyam Mani</mail>
20 </author>
21 <author title="Editor">
22 <mail link="rane@gentoo.org">Ɓukasz Damentko</mail>
23 </author>
24
25 <abstract>
26 This guide will explain how to successfully install a host Bluetooth device,
27 configure the kernel properly, explain all the possibilities that the Bluetooth
28 interconnection offers and how to have some fun with Bluetooth.
29 </abstract>
30
31 <!-- The content of this document is licensed under the CC-BY-SA license -->
32 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
33 <license/>
34
35 <version>1.10</version>
36 <date>2007-10-21</date>
37
38 <chapter id="introduction">
39 <title>Introduction</title>
40 <section>
41 <title>What is Bluetooth?</title>
42 <body>
43
44 <p>
45 Bluetooth is an industrial specification that provides users a way to connect
46 and exchange information between devices like personal computers, PDAs or
47 mobile phones. Using the Bluetooth technology, users can achieve wireless voice
48 and data transmission between devices at a low cost. Bluetooth also offers the
49 possibility to create small wireless LANs and to synchronize devices.
50 </p>
51
52 </body>
53 </section>
54 <section>
55 <title>About the content of this guide</title>
56 <body>
57
58 <p>
59 The first part of this guide is to identify qualified and non-qualified devices
60 that support the Bluetooth technology. This way, users can purchase Bluetooth
61 devices that are known to work. After that, the guide explains how to configure
62 the system kernel, identify the Bluetooth devices installed on the system and
63 detected by the kernel and install the necessary basic Bluetooth tools.
64 </p>
65
66 <p>
67 The second part covers how to detect remote devices and how to establish a
68 connection from or to them by either setting up radio frequency communication
69 (RFCOMM) or by setting up a personal area network (PAN).
70 </p>
71
72 <p>
73 The last part of the guide lists in detail applications that can take
74 advantage of all the possibilities offered by the Bluetooth technology.
75 </p>
76
77 </body>
78 </section>
79 </chapter>
80
81 <chapter id="devices">
82 <title>Supported Devices</title>
83 <section>
84 <title>Qualified and non-qualified devices that support Bluetooth</title>
85 <body>
86
87 <impo>
88 These products might work even though some are not qualified Bluetooth
89 products. Gentoo does not support them in any way, they might just work.
90 </impo>
91
92 <p>
93 A list of the currently supported devices can be found at: <uri
94 link="http://www.holtmann.org/linux/bluetooth/features.html">Bluetooth device
95 features and revision information by Marcel Holtmann</uri>.
96 </p>
97
98 </body>
99 </section>
100 </chapter>
101
102 <chapter id="kernel">
103 <title>Configuring the system</title>
104 <section>
105 <title>Kernel Configuration</title>
106 <body>
107
108 <p>
109 As the latest Linux stable kernel is 2.6, the configuration will be done for
110 these series of the kernel. Most Bluetooth devices are connected to a USB port,
111 so USB will be enabled too. Please refer to the <uri
112 link="/doc/en/usb-guide.xml"> Gentoo Linux USB Guide</uri>.
113 </p>
114
115 <pre caption="Configuration for 2.6 kernels">
116 Networking ---&gt;
117
118 &lt;*&gt; Bluetooth subsystem support ---&gt;
119
120 --- Bluetooth subsystem support
121 &lt;M&gt; L2CAP protocol support
122 &lt;M&gt; SCO links support
123 &lt;M&gt; RFCOMM protocol support
124 [*] RFCOMM TTY support
125 &lt;M&gt; BNEP protocol support
126 [*] Multicast filter support
127 [*] Protocol filter support
128 &lt;M&gt; HIDP protocol support
129
130 Bluetooth device drivers ---&gt;
131 &lt;M&gt; HCI USB driver
132 [*] SCO (voice) support
133 &lt;M&gt; HCI UART driver
134 [*] UART (H4) protocol support
135 [*] BCSP protocol support
136 [*] Transmit CRC with every BCSP packet
137 &lt;M&gt; HCI BCM203x USB driver
138 &lt;M&gt; HCI BPA10x USB driver
139 &lt;M&gt; HCI BlueFRITZ! USB driver
140 <comment>(The four drivers below are for PCMCIA Bluetooth devices and will only
141 show up if you have also selected PCMCIA support in your kernel.)</comment>
142 &lt;M&gt; HCI DTL1 (PC Card) driver
143 &lt;M&gt; HCI BT3C (PC Card) driver
144 &lt;M&gt; HCI BlueCard (PC Card) driver
145 &lt;M&gt; HCI UART (PC Card) device driver
146 <comment>(The driver below is intended for HCI Emulation software.)</comment>
147 &lt;M&gt; HCI VHCI (Virtual HCI device) driver
148
149 <comment>(Move back three levels to Device Drives and then check if USB is
150 enabled. This is required if you use a Bluetooth dongle, which are mostly USB
151 based.)</comment>
152 USB support ---&gt;
153
154 &lt;*&gt; Support for Host-side USB
155 --- USB Host Controller Drivers
156 &lt;M&gt; EHCI HCD (USB 2.0) support
157 [ ] Full speed ISO transactions (EXPERIMENTAL)
158 [ ] Root Hub Transaction Translators (EXPERIMENTAL)
159 &lt;*&gt; OHCI HCD support
160 &lt;*&gt; UHCI HCD (most Intel and VIA) support
161 &lt; &gt; SL811HS HCD support
162 </pre>
163
164 <p>
165 Now we'll reboot with our new kernel. If everything went fine, we will have a
166 system that is Bluetooth ready.
167 </p>
168
169 <impo>
170 Your USB device may have two modes the default of which may not be HCI, but HID.
171 If this is your case, use <c>hid2hci</c> to switch to HCI mode. Your system
172 will not remember this change when you next reboot.
173 </impo>
174
175 <pre caption="Checking the Bluetooth devices">
176 <comment>(One way to check for the device)</comment>
177 # <i>cat /proc/bus/usb/devices | grep -e^[TPD] | grep -e Cls=e0 -B1 -A1</i>
178 <comment>(The Cls=e0(unk. ) identifies the Bluetooth adapter.)</comment>
179 T: Bus=02 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 4 Spd=12 MxCh= 0
180 D: Ver= 1.10 Cls=e0(unk. ) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
181 P: Vendor=0a12 ProdID=0001 Rev= 5.25
182 <comment>(Some might show up on lsusb from sys-apps/usbutils)</comment>
183 # <i>lsusb</i>
184 Bus 003 Device 002: ID 046d:c00e Logitech, Inc. Optical Mouse
185 Bus 003 Device 001: ID 0000:0000
186 Bus 002 Device 002: ID 0db0:1967 Micro Star International Bluetooth Dongle
187 </pre>
188
189 </body>
190 </section>
191 </chapter>
192
193 <chapter id="bluez">
194 <title>BlueZ - The Bluetooth Stack</title>
195 <section>
196 <title>Installing BlueZ</title>
197 <body>
198
199 <p>
200 Now that the device is detected by the kernel, we need a layer that lets
201 applications communicate with the Bluetooth device. BlueZ provides the official
202 Linux Bluetooth stack. The ebuilds that provide what we need are
203 <c>bluez-libs</c> and <c>bluez-utils</c>. Devices that need Broadcom firmware
204 files or the like may need <c>bluez-firmware</c>.
205 </p>
206
207 <pre caption="Installing bluez-libs and bluez-utils">
208 # <i>emerge net-wireless/bluez-libs net-wireless/bluez-utils</i>
209 </pre>
210
211 </body>
212 </section>
213 <section>
214 <title>BlueZ configuration and PIN pairing</title>
215 <body>
216
217 <p>
218 Now it's time to see if the Bluetooth device is being picked up correctly by the
219 system. We start up the required Bluetooth services first.
220 </p>
221
222 <pre caption="Running hciconfig">
223 <comment>(Start up Bluetooth)</comment>
224 # <i>/etc/init.d/bluetooth start</i>
225 * Starting Bluetooth ...
226 * Starting hcid ... [ ok ]
227 * Starting sdpd ... [ ok ]
228 * Starting rfcomm ... [ ok ]
229
230 # <i>hciconfig</i>
231 hci0: Type: USB
232 BD Address: 00:01:02:03:04:05 ACL MTU: 192:8 SCO MTU: 64:8
233 DOWN
234 RX bytes:131 acl:0 sco:0 events:18 errors:0
235 TX bytes:565 acl:0 sco:0 commands:17 errors:0
236 </pre>
237
238 <p>
239 This shows that the Bluetooth device has been recognised. As you might have
240 noticed the device is <e>DOWN</e>. Let's configure it so that we can bring it
241 up. The configuration file is at <path>/etc/bluetooth/hcid.conf</path>. The
242 required changes to the config file are shown below. For additional details
243 please refer to <c>man hcid.conf</c>.
244 </p>
245
246 <pre caption="Editing /etc/bluetooth/hcid.conf">
247 <comment>(Recommended changes to be made to the file are shown)</comment>
248
249 # HCId options
250 options {
251 # Automatically initialize new devices
252 autoinit yes;
253
254 <comment>(Change security to "auto")</comment>
255 # Security Manager mode
256 # none - Security manager disabled
257 # auto - Use local PIN for incoming connections
258 # user - Always ask user for a PIN
259 #
260 security auto;
261
262 # Pairing mode
263 pairing multi;
264
265 <comment>(You only need a pin helper if you are using &lt;=bluez-libs-2.x and &lt;=bluez-utils-2.x)
266 (Change pin_helper to use /etc/bluetooth/pin-helper)</comment>
267 # PIN helper
268 pin_helper /etc/bluetooth/pin-helper;
269 }
270
271 # Default settings for HCI devices
272 device {
273 <comment>(Set your device name here, you can call it anything you want)</comment>
274 # Local device name
275 # %d - device id
276 # %h - host name
277 name "BlueZ at %h (%d)";
278
279 # Local device class
280 class 0x3e0100;
281
282 # Inquiry and Page scan
283 iscan enable; pscan enable;
284
285 # Default link mode
286 lm accept;
287
288 # Default link policy
289 lp rswitch,hold,sniff,park;
290
291 <comment>(Leave as is, if you don't know what exactly these do)</comment>
292 # Authentication and Encryption (Security Mode 3)
293 #auth enable;
294 #encrypt enable;
295 }
296 </pre>
297
298 <p>
299 After that, we have to configure the Bluetooth device PIN. That will help in
300 pairing this device with another one.
301 </p>
302
303 <pre caption="Editing /etc/bluetooth/pin">
304 <comment>(Replace 123456 with your desired pin number.)</comment>
305 123456
306 </pre>
307
308 <impo>
309 This number (of your choice) must be the same in all your hosts with Bluetooth
310 devices so they can be paired. This number must also be kept secret since anyone
311 with knowledge of this number can essentially establish connections with your
312 devices.
313 </impo>
314
315 <note>
316 If you are using <c>&lt;=bluez-libs-2.x</c> and <c>&lt;=bluez-utils-2.x</c> you
317 can choose from different pin helpers, depending on what you want to use.
318 Available pin helpers are: <c>/usr/lib/kdebluetooth/kbluepin</c>
319 (net-wireless/kdebluetooth), <c>/usr/bin/bluepin</c> or
320 <c>/etc/bluetooth/pin-helper</c> among others.
321 </note>
322
323 <note>
324 Beginning with <c>>=bluez-libs-3.x</c> and <c>>=bluez-utils-3.x</c>, pin helpers
325 have been replaced by passkey agents. There are a few different graphical
326 passkey agents available to help manage your PIN, such as <c>bluez-gnome</c> and
327 <c>kdebluetooth</c>. You can also use <c>passkey-agent</c> (found in
328 <c>bluez-utils</c>) from the command line.
329 </note>
330
331 </body>
332 </section>
333 <section>
334 <title>Services configuration</title>
335 <body>
336
337 <p>
338 Now that we have concluded with the configuration of BlueZ, it's time to restart
339 the necessary services.
340 </p>
341
342 <pre caption="Starting the Bluetooth daemons">
343 # <i>/etc/init.d/bluetooth restart</i>
344 <comment>(We can also add it to the default runlevel.)</comment>
345 # <i>rc-update add bluetooth default</i>
346 * bluetooth added to runlevel default
347 * rc-update complete.
348 </pre>
349
350 <p>
351 Let's be sure that the Bluetooth daemons started correctly. If we can see that
352 both <c>hcid</c> and <c>sdpd</c> are running, then we configured Bluetooth the
353 right way. After that, we can see if the devices are now up and running with
354 the configured options.
355 </p>
356
357 <pre caption="Checking whether Bluetooth daemons started correctly">
358 <comment>(Check to see if the services are running)</comment>
359 # <i>ps -ae | grep hcid</i>
360 26050 ? 00:00:00 hcid
361 # <i>ps -ae | grep sdpd</i>
362 26054 ? 00:00:00 sdpd
363
364 # <i>hciconfig -a</i>
365 hci0: Type: USB
366 BD Address: 00:0A:0B:0C:0D:0E ACL MTU: 192:8 SCO MTU: 64:8
367 UP RUNNING PSCAN ISCAN
368 RX bytes:125 acl:0 sco:0 events:17 errors:0
369 TX bytes:565 acl:0 sco:0 commands:17 errors:0
370 Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00
371 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
372 Link policy: RSWITCH HOLD SNIFF PARK
373 Link mode: SLAVE ACCEPT
374 Name: 'BlueZ at bluehat (0)'
375 Class: 0x3e0100
376 Service Classes: Networking, Rendering, Capturing, Object Transfer,
377 Audio
378 Device Class: Computer, Uncategorized
379 HCI Ver: 1.1 (0x1) HCI Rev: 0x1e7 LMP Ver: 1.1 (0x1) LMP Subver: 0x1e7
380 Manufacturer: Cambridge Silicon Radio (10)
381 </pre>
382
383 </body>
384 </section>
385 </chapter>
386
387 <chapter id="detect">
388 <title>Detecting and Connecting to Remote Devices</title>
389 <section>
390 <title>Detecting Bluetooth devices in other hosts</title>
391 <body>
392
393 <p>
394 At this point we are now ready to detect Bluetooth devices installed in other
395 machines. This is independent of the host Operating System. We will make use of
396 the <c>hcitool</c> command for the same.
397 </p>
398
399 <pre caption="Checking for local devices">
400 # <i>hcitool dev</i>
401 Devices:
402 hci0 00:01:02:03:04:05
403 </pre>
404
405 <pre caption="Scanning for remote devices">
406 # <i>hcitool scan</i>
407 Scanning ...
408 00:0A:0B:0C:0D:0E Grayhat
409 </pre>
410
411 <pre caption="Inquiring remote devices">
412 # <i>hcitool inq</i>
413 Inquiring ...
414 00:0A:0B:0C:0D:0E clock offset: 0x5579 class: 0x72010c
415 </pre>
416
417 <p>
418 Now that we know the MAC address of the remote Bluetooth devices, we can check
419 if we paired them correctly.
420 </p>
421
422 <pre caption="Running l2ping">
423 # <i>l2ping 00:0A:0B:0C:0D:0E</i>
424 Ping: 00:0A:0B:0C:0D:0E from 00:01:02:03:04:05 (data size 20) ...
425 20 bytes from 00:0A:0B:0C:0D:0E id 200 time 69.85ms
426 20 bytes from 00:0A:0B:0C:0D:0E id 201 time 9.97ms
427 20 bytes from 00:0A:0B:0C:0D:0E id 202 time 56.86ms
428 20 bytes from 00:0A:0B:0C:0D:0E id 203 time 39.92ms
429 4 sent, 4 received, 0% loss
430 </pre>
431
432 </body>
433 </section>
434 <section>
435 <title>Setting up Radio Frequency Communication (RFCOMM)</title>
436 <body>
437
438 <note>
439 Please note that setting up radio frequency communication is optional.
440 </note>
441
442 <p>
443 We can establish a radio frequency connection to another Bluetooth device using
444 the <c>rfcomm</c> command. To make things a little easier especially for users
445 with multiple devices that support Bluetooth, it is advisable to make a few
446 changes to the default rfcomm config at <path>/etc/bluetooth/rfcomm.conf</path>.
447 </p>
448
449 <p>
450 The whole segment of the config starting from <c>rfcomm0 {</c> and ending with
451 <c>}</c> is the config for the device that will establish a connection at
452 <path>/dev/rfcomm0</path>. In this case, we will only show one example, rfcomm0.
453 You can add more devices as you see fit.
454 </p>
455
456 <pre caption="Editing /etc/bluetooth/rfcomm.conf">
457 <comment>(Only changes that might be needed are shown)</comment>
458 rfcomm0 {
459 # Automatically bind the device at startup
460 <comment>(Creates the device node, /dev/rfcomm0 at start up)</comment>
461 bind yes;
462
463 # Bluetooth address of the device
464 <comment>(Enter the address of the device you want to connect to)</comment>
465 device 00:0A:0B:0C:0D:0E;
466
467 }
468 </pre>
469
470 <p>
471 After configuring RFCOMM, we can connect to any device. Since we've made the
472 required settings to the <path>/etc/bluetooth/rfcomm.conf</path> file, we just
473 issue the command shown below. In case you've not made changes to the config
474 file, an alternative method is also shown in the code listing that follows
475 </p>
476
477 <pre caption="Establishing an RFCOMM connection">
478 <comment>(The 0 refers to the rfcomm0 in the config file)</comment>
479 # <i>rfcomm connect 0 </i>
480 Connected /dev/rfcomm0 to 00:0A:0B:0C:0D:0E on channel 1
481 Press CTRL-C for hangup
482
483 <comment>(If you did not edit /etc/bluetooth/rfcomm.conf)</comment>
484 # <i>rfcomm connect 0 00:0A:0B:0C:0D:0E 1</i>
485 Connected /dev/rfcomm0 to 00:0F:DE:69:50:24 on channel 1
486 Press CTRL-C for hangup
487 </pre>
488
489 <p>
490 The first parameter after the connect command is the RFCOMM TTY device node
491 that will be used (usually 0). The second parameter is the MAC address of the
492 remote device. The third parameter is optional and specifies the channel to be
493 used. Please, note that in order to connect to a device, that device must be
494 listening for incoming connections. To do that, we have to explicitly tell it
495 to listen. We can cancel the communication at any moment by just hitting
496 CTRL+C.
497 </p>
498
499 <pre caption="Listening for incoming RFCOMM connections">
500 # <i>rfcomm listen 0 1</i>
501 Waiting for connection on channel 1
502 </pre>
503
504 <p>
505 In a similar way to the connect command, the listen command can receive two
506 parameters. The first one explicits the RFCOMM TTY device node (usually 0) that
507 will be used to accept a connection, while the second is the channel that will
508 be used.
509 </p>
510
511 <p>
512 Each time you call the <c>rfcomm</c> command, you can also specify the physical
513 device you want to use. Below you can see a small example specifiying the
514 physical device on the above two commands.
515 </p>
516
517 <pre caption="RFCOMM connections specifying physical device">
518 # <i>rfcomm -i hci0 listen 0 1</i>
519 Waiting for connection on channel 1
520 <comment>(To listen to a determined device) </comment>
521 # <i>rfcomm -i hci0 connect 0 00:0A:0B:0C:0D:0E 1</i>
522 <comment>(To use a determined device when connecting to another one)</comment>
523 </pre>
524
525 </body>
526 </section>
527 <section>
528 <title>Setting up a Personal Area Network (PAN)</title>
529 <body>
530
531 <note>
532 Please note that setting up a Personal Area Network is optional. This section
533 describes how to set up and connect to a Network Access Point, though setting
534 up a Group Ad-Hoc Network follows a similar way.
535 </note>
536
537 <p>
538 First of all, we need the <c>bnep</c> module loaded. And probably we want it
539 loaded each time the computer starts.
540 </p>
541
542 <pre caption="Loading the bnep module">
543 # <i>modprobe bnep</i>
544 # <i>echo "bnep" &gt;&gt; /etc/modules.autoload.d/kernel-2.6</i>
545 </pre>
546
547 <p>
548 We have to start the <c>pand</c> daemon in the host that will provide the NAP.
549 We'll have to specify that we want to provide a NAP service and that this host
550 will be the master, thus the other hosts that connect to it, the slaves.
551 Another possible service is GN (Group ad-hoc Network).
552 </p>
553
554 <pre caption="Running the pand daemon">
555 # <i>pand --listen --role NAP --master --autozap</i>
556 </pre>
557
558 <p>
559 After doing that, we have a host listening, so the rest of hosts just have to
560 connect to that one.
561 </p>
562
563 <pre caption="Connecting to the Network Access Point">
564 # <i>pand --connect 00:0A:0B:0C:0D:0E --service NAP --autozap</i>
565 </pre>
566
567 <p>
568 If everything went fine, we can now configure the IP addresses of our hosts.
569 </p>
570
571 <pre caption="bnep IP address configuration">
572 host0 #<i> ifconfig bnep0 192.168.2.1</i>
573 host1 #<i> ifconfig bnep0 192.168.2.2</i>
574
575 host0 #<i> ifconfig bnep0</i>
576 bnep0 Link encap:Ethernet HWaddr 00:0A:0B:0C:0D:0E
577 inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
578 inet6 addr: fe80::210:60ff:fea3:cb41/64 Scope:Link
579 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
580 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
581 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
582 collisions:0 txqueuelen:1000
583 RX bytes:208 (208.0 b) TX bytes:188 (188.0 b)
584
585 host1 #<i> ifconfig bnep0</i>
586 bnep0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
587 inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
588 inet6 addr: fe80::210:60ff:fea2:dd2a/64 Scope:Link
589 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
590 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
591 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
592 collisions:0 txqueuelen:1000
593 RX bytes:208 (208.0 b) TX bytes:188 (188.0 b)
594 </pre>
595
596 <p>
597 Finally, we can do a simple test to see that the network is working fine.
598 </p>
599
600 <pre caption="IP ping between bnep interfaces">
601 host1 #<i> ping 192.168.2.1</i>
602 PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
603 64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=34.0 ms
604 64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=37.3 ms
605
606 --- 192.168.2.1 ping statistics ---
607 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
608 rtt min/avg/max/mdev = 34.045/35.690/37.336/1.656 ms
609 </pre>
610
611 </body>
612 </section>
613 </chapter>
614
615 <chapter id="apps">
616 <title>Desktop Applications for Bluetooth</title>
617 <section>
618 <title>Introduction</title>
619 <body>
620
621 <p>
622 We have quite a few Bluetooth applications that run on the desktop and this
623 chapter has been divided into 3 parts, one each for Gnome, KDE and Miscellaneous
624 applications.
625 </p>
626
627 </body>
628 </section>
629 <section>
630 <title>For Gnome</title>
631 <body>
632
633 <p>
634 If you are a gnome user, you will most probably go with <c>gnome-bluetooth</c>.
635 It provides the most basic yet most used functionalities, as you can see below.
636 </p>
637
638 <ul>
639 <li><c>gnome-bluetooth-manager</c>: To manage Bluetooth remote devices.</li>
640 <li><c>gnome-obex-send</c>: To send files to other devices.</li>
641 <li><c>gnome-obex-server</c>: To receive files.</li>
642 </ul>
643
644 <pre caption="Installing gnome-bluetooth">
645 # <i>emerge gnome-bluetooth</i>
646 </pre>
647
648 <p>
649 This adds menu entries under Applications &gt; System Tools from where you can
650 easily start up the manager or File sharing to transfer files between devices.
651 </p>
652
653 <p>
654 To transfer files (the easy way):
655 </p>
656
657 <ul>
658 <li>
659 From the Phone to the Computer - Send the file from the phone via Bluetooth
660 and it will be picked up and saved to your <path>/home</path> always.
661 </li>
662 <!--FIXME : Doesn't work on Nautilus 2.10.x. Bug #103464 for details -->
663 <!--
664 <li>
665 From the Computer to the Phone - Fire up <c>nautilus</c> and select the
666 file you want to send and right click on it. Select the Send via Bluetooth
667 option and ask your phone to accept the file.
668 </li>
669 -->
670 </ul>
671
672 <p>
673 <c>gnome-phone-manager</c> is a nifty app that you can use to send and receive
674 messages to and from your phone, using only your system. You do not have to
675 touch your phone to read or send messages since all that happens through the
676 application. You are also notified of a new message on your screen if the option
677 is enabled under Preferences. Installation is a breeze as always.
678 </p>
679
680 <pre caption="Installing gnome-phone-manager">
681 # <i>emerge gnome-phone-manager</i>
682 </pre>
683
684 </body>
685 </section>
686 <section>
687 <title>For KDE</title>
688 <body>
689
690 <p>
691 KDE makes use of <c>kdebluetooth</c> and provides more utilities than its Gnome
692 counterpart as seen below.
693 </p>
694
695 <ul>
696 <li><c>kbluetoothd</c>: Bluetooth Meta Server.</li>
697 <li><c>kbtsearch</c>: Bluetooth device/service search utility.</li>
698 <li><c>khciconfig</c>: KDE Bluetooth Monitor.</li>
699 <li><c>kioclient</c>: KIO command line client.</li>
700 <li><c>qobexclient</c>: Swiss army knife for obex testing/development.</li>
701 <li><c>kbtobexclient</c>: A KDE Bluetooth Framework Application.</li>
702 <li><c>kioobex_start</c></li>
703 <li><c>kbtserialchat</c></li>
704 <li><c>kbemusedsrv</c>: KDE Bemused Server.</li>
705 <li><c>kbtobexsrv</c>: KDE OBEX Push Server for Bluetooth.</li>
706 <li><c>kbluepin</c>: A KDE KPart Application.</li>
707 <li>
708 <c>auth-helper</c>: A helper program for kbtobexsrv that sends an
709 authentication request for a given ACL link.
710 </li>
711 </ul>
712
713 <pre caption="Installing kdebluetooth">
714 # <i>emerge kdebluetooth</i>
715 </pre>
716
717 </body>
718 </section>
719 <section>
720 <title>Other Interesting Applications</title>
721 <body>
722
723 <ul>
724 <li>
725 <c>app-mobilephone/obexftp</c>: File transfer over OBEX for mobile phones
726 </li>
727 <li>
728 <c>app-mobilephone/bemused</c>: Bemused is a system which allows you to
729 control your music collection from your phone, using Bluetooth.
730 </li>
731 <li>
732 <c>app-pda/multisync</c>: Multisync allows you to sync contacts, calendar
733 entries and notes from your mobile phone with your computer, over a
734 Bluetooth connection (amongst other things). It includes such features as
735 backing up this information and restoring it later, and syncing with the
736 Evolution e-mail client. You will need the <c>irmc</c> USE flag set to
737 ensure that <c>multisync</c> has Bluetooth support.
738 </li>
739 <li>
740 <c>net-wireless/opd</c> and <c>net-wireless/ussp-push</c> are command line
741 tools (server and client) that can be used to send files to your mobile
742 phone.
743 </li>
744 </ul>
745
746 </body>
747 </section>
748 </chapter>
749
750 <chapter>
751 <title>Acknowledgements</title>
752 <section>
753 <body>
754
755 <p>
756 Special thanks to <mail link="marcel@holtmann.org">Marcel Holtmann</mail>
757 for his time and dedication to the Bluetooth development and for reviewing this
758 guide. And big thanks to <mail link="puggy@gentoo.org">Douglas Russell</mail>
759 for performing additional hardware tests and improving this guide.
760 </p>
761
762 </body>
763 </section>
764 </chapter>
765 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20