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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.2 Revision 1.12
1<?xml version='1.0' encoding="UTF-8"?> 1<?xml version='1.0' encoding="UTF-8"?>
2 2
3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/bluetooth-guide.xml,v 1.2 2005/08/27 09:19:30 swift Exp $ --> 4<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/bluetooth-guide.xml,v 1.12 2007/04/10 06:48:59 nightmorph Exp $ -->
5 5
6<guide link="/doc/en/bluetooth-guide.xml"> 6<guide link="/doc/en/bluetooth-guide.xml">
7<title>Gentoo Linux Bluetooth Guide</title> 7<title>Gentoo Linux Bluetooth Guide</title>
8 8
9<author title="Author"> 9<author title="Author">
13 <mail link="puggy@gentoo.org">Douglas Russell</mail> 13 <mail link="puggy@gentoo.org">Douglas Russell</mail>
14</author> 14</author>
15<author title="Contributor"> 15<author title="Contributor">
16 <mail link="marcel@holtmann.org">Marcel Holtmann</mail> 16 <mail link="marcel@holtmann.org">Marcel Holtmann</mail>
17</author> 17</author>
18<author title="Author/Editor"> 18<author title="Author">
19 <mail link="fox2mike@gentoo.org">Shyam Mani</mail> 19 <mail link="fox2mike@gentoo.org">Shyam Mani</mail>
20</author> 20</author>
21<author title="Editor"> 21<author title="Editor">
22 <mail link="rane@gentoo.org">Łukasz Damentko</mail> 22 <mail link="rane@gentoo.org">Łukasz Damentko</mail>
23</author> 23</author>
24 24
25<abstract> 25<abstract>
26This guide will explain how to successfully install a host Bluetooth device, 26This guide will explain how to successfully install a host Bluetooth device,
27configure the kernel properly, explain all the possibilities that the Bluetooth 27configure the kernel properly, explain all the possibilities that the Bluetooth
28interconnection offers and how to have some fun with Bluetooth. 28interconnection offers and how to have some fun with Bluetooth.
29</abstract> 29</abstract>
30 30
31<!-- The content of this document is licensed under the CC-BY-SA license --> 31<!-- The content of this document is licensed under the CC-BY-SA license -->
32<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> 32<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
33<license/> 33<license/>
34 34
35<version>1.0</version> 35<version>1.8</version>
36<date>2005-08-25</date> 36<date>2007-04-09</date>
37 37
38<chapter id="introduction"> 38<chapter id="introduction">
39<title>Introduction</title> 39<title>Introduction</title>
40<section> 40<section>
41<title>What is Bluetooth?</title> 41<title>What is Bluetooth?</title>
106<body> 106<body>
107 107
108<p> 108<p>
109As the latest Linux stable kernel is 2.6, the configuration will be done for 109As the latest Linux stable kernel is 2.6, the configuration will be done for
110these series of the kernel. Most Bluetooth devices are connected to a USB port, 110these series of the kernel. Most Bluetooth devices are connected to a USB port,
111so USB will be enabled too. If you want, you can use hotplugging in case you 111so USB will be enabled too. Please refer to the <uri
112want to use modules instead of compiling support built into the kernel. Please,
113refer to the <uri link="/doc/en/usb-guide.xml"> Gentoo Linux USB Guide</uri>. 112link="/doc/en/usb-guide.xml"> Gentoo Linux USB Guide</uri>.
114</p> 113</p>
115 114
116<pre caption="Configuration for 2.6 kernels"> 115<pre caption="Configuration for 2.6 kernels">
117Device Drivers ---&gt;
118 Networking Support ---&gt; 116Networking ---&gt;
119 117
120&lt;*&gt; Bluetooth subsystem support ---&gt; 118&lt;*&gt; Bluetooth subsystem support ---&gt;
121 119
122--- Bluetooth subsystem support 120--- Bluetooth subsystem support
123&lt;M&gt; L2CAP protocol support 121&lt;M&gt; L2CAP protocol support
142<comment>(The four drivers below are for PCMCIA Bluetooth devices and will only 140<comment>(The four drivers below are for PCMCIA Bluetooth devices and will only
143show up if you have also selected PCMCIA support in your kernel.)</comment> 141show up if you have also selected PCMCIA support in your kernel.)</comment>
144&lt;M&gt; HCI DTL1 (PC Card) driver 142&lt;M&gt; HCI DTL1 (PC Card) driver
145&lt;M&gt; HCI BT3C (PC Card) driver 143&lt;M&gt; HCI BT3C (PC Card) driver
146&lt;M&gt; HCI BlueCard (PC Card) driver 144&lt;M&gt; HCI BlueCard (PC Card) driver
147&lt;M&gt; HCI UART (PC Card) device driver 145&lt;M&gt; HCI UART (PC Card) device driver
148<comment>(The driver below is intended for HCI Emulation software.)</comment> 146<comment>(The driver below is intended for HCI Emulation software.)</comment>
149&lt;M&gt; HCI VHCI (Virtual HCI device) driver 147&lt;M&gt; HCI VHCI (Virtual HCI device) driver
150 148
151<comment>(Move back three levels to Device Drives and then check if USB is 149<comment>(Move back three levels to Device Drives and then check if USB is
152enabled. This is required if you use a Bluetooth dongle, which are mostly USB 150enabled. This is required if you use a Bluetooth dongle, which are mostly USB
178<comment>(One way to check for the device)</comment> 176<comment>(One way to check for the device)</comment>
179# <i>cat /proc/bus/usb/devices | grep -e^[TPD] | grep -e Cls=e0 -B1 -A1</i> 177# <i>cat /proc/bus/usb/devices | grep -e^[TPD] | grep -e Cls=e0 -B1 -A1</i>
180<comment>(The Cls=e0(unk. ) identifies the Bluetooth adapter.)</comment> 178<comment>(The Cls=e0(unk. ) identifies the Bluetooth adapter.)</comment>
181T: Bus=02 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 4 Spd=12 MxCh= 0 179T: Bus=02 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 4 Spd=12 MxCh= 0
182D: Ver= 1.10 Cls=e0(unk. ) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 180D: Ver= 1.10 Cls=e0(unk. ) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
183P: Vendor=0a12 ProdID=0001 Rev= 5.25 181P: Vendor=0a12 ProdID=0001 Rev= 5.25
184<comment>(Some might show up on lsusb from sys-apps/usbutils)</comment> 182<comment>(Some might show up on lsusb from sys-apps/usbutils)</comment>
185# <i>lsusb</i> 183# <i>lsusb</i>
186Bus 003 Device 002: ID 046d:c00e Logitech, Inc. Optical Mouse 184Bus 003 Device 002: ID 046d:c00e Logitech, Inc. Optical Mouse
187Bus 003 Device 001: ID 0000:0000 185Bus 003 Device 001: ID 0000:0000
188Bus 002 Device 002: ID 0db0:1967 Micro Star International Bluetooth Dongle 186Bus 002 Device 002: ID 0db0:1967 Micro Star International Bluetooth Dongle
209<pre caption="Installing bluez-libs and bluez-utils"> 207<pre caption="Installing bluez-libs and bluez-utils">
210# <i>emerge net-wireless/bluez-libs net-wireless/bluez-utils</i> 208# <i>emerge net-wireless/bluez-libs net-wireless/bluez-utils</i>
211</pre> 209</pre>
212 210
213<warn> 211<warn>
214Do not emerge <c>bluez-kernel</c> or <c>bluez-sdp</c> as they will break 212Do not emerge <c>bluez-sdp</c> as it will break <c>bluez-utils</c>!
215<c>bluez-utils</c>!
216</warn> 213</warn>
217
218<p>
219Additionally, as we have compiled the Bluetooth subsystem as modules, we will
220need hotplug and coldplug, which are explained in the <uri
221link="http://www.gentoo.org/doc/en/usb-guide.xml#doc_chap4_sect2">Gentoo Linux
222USB Guide</uri>.
223</p>
224
225<pre caption="Emerging hotplug and coldplug">
226# <i>emerge hotplug coldplug</i>
227# <i>rc-update add coldplug boot</i>
228</pre>
229 214
230</body> 215</body>
231</section> 216</section>
232<section> 217<section>
233<title>BlueZ configuration and PIN pairing</title> 218<title>BlueZ configuration and PIN pairing</title>
249# <i>hciconfig</i> 234# <i>hciconfig</i>
250hci0: Type: USB 235hci0: Type: USB
251 BD Address: 00:01:02:03:04:05 ACL MTU: 192:8 SCO MTU: 64:8 236 BD Address: 00:01:02:03:04:05 ACL MTU: 192:8 SCO MTU: 64:8
252 DOWN 237 DOWN
253 RX bytes:131 acl:0 sco:0 events:18 errors:0 238 RX bytes:131 acl:0 sco:0 events:18 errors:0
254 TX bytes:565 acl:0 sco:0 commands:17 errors:0 239 TX bytes:565 acl:0 sco:0 commands:17 errors:0
255</pre> 240</pre>
256 241
257<p> 242<p>
258This shows that the Bluetooth device has been recognised. As you might have 243This shows that the Bluetooth device has been recognised. As you might have
259noticed the device is <e>DOWN</e>. Let's configure it so that we can bring it 244noticed the device is <e>DOWN</e>. Let's configure it so that we can bring it
262please refer to <c>man hcid.conf</c>. 247please refer to <c>man hcid.conf</c>.
263</p> 248</p>
264 249
265<pre caption="Editing /etc/bluetooth/hcid.conf"> 250<pre caption="Editing /etc/bluetooth/hcid.conf">
266<comment>(Recommended changes to be made to the file are shown)</comment> 251<comment>(Recommended changes to be made to the file are shown)</comment>
252
253# HCId options
254options {
255 # Automatically initialize new devices
256 autoinit yes;
267 257
268<comment>(Change security to "auto")</comment> 258<comment>(Change security to "auto")</comment>
269 # Security Manager mode 259 # Security Manager mode
270 # none - Security manager disabled 260 # none - Security manager disabled
271 # auto - Use local PIN for incoming connections 261 # auto - Use local PIN for incoming connections
272 # user - Always ask user for a PIN 262 # user - Always ask user for a PIN
273 # 263 #
274 security auto; 264 security auto;
275 265
266 # Pairing mode
267 pairing multi;
268
276<comment>(Change pin_helper to use /etc/bluetooth/pin-helper)</comment> 269<comment>(Change pin_helper to use /etc/bluetooth/pin-helper)</comment>
277 # PIN helper 270 # PIN helper
278 pin_helper /etc/bluetooth/pin-helper; 271 pin_helper /etc/bluetooth/pin-helper;
272}
279 273
274# Default settings for HCI devices
275device {
280<comment>(Set your device name here, you can call it anything you want)</comment> 276<comment>(Set your device name here, you can call it anything you want)</comment>
281 # Local device name 277 # Local device name
282 # %d - device id 278 # %d - device id
283 # %h - host name 279 # %h - host name
284 name "BlueZ at %h (%d)"; 280 name "BlueZ at %h (%d)";
281
282 # Local device class
283 class 0x3e0100;
284
285 # Inquiry and Page scan
286 iscan enable; pscan enable;
287
288 # Default link mode
289 lm accept;
290
291 # Default link policy
292 lp rswitch,hold,sniff,park;
285 293
286<comment>(Leave as is, if you don't know what exactly these do)</comment> 294<comment>(Leave as is, if you don't know what exactly these do)</comment>
287 # Authentication and Encryption (Security Mode 3) 295 # Authentication and Encryption (Security Mode 3)
288 #auth enable; 296 #auth enable;
289 #encrypt enable; 297 #encrypt enable;
334</pre> 342</pre>
335 343
336<p> 344<p>
337Let's be sure that the Bluetooth daemons started correctly. If we can see that 345Let's be sure that the Bluetooth daemons started correctly. If we can see that
338both <c>hcid</c> and <c>sdpd</c> are running, then we configured Bluetooth the 346both <c>hcid</c> and <c>sdpd</c> are running, then we configured Bluetooth the
339right way. After that, we can see if the decices are now up and running with 347right way. After that, we can see if the devices are now up and running with
340the configured options. 348the configured options.
341</p> 349</p>
342 350
343<pre caption="Checking whether Bluetooth daemons started correctly"> 351<pre caption="Checking whether Bluetooth daemons started correctly">
344<comment>(Check to see if the services are running)</comment> 352<comment>(Check to see if the services are running)</comment>
34826054 ? 00:00:00 sdpd 35626054 ? 00:00:00 sdpd
349 357
350# <i>hciconfig -a</i> 358# <i>hciconfig -a</i>
351hci0: Type: USB 359hci0: Type: USB
352 BD Address: 00:0A:0B:0C:0D:0E ACL MTU: 192:8 SCO MTU: 64:8 360 BD Address: 00:0A:0B:0C:0D:0E ACL MTU: 192:8 SCO MTU: 64:8
353 UP RUNNING PSCAN ISCAN AUTH ENCRYPT 361 UP RUNNING PSCAN ISCAN
354 RX bytes:125 acl:0 sco:0 events:17 errors:0 362 RX bytes:125 acl:0 sco:0 events:17 errors:0
355 TX bytes:565 acl:0 sco:0 commands:17 errors:0 363 TX bytes:565 acl:0 sco:0 commands:17 errors:0
356 Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00 364 Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00
357 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 365 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
358 Link policy: RSWITCH HOLD SNIFF PARK 366 Link policy: RSWITCH HOLD SNIFF PARK
389</pre> 397</pre>
390 398
391<pre caption="Scanning for remote devices"> 399<pre caption="Scanning for remote devices">
392# <i>hcitool scan</i> 400# <i>hcitool scan</i>
393Scanning ... 401Scanning ...
394 00:0A:0B:0C:0D:0E Grayhat 402 00:0A:0B:0C:0D:0E Grayhat
395</pre> 403</pre>
396 404
397<pre caption="Inquiring remote devices"> 405<pre caption="Inquiring remote devices">
398# <i>hcitool inq</i> 406# <i>hcitool inq</i>
399Inquiring ... 407Inquiring ...
400 00:0A:0B:0C:0D:0E clock offset: 0x5579 class: 0x72010c 408 00:0A:0B:0C:0D:0E clock offset: 0x5579 class: 0x72010c
401</pre> 409</pre>
402 410
403<p> 411<p>
404Now that we now the MAC address of the remote Bluetooth devices, we can check 412Now that we know the MAC address of the remote Bluetooth devices, we can check
405if we paired them correctly. 413if we paired them correctly.
406</p> 414</p>
407 415
408<pre caption="Running l2ping"> 416<pre caption="Running l2ping">
409# <i>l2ping 00:0A:0B:0C:0D:0E</i> 417# <i>l2ping 00:0A:0B:0C:0D:0E</i>
410Ping: 00:0A:0B:0C:0D:0E from 00:01:02:03:04:05 (data size 20) ... 418Ping: 00:0A:0B:0C:0D:0E from 00:01:02:03:04:05 (data size 20) ...
41120 bytes from 00:0A:0B:0C:0D:0E id 200 time 69.85ms 41920 bytes from 00:0A:0B:0C:0D:0E id 200 time 69.85ms
41220 bytes from 00:0A:0B:0C:0D:0E id 201 time 9.97ms 42020 bytes from 00:0A:0B:0C:0D:0E id 201 time 9.97ms
41320 bytes from 00:0A:0B:0C:0D:0E id 202 time 56.86ms 42120 bytes from 00:0A:0B:0C:0D:0E id 202 time 56.86ms
41420 bytes from 00:0A:0B:0C:0D:0E id 203 time 39.92ms 42220 bytes from 00:0A:0B:0C:0D:0E id 203 time 39.92ms
4154 sent, 4 received, 0% loss 4234 sent, 4 received, 0% loss
416</pre> 424</pre>
417 425
418</body> 426</body>
419</section> 427</section>
420<section> 428<section>
448 456
449 # Bluetooth address of the device 457 # Bluetooth address of the device
450 <comment>(Enter the address of the device you want to connect to)</comment> 458 <comment>(Enter the address of the device you want to connect to)</comment>
451 device 00:0A:0B:0C:0D:0E; 459 device 00:0A:0B:0C:0D:0E;
452 460
453} 461}
454</pre> 462</pre>
455 463
456<p> 464<p>
457After configuring RFCOMM, we can connect to any device. Since we've made the 465After configuring RFCOMM, we can connect to any device. Since we've made the
458required settings to the <path>/etc/bluetooth/rfcomm.conf</path> file, we just 466required settings to the <path>/etc/bluetooth/rfcomm.conf</path> file, we just
482CTRL+C. 490CTRL+C.
483</p> 491</p>
484 492
485<pre caption="Listening for incoming RFCOMM connections"> 493<pre caption="Listening for incoming RFCOMM connections">
486# <i>rfcomm listen 0 1</i> 494# <i>rfcomm listen 0 1</i>
487Waiting for connection on channel 1 495Waiting for connection on channel 1
488</pre> 496</pre>
489 497
490<p> 498<p>
491In a similar way to the connect command, the listen command can receive two 499In a similar way to the connect command, the listen command can receive two
492parameters. The first one explicits the RFCOMM TTY device node (usually 0) that 500parameters. The first one explicits the RFCOMM TTY device node (usually 0) that
493will be used to accept a connection, while the second is the channel that will 501will be used to accept a connection, while the second is the channel that will
494be used. 502be used.
495</p> 503</p>
496 504
497<p> 505<p>
498Each time you call the <c>rfcomm</c> command, you can also specify the physical 506Each time you call the <c>rfcomm</c> command, you can also specify the physical
499device you want to use. Below you can see a small example specifiying the 507device you want to use. Below you can see a small example specifiying the
557<pre caption="bnep IP address configuration"> 565<pre caption="bnep IP address configuration">
558host0 #<i> ifconfig bnep0 192.168.2.1</i> 566host0 #<i> ifconfig bnep0 192.168.2.1</i>
559host1 #<i> ifconfig bnep0 192.168.2.2</i> 567host1 #<i> ifconfig bnep0 192.168.2.2</i>
560 568
561host0 #<i> ifconfig bnep0</i> 569host0 #<i> ifconfig bnep0</i>
562bnep0 Link encap:Ethernet HWaddr 00:0A:0B:0C:0D:0E 570bnep0 Link encap:Ethernet HWaddr 00:0A:0B:0C:0D:0E
563 inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0 571 inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
564 inet6 addr: fe80::210:60ff:fea3:cb41/64 Scope:Link 572 inet6 addr: fe80::210:60ff:fea3:cb41/64 Scope:Link
565 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 573 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
566 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 574 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
567 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0 575 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
568 collisions:0 txqueuelen:1000 576 collisions:0 txqueuelen:1000
569 RX bytes:208 (208.0 b) TX bytes:188 (188.0 b) 577 RX bytes:208 (208.0 b) TX bytes:188 (188.0 b)
570 578
571host1 #<i> ifconfig bnep0</i> 579host1 #<i> ifconfig bnep0</i>
572bnep0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 580bnep0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
573 inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0 581 inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
574 inet6 addr: fe80::210:60ff:fea2:dd2a/64 Scope:Link 582 inet6 addr: fe80::210:60ff:fea2:dd2a/64 Scope:Link
575 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 583 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
576 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 584 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
577 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0 585 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
58964 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=34.0 ms 59764 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=34.0 ms
59064 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=37.3 ms 59864 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=37.3 ms
591 599
592--- 192.168.2.1 ping statistics --- 600--- 192.168.2.1 ping statistics ---
5932 packets transmitted, 2 received, 0% packet loss, time 1000ms 6012 packets transmitted, 2 received, 0% packet loss, time 1000ms
594rtt min/avg/max/mdev = 34.045/35.690/37.336/1.656 ms 602rtt min/avg/max/mdev = 34.045/35.690/37.336/1.656 ms
595</pre> 603</pre>
596 604
597</body> 605</body>
598</section> 606</section>
599</chapter> 607</chapter>
635This adds menu entries under Applications &gt; System Tools from where you can 643This adds menu entries under Applications &gt; System Tools from where you can
636easily start up the manager or File sharing to transfer files between devices. 644easily start up the manager or File sharing to transfer files between devices.
637</p> 645</p>
638 646
639<p> 647<p>
640To transfer files (the easy way): 648To transfer files (the easy way):
641</p> 649</p>
642 650
643<ul> 651<ul>
644 <li> 652 <li>
645 From the Phone to the Computer - Send the file from the phone via Bluetooth 653 From the Phone to the Computer - Send the file from the phone via Bluetooth
721 backing up this information and restoring it later, and syncing with the 729 backing up this information and restoring it later, and syncing with the
722 Evolution e-mail client. You will need the <c>irmc</c> USE flag set to 730 Evolution e-mail client. You will need the <c>irmc</c> USE flag set to
723 ensure that <c>multisync</c> has Bluetooth support. 731 ensure that <c>multisync</c> has Bluetooth support.
724 </li> 732 </li>
725 <li> 733 <li>
726 <c>media-plugins/xmms-btexmms</c>: Btexmms is an XMMS plugin that allows 734 <c>net-wireless/opd</c> and <c>net-wireless/ussp-push</c> are command line
727 you to use your Bluetooth-enabled (Sony) Ericsson mobile phone as a remote 735 tools (server and client) that can be used to send files to your mobile
728 control for XMMS. 736 phone.
729 </li> 737 </li>
730</ul> 738</ul>
731 739
732</body> 740</body>
733</section> 741</section>

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.20