BlueZ
読み:ブルーズ
外語:BlueZ
Linux
で標準的に使われている
Bluetooth
プロトコルスタックの実装。
目次
概要
特徴
仕様
機能
対応
物理層(HCIとの接続点)
主なプロトコル
対応プロファイル
概要
LinuxにもBluetoothスタックはいくつかあるが、BlueZはLinux 2.4.6から正式採用となった。
BlueZはBlueZプロジェクトにより開発されており、GPLv2で提供されている。
Android
のソースでは、external/bluetooth/bluez 以下にソースが一式存在する。
特徴
次のような特徴がある。
GPLv2
Linux、BSD、Solarisなどで動作する
C
で書かれている
以下を提供している。
Linuxの
カーネルモジュール
ユーザー空間ライブラリ
ユーティリティー
カーネルモジュールは、Socketを提供する
int skt = socket( AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI );
仕様
機能
BSDソケットインターフェイス準拠のAPIを提供し、UNIXなどの他の実装と同様に、Bluetoothをファイルのように扱うことができる。
実装は複数のレイヤーに分けられているが、それぞれについて、ソケットを通じ、各層においてbind、connect、send、recvなどの操作が利用でき、また各層に対して
ioctl
、setsockopt、getsockoptなどによる制御が利用できる。
対応
ハードウェア層から上位層まであるが、概ね次のような環境に対応している。
物理層(HCIとの接続点)
UART
USB
PCMCIA
HCI Emulation
主なプロトコル
HCI Core
ACL
SCO
GAP
L2CAP
RFCOMM
SDP
対応プロファイル
BlueZの実装
オーディオ系
A2DP
1.2
AVRCP
1.3
ヘッドセット系
HFP
1.5
その他
DI 1.3
HDP
1.0
HIDP
1.0
PAN
1.0
SPP
1.1
Obexdパッケージによる実装
FTP 1.1
OPP
1.1
PBAP
1.1
MAP
1.0
GATT(LE)プロファイル
PXP 1.0
HTP 1.0
再検索