Difference between revisions of "Bluetooth"

From ArmadeusWiki
Jump to: navigation, search
(Tested hardware)
(Add some precision to terminal through Bluetooth)
Line 123: Line 123:
 
</pre>
 
</pre>
  
===Terminal through bluetooth===
+
===Scanning network===
 +
<pre class="apf">
 +
# hcitool scan
 +
Scanning ...
 +
</pre>
 +
 
 +
===Setup a Terminal between a PC and your APF through Bluetooth===
 
On the APF :
 
On the APF :
* the first step is to create the corresponding node for the future connection :
+
* the first step is to create the corresponding node for the future connection:
 
<pre class="apf">
 
<pre class="apf">
 
# mknod /dev/rfcomm0 c 216 0
 
# mknod /dev/rfcomm0 c 216 0
 
</pre>
 
</pre>
* next, create an incomming connection, on the rfcomm0 channel 7 :
+
* then, listen to an incoming connection, on the rfcomm0 channel 7:
 
<pre class="apf">
 
<pre class="apf">
# rfcomm -i hci0 listen /dev/rfcomm0 7&
+
# rfcomm -i hci0 listen /dev/rfcomm0 7 &
 
</pre>
 
</pre>
* and the last step, when the connection is open, is to connect a terminal (through getty) to the node /dev/rfcomm0 :
+
* and the last step, when the connection is open, is to connect a terminal (through getty) to the node ''/dev/rfcomm0'':
 
<pre class="apf">
 
<pre class="apf">
 
# getty 38400 /dev/rfcomm0
 
# getty 38400 /dev/rfcomm0
Line 139: Line 145:
  
 
On the PC :
 
On the PC :
*after the two first steps on the APF, you need to connect the PC to the APF with the same channel :
+
*after the two first steps on the APF, you need to connect the PC to the APF with the same channel (7):
<pre class="apf">
+
<pre class="host">
# rfcomm connect 0 addr 7
+
$ rfcomm connect 0 00:19:88:2B:xx:xx 7             (replace 00:19:88:2B:xx:xx with the Bluetooth @ of your APF)
 
</pre>
 
</pre>
* and configure minicom :
+
* and configure minicom (''$HOME/.minirc.dfl''):
 
  pu port            /dev/rfcomm0
 
  pu port            /dev/rfcomm0
 
  pu baudrate        38400
 
  pu baudrate        38400
Line 149: Line 155:
 
  pu parity          N
 
  pu parity          N
 
  pu stopbits        1
 
  pu stopbits        1
* when getty is running on the APF, you could you connect with minicom.
+
* when getty is running on the APF, you could you connect with minicom:
 
+
<pre class="host">
===Scanning network===
+
$ minicom -o
<pre class="apf">
+
# hcitool scan
+
Scanning ...
+
 
</pre>
 
</pre>
  

Revision as of 21:58, 23 April 2010

Page under construction... Construction.png Informations on this page are not guaranteed !!

This page will give you all the informations needed to have a running Bluetooth configuration on your Armadeus board.

Hardware

First you have to get a compatible hardware. Currently there are 3 solutions:

  • Get a Wireless extension board from armadeus systems (only available for APF27)
  • Get a cheap USB<->Bluetooth adapter (requires an USB Host port)
  • Get a RS232<->Bluetooth adapter

Tested hardware

Model Status
APF9328 / APF27
Chipset Comments
BELKIN - Mini Bluetooth Adapter Belkin Mini Bluetooth.jpg TBT KO Product: BLUETOOTH USB +EDR ADAPTER v2.1 UHE
Manufacturer: Broadcom Corp
# hciconfig hci1 up piscan

btusb_submit_intr_urb: hci1 urb c3bdac40 submission failed (28)
Can't init device hci1: Input/output error (5)

TRUST - Bluetooth 2.1 USB Adapter Trust Small Bluetooth.jpg TBT KO Product: BCM2046B1
Manufacturer: Broadcom
# hciconfig hci1 up piscan

