
BroadcomとCSRチップセットを使用してBluetoothアダプタの送信電力を設定(クエリ)しようとしていますhciconfig
。たとえば、次のようになります。
hciconfig hci0 inqtpl 3
ただし、有効な引数を渡しても後で値を読み取ると、次のように常にゼロが生成されます。
hci0: Type: BR/EDR Bus: USB
BD Address: 00:02:72:D6:6B:25 ACL MTU: 1021:8 SCO MTU: 64:1
Inquiry transmit power level: 0
無効な値を渡すと、エラーメッセージが表示されます。
Can't set inquiry transmit power level on hci0: Input/output error (5)
明らかに、このパラメータを検証しました。適切なHCIコマンドを手動で送信すると同じ結果が得られたので、チップセットで確認したと確信しています。
どちらのチップセットもこの機能をサポートすると述べられています。
# hciconfig hci0 features
hci0: Type: BR/EDR Bus: USB
BD Address: 00:02:72:D6:6B:25 ACL MTU: 1021:8 SCO MTU: 64:1
Features page 0: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
[...]
<err. data report> <non-flush flag> <LSTO> <inquiry TX power>
[...]
問題が発生したのでしょうか、それとも私が使っているチップセットのどちらもこの機能をサポートしていないのが偶然の一致ですか?
答え1
もう一度確認してください。
bccmd psgetで最大値とデフォルト値を取得できますか?前任者:
bccmd psget 0x0017
これらの値を受け取ったら、0x1を設定してその範囲の間の値を試すことはできますか?
また、iircでは、1はハードウェアの最大値、0.5は50%の送信電力です。ただし、これはドライバーによって異なる場合があるため、お客様の場合はジャンクになる可能性があります。
送信電力を設定した後、デバイスがすぐに誤った送信電力を設定しようとするのを防ぐために、保存されたルーチンを呼び出してデバイスがそれを使用し始める必要があるとほぼ確実です。
これは役に立ちますか?
http://www.spinics.net/lists/linux-bluetooth/msg16546.html
答え2
努力する:
sudo bccmd psget -s 0x0000 0x0017
答え3
bccmd psget -s 0x0000 0x0021
Default transmit power: 0x0004 (4)
localhost ~ # bccmd psset -r -s 0x0000 0x0021 0x0006
localhost ~ # bccmd psget -s 0x0000 0x0021
Default transmit power: 0x0006 (6)
私はCSR8510 A10ベースのハードウェアで動作します。