2012年7月19日木曜日

【.tested】Logitec製 Bluetoothアダプタ (LBT-UAN03C1BK) [AX3]



ma2shitaです。
Logitec製 Bluetoothアダプタ「LBT-UAN03C1BK」の動作検証を、OpenBlocks AX3上で行いました。

ChangeLog:

2012/7/26 ma2shita
  • 全体: apt-get → aptitudeへ変更した
  • 全体: コンソールからの入力をボールドにした
  • bluezのインストール: bluezパッケージ同梱のpythonスクリプトを動かすためのパッケージpython-gobjectが足りなかったので追記した
  • ペアリング: 0000や1234で固定されている場合の挙動について追記
  • 後継品 LBT-UAN04C1での検証を行い、同様の手順での動作を確認しました。
OBDN技術ブログによる動作検証は、該当するハードウェア・ソフトウェアの動作を保証およびサポートを行うものではありません。詳しくは周辺機器動作検証に関してをご覧ください。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。

LBT-UAN03C1BKについて

Bluetooth 3.0、出力クラスはClass1と、申し分の無いスペックに加え、超小型&低消費電力であることが特徴のUSB接続Bluetoothアダプタです。
[写真1:パッケージと中身]

検証環境

OpenBlocks AX3/4 (Debian 6.0.5 / kernel 3.0.6)
OpenBlocks A6 → 検証中

使用方法(ペアリングまで)

LBT-UAN03C1BKは、挿すだけで認識されます。
実際に使うためにはいくつかパッケージを導入する必要がありますが、aptでインストールできるので非常に簡単です。
[写真2:OpenBlocks AX3にLBT-UAN03C1BKを挿したところ]
# dmesg
~snip~
usb 1-1: new full speed USB device number 2 using ehci_marvell
usb 1-1: New USB device found, idVendor=21ee, idProduct=1100
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: Broadcom Bluetooth V3.0 USB Device
usb 1-1: Manufacturer: Broadcom Corp
usb 1-1: SerialNumber: XXXXXXXXXXXX
Bluetooth: Generic Bluetooth USB driver ver 0.6
usbcore: registered new interface driver btusb

bluezのインストール

Bluetooth機器の操作は、bluezパッケージに入っているコマンドを利用することになります。
# aptitude -R install bluez python-dbus python-gobject
python-*は、ペアリングなどを行うスクリプトを動かすために必要です。

インターフェイスの確認・設定

Bluetooth機器はhciXというデバイス名(インターフェイス名)で扱います。
hciXインターフェイスの確認や設定はhciconfigコマンドを使用します。(NICに対するifconfigの関係に似ています)
# hciconfig -a
hci0:   Type: BR/EDR  Bus: USB
    BD Address: 00:XX:XX:XX:XX:XX  ACL MTU: 1021:8  SCO MTU: 64:1
    UP RUNNING PSCAN 
    RX bytes:1117 acl:0 sco:0 events:41 errors:0
    TX bytes:1626 acl:0 sco:0 commands:41 errors:0
    Features: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0x79 0x87
    Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
    Link policy: RSWITCH HOLD SNIFF PARK 
    Link mode: SLAVE ACCEPT 
    Name: 'obsax3-0'
    Class: 0x4a0100
    Service Classes: Networking, Capturing, Telephony
    Device Class: Computer, Uncategorized
    HCI Version: 3.0 (0x5)  Revision: 0x0
    LMP Version: 3.0 (0x5)  Subversion: 0x4203
    Manufacturer: Broadcom Corporation (15)
# hciconfig hci0 revision
hci0:   Type: BR/EDR  Bus: USB
    BD Address: 00:XX:XX:XX:XX:XX  ACL MTU: 1021:8  SCO MTU: 64:1
    Firmware 0.66 / 3
# hciconfig hci0 features
hci0:   Type: BR/EDR  Bus: USB
    BD Address: 00:XX:XX:XX:XX:XX  ACL MTU: 1021:8  SCO MTU: 64:1
    Features page 0: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0x79 0x87
        <3-slot packets> <5-slot packets> <encryption> <slot offset> 
        <timing accuracy> <role switch> <hold mode> <sniff mode> 
        <park state> <RSSI> <channel quality> <SCO link> <HV2 packets> 
        <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> 
        <power control> <transparent SCO> <broadcast encrypt> 
        <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> 
        <interlaced iscan> <interlaced pscan> <inquiry with RSSI> 
        <extended SCO> <EV4 packets> <EV5 packets> <AFH cap. slave> 
        <AFH class. slave> <3-slot EDR ACL> <5-slot EDR ACL> 
        <sniff subrating> <pause encryption> <AFH cap. master> 
        <AFH class. master> <EDR eSCO 2 Mbps> <EDR eSCO 3 Mbps> 
        <3-slot EDR eSCO> <extended inquiry> <simple pairing> 
        <encapsulated PDU> <err. data report> <non-flush flag> <LSTO> 
        <inquiry TX power> <EPC> <extended features> 
    Features page 1: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00

動作確認

hciXの操作はhcitoolコマンドを使用します。
周辺のBluetooth機器を探索してみます。
# hcitool scan
Scanning ...
    00:XX:XX:XX:XX:XX   XXXXXXX
    00:XX:XX:XX:XX:XX   XXXXXXXX
    00:XX:XX:XX:XX:XX   XXXXXX の Mac mini
    78:XX:XX:XX:XX:XX   XXXXXXX
    00:XX:XX:XX:XX:XX   XXXXX   
    78:XX:XX:XX:XX:XX   XXXXXXXXXX