btusb_submit_intr_urb: hci1 urb c3bdac40 submission failed (28)
Can't init device hci1: Input/output error (5)

RUEDUCOMMERCE - Mini adaptateur USB Bluetooth RDC USB Bluetooth.jpg TBT OK Manufacturer: Cambridge Silicon Radio
GIGABYTE - GN-BTD01 Gigabyte gn-btd01.jpg TBT OK Manufacturer: Cambridge Silicon Radio Bluetooth 1.1 ?
BELKIN - F8T003 v2 TBT OK Manufacturer: Cambridge Silicon Radio

Software

Bluetooth Linux stack is divided into several parts:

  • kernel drivers
  • userland libraries/daemon (bluez)

Driver installation

  • (Done by default on APF27)
$ make linux26-menuconfig
[*] Networking support  --->
    <M>   Bluetooth subsystem support  --->
        --- Bluetooth subsystem support
            <M>   L2CAP protocol support 
            <M>   SCO links support
            <M>   RFCOMM protocol support
                [*]     RFCOMM TTY support
            <M>   BNEP protocol support
                [ ]     Multicast filter support (NEW)
                [ ]     Protocol filter support (NEW)
            <M>   HIDP protocol support
            Bluetooth device drivers  --->
                <M> HCI USB driver 
                < > HCI SDIO driver (NEW)
                <M> HCI UART driver
                    [*]   UART (H4) protocol support 
                    [*]   BCSP protocol support 
                    [ ]   HCILL protocol support (NEW)
                < > HCI BCM203x USB driver (NEW)
                < > HCI BPA10x USB driver (NEW)
                < > HCI BlueFRITZ! USB driver (NEW)
                < > HCI VHCI (Virtual HCI device) driver (NEW)
$ make

Bluez installation

$ make menuconfig
Package Selection for the target  --->
    ...
    [*] XML handling  --->
        [*]   libxml2
    ...
    [*] Hardware handling / blockdevices and filesystem maintenance  --->
        [*]   dbus
              XML library to use (libxml2)
    ...
    *** Armadeus specific packages ***
    [*] bluez
$ make

Usage

Bring up

  • Make sure your hardware is connected to the APF. If using an USB dongle, load corresponding driver:
# modprobe btusb
Bluetooth: Core ver 2.14
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: Generic Bluetooth USB driver ver 0.4
usbcore: registered new interface driver btusb
  • Check if Bluetooth interface was detected:
# hciconfig
hci0:   Type: USB
        BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
        DOWN
        RX bytes:0 acl:0 sco:0 events:0 errors:0
        TX bytes:0 acl:0 sco:0 commands:0 errors:0
  • If interface is DOWN, bring it up:
# hciconfig hci0 up piscan
  • Check your Bluetooth device is correctly initialized:
# hcitool dev
Devices:
        hci0    00:10:60:D1:92:0F

Scanning network

# hcitool scan
Scanning ...

Setup a Terminal between a PC and your APF through Bluetooth

On the APF :

  • the first step is to create the corresponding node for the future connection:
# mknod /dev/rfcomm0 c 216 0
  • then, listen to an incoming connection, on the rfcomm0 channel 7:
# rfcomm -i hci0 listen /dev/rfcomm0 7 &
  • and the last step, when the connection is open, is to connect a terminal (through getty) to the node /dev/rfcomm0:
# getty 38400 /dev/rfcomm0

On the PC :

  • after the two first steps on the APF, you need to connect the PC to the APF with the same channel (7):
$ rfcomm connect 0 00:19:88:2B:xx:xx 7             (replace 00:19:88:2B:xx:xx with the Bluetooth @ of your APF)
  • and configure minicom ($HOME/.minirc.dfl):
pu port             /dev/rfcomm0
pu baudrate         38400
pu bits             8
pu parity           N
pu stopbits         1
  • when getty is running on the APF, you could you connect with minicom:
$ minicom -o

Links