/[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.6 - (show annotations) (download) (as text)
Thu Mar 2 23:59:29 2006 UTC (8 years, 4 months ago) by neysx
Branch: MAIN
Changes since 1.5: +27 -4 lines
File MIME type: application/xml
#124710 Fix config file and a minor error

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

  ViewVC Help
Powered by ViewVC 1.1.20