ペアリング

ペアリング操作は、bluezパッケージに含まれるsimple-agentコマンドを使用します。(このためにpython-dbusが必要です)
ペアリング対象機器をペアリング待ち受け状態にした上で、simple-agentを実行します。
Enter PIN Code:は任意の四桁以上の数字を入力してください。すると、ペアリング対象機器で同じPINの入力を求められます。
# /usr/share/doc/bluez/examples/simple-agent hci0 BTADDR
RequestPinCode (/org/bluez/2332/hci0/dev_A0_XX_XX_XX_XX_XX)
Enter PIN Code: *
Release
New device (/org/bluez/2332/hci0/dev_A0_XX_XX_XX_XX_XX)
※PIN codeが00001234等で固定されている場合、PIN codeの入力なしにペアリングが完了する場合があります。
ペアリング済機器はtest-deviceコマンドで見ることができます。
ペアリング前
# /usr/share/doc/bluez/examples/test-device list
dbus.Array([], signature=dbus.Signature('o'))
ペアリング後
# /usr/share/doc/bluez/examples/test-device list
dbus.Array([dbus.ObjectPath('/org/bluez/2332/hci0/dev_A0_XX_XX_XX_XX_XX')], signature=dbus.Signature('o'))
ペアリングの削除もtest-deviceコマンドです。
# /usr/share/doc/bluez/examples/test-device remove BTADDR
※ペアリング対象機器側の登録削除もお忘れなく。

/usr/share/doc/bluez/examples/* と D-Busについて

bluezはBluetooth関連の情報をD-Busを使ってやりとりしています。
そのため、dbus-sendコマンドを使用すれば細かな制御が可能ですが、 難しいのでラッパースクリプトとして /usr/share/doc/bluez/examples/*スクリプト群があるようです。

利用方法(DUN): 3G携帯電話をモデムとして使う

AQUOS SHOT SoftBank 002SHをDUNモデムとして使えるようにします。
具体的にはrfcommコマンドで/dev/rfcommXデバイスを作り、それを利用して通信します。
注意:ペアリングは済ませておいてください。
# rfcomm connect hci0 BTADDR
これで、/dev/rfcommXデバイスができているはずです。別セッションから確認します。
# ls -lF /dev/rfcomm*
crw-rw---- 1 root dialout 216, 0 Jul 19 17:51 /dev/rfcomm0
cuコマンド上でヘイズATコマンドを使って電話番号 00-0000-0000 に音声発呼してみます。
# aptitude -R install cu
# chown root:root /dev/rfcomm0
# cu -E ^ -l /dev/rfcomm0
AT
OK
ATD00000000;
OK
ATH
OK
^.
Disconnected.
※ボールドは入力行です。実際は表示されません。

ヘイズATコマンドになじみの無い方へ

ATコマンドと呼ばれることが多いですが、モデムを制御するコマンド形態です。
  • AT → モデムが動作していればOKが返ってくる
  • ATDn → nへダイヤルをする (電話番号の末尾にセミコロンを付けると、音声発信であることの明示)
  • ATH → 回線切断

この後

rfcommコマンドが実行されている限り/dev/rfcommXが存在します。
また、/etc/bluetooth/rfcomm.confに設定を書くことで、bluetoothdの動作に連動させて/dev/rfcommXを作ることができるようです。(未確認)
これを使ってppp等の利用も可能だと思われます。(未検証)

トラブルシュート

  • Can't connect RFCOMM socket: Connection refused
    • → ペアリングされてません、ペアリングしてください。

利用方法(A2DP): Bluetoothヘッドフォンで音楽再生

SONY MDR-NWBT10NをA2DPヘッドフォンとして使えるようにします。
具体的にはALSAを利用して出力先デバイスにMDR-NWBT10Nを指定するようにします。
注意:ペアリングは済ませておいてください。
注意:音量に気をつけてください、耳の痛い、もしくは恥ずかしい思いをします。
# aptitude -R install bluez-audio mpg123-alsa
# cat << EOF > ~/.asoundrc
pcm.bt {
  type bluetooth
  device "30:XX:XX:XX:XX:XX"
}
EOF
※30:XX:XX:XX:XX:XX はMDR-NWBT10Nのアドレスに読み替えてください。
再生してみます。ショパンの「英雄」がMDR-NWBT10Nから流れてくれば、勝利です。
# mpg123-alsa -a bt http://classical-music.sakura.ne.jp/Room/Chopin-Poronase-Heroic.mp3

この後

X11を導入し、mplayerやVLC等で動画再生等も可能ですが、ここでは割愛です。(ごめんなさい part2)

トラブルシュート

  • ALSA lib audio/pcm_bluetooth.c:1607:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
    • → ペアリングがされてない、既に別のデバイスとMDR-NWBT10Nが接続されている状態の時に表示されます。

あとがき


LBT-UAN03C1BKの後継商品「LBT-UAN04C1」についても検証を行い、本記事の手順での動作を確認しました。

参考URL





[PR]

0 件のコメント:

コメントを投稿