Bluetooth送信電力の設定方法は?


9

BroadcomとCSRの両方のチップセットでBluetoothドングルの(お問い合わせ)送信電力を設定しようとしていますhciconfig。例:

hciconfig hci0 inqtpl 3

しかし、私が渡す有効なパラメータが何であれ、後で値を読み取ると、常に次のように常に0になります。

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
更新:ドングルメーカーから、ヨーロッパのCEマーキングによる制限のためにこの機能がブロックされたという通知を受け取りました。
domsom

回答:


2

もう一度確認してください:

bccmd psgetを介して最大値とデフォルト値を取得できますか?例:

bccmd psget 0x0017

そして、それらの値が受信されたら、たとえば0x1を設定することによって、その範囲内の何かを試すことができますか?

また、iirc、1はハードウェアの最大値、0.5は50%の通過電力です。これは、ドライバー固有であり、ごみの情報である可能性があります。

デバイスが使用を開始するために通過電力を設定した後、デバイスがすぐに誤った通過電力を設定しようとするのを防ぐために呼び出す必要があるストア手順がほぼありました。

これは何かを助けますか:http :
//www.spinics.net/lists/linux-bluetooth/msg16546.html


お返事ありがとうございますbccmd。動作している間、私のCSRモジュールでbccmd psget 0x0017歩留まりCan't execute command: No such device or address (6)ます0x0001bccmd pslist0x0017を含まない7つのコマンドのかなり短いリストを返します。その上、bccmd buildname状態odj_4hci_rom_vm_bt2.1_23e_0806121029_encr128。ファームウェアが古すぎるのでしょうか?更新できますか?
domsom

bccmdデフォルトおよび最大送信電力の読み取り/設定をサポートするようにパッチを適用しました(eestud.kku.ac.th/~moo/datasheet/Bluetooth/BlueCore/…の章3.9および3.10 )。私はこれらの値を0または4のいずれかに設定できました。ただし、これらの値を設定しても、ドングルの範囲に実際的な影響はないようです。興味深いことに、値を設定したかどうかをhciconfig inqtplレポートする4ようになりまし4た...
domsom

0

試してください:

sudo bccmd psget -s 0x0000 0x0017

Torxedの回答に関するdomsomのコメントで説明されているのと同じ問題が発生したときに、これは機能しました。パッチは必要ありません。
Hydranix 2017

0
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に基づく私のハードウェアで動作します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.