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が0000
や1234
等で固定されている場合、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
- BluetoothUser - Debian Wiki
- Manually using Bluetooth - Openmoko
- Bluetooth - ArchWiki
- Bluetooth/Alsa - Debian Wiki
- [Kubuntu]ALSAでBluetoothオーディオ | greenteaの日記 | スラッシュドット・ジャパン
- Bluetooth/Headphones-HOWTO - openSUSE
- 歓喜の時に頭の中に流れるクラッシク曲 - クラシック - 教えて!goo
- クラシック名曲サウンドライブラリー = 無料音楽配信 - フリー素材楽曲600曲以上 =
[PR]
0 件のコメント:
コメントを投稿