/[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.9 - (hide annotations) (download) (as text)
Mon Nov 27 00:16:17 2006 UTC (8 years, 6 months ago) by nightmorph
Branch: MAIN
Changes since 1.8: +12 -3 lines
File MIME type: application/xml
updated bluetooth guide for bug 156335

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

  ViewVC Help
Powered by ViewVC 1.1.20