[bluetooth]# power on
Failed to set power on: org.bluez.Error.Blocked
最悪、昔ながらの「再起動」に至ることもたまにあるけど、ハード(USBコネクタに挿したBTアダプタ)の問題は、hciconfigコマンドで喝をいれるだけで、目覚めてくれることも多い。これは頻度が少ないため、なかなか覚えないので、なかば自分のためにメモする。
$ service bluetooth status
[ ok ] bluetooth is running. ← 我が家の多くのLinuxでは、もうちょっといろいろ表示してくれる。antix19.3(32bit)@MCJだけがそっけない。
(2) 次にBluetoothアダプタ(コントローラーデバイス)の状態を確認。たいていの場合、ここが死んでいる。
$ hciconfig -a
hci0: Type: Primary Bus: USB
BD Address: xx:xx:xx:xx:xx:xx ACL MTU: 310:10 SCO MTU: 64:8
DOWN (←ここ)
RX bytes:137458 acl:7221 sco:0 events:253 errors:0
TX bytes:2879 acl:118 sco:0 commands:91 errors:0
Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'BlueZ 5.50'
Class: 0x200104
Service Classes: Audio
Device Class: Computer, Desktop workstation
HCI Version: 4.0 (0x6) Revision: 0x22bb
LMP Version: 4.0 (0x6) Subversion: 0x22bb
Manufacturer: Cambridge Silicon Radio (10)
(3) BTアダプタの起動を試みる。指定するid(hci0)は、一つ前の(2)の手順で確認できる。いろいろ複数アダプタをつけていなければ、たいていはhci"0"になるだろう。ここはルート権限が必要。
$ sudo hciconfig hci0 up
(4) これで素直に何も表示されなければ、たぶんうまくいったので(5)に進んで、念の為状態を再確認する。ただ、アダプタが今日に限って起動しなかったぐらいだから、もうひとゴネされることも少なくない。我が家の特定PC(MCJ君)がよく返してくるエラーメッセージは、これだ。
$ sudo hciconfig hci0 up
Can't init device hci0: Operation not possible due to RF-kill (132)
なぜそうするとうまく行くのか、なぜこうなっているのは面倒だから突き止めてない。もはやシステム屋の風上にもおけないですな、ごめんなさい。テレビを特定の角度でチョップして直していた、のび太のママと同じレベルである。反省はするが、とにかく、次のようにしてブロックを解除。
$ rfkill unblock bluetooth
何も文句がないようである。うまく行ったとみなし、BTアダプタの起動をあらためて指示。
$ sudo hciconfig hci0 up
これまた、うまく行くと一文字も表示しない。エラー時の饒舌さはどこに行ったのか。うまく行っているのが癪に触って面白くないから黙っているのかもしれない。
$ hciconfig -a
hci0: Type: Primary Bus: USB
BD Address: xx:xx:xx:xx:xx:xx ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN (←ここ)
RX bytes:210850 acl:11171 sco:0 events:256 errors:0
TX bytes:2888 acl:118 sco:0 commands:94 errors:0
Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'BlueZ 5.50'
Class: 0x200104
Service Classes: Audio
Device Class: Computer, Desktop workstation
HCI Version: 4.0 (0x6) Revision: 0x22bb
LMP Version: 4.0 (0x6) Subversion: 0x22bb
Manufacturer: Cambridge Silicon Radio (10)