Bluetooth
From ArmadeusWiki
Page under construction... 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.
Contents
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 | 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) |
TRUST - Bluetooth 2.1 USB Adapter | TBT | KO | Product: BCM2046B1 Manufacturer: Broadcom |
# hciconfig hci1 up piscan
btusb_submit_intr_urb: hci1 urb c3bdac40 submission failed (28) |
RUEDUCOMMERCE - Mini adaptateur USB Bluetooth | TBT | OK | Manufacturer: Cambridge Silicon Radio | |
GIGABYTE - GN-BTD01 | TBT | OK | Manufacturer: Cambridge Silicon Radio | Bluetooth 1.1 ? |
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
Terminal through bluetooth
On the APF :
- the first step is to create the corresponding node for the future connection :
# mknod /dev/rfcomm0 c 216 0
- next, create an incomming 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 :
# rfcomm connect 0 addr 7
- and configure minicom :
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.
Scanning network
# hcitool scan Scanning ...