J'essaie de définir la puissance de transmission (d'enquête) des dongles Bluetooth avec les chipsets Broadcom et CSR en utilisant hciconfig
, par exemple:
hciconfig hci0 inqtpl 3
Mais quel que soit le paramètre valide que je passe, la lecture de la valeur par la suite donne toujours 0, comme ceci:
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
Lorsque je passe des valeurs non valides, j'obtiens un message d'erreur:
Can't set inquiry transmit power level on hci0: Input/output error (5)
Il est donc évident que la validité du paramètre est vérifiée. Je suis presque sûr qu'il est vérifié par les chipsets, car j'obtiens les mêmes résultats lors de l'envoi manuel des commandes HCI appropriées.
Les deux chipsets indiquent également qu'ils prennent en charge cette fonctionnalité:
# 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>
[...]
Suis-je en train de me tromper, ou est-ce juste par occasion que les deux chipsets que j'utilise ne prennent pas en charge cette fonctionnalité?
Réponses:
Juste pour revérifier:
pouvez-vous obtenir la valeur maximale et la valeur par défaut via bccmd psget? ex:
Et une fois que ces valeurs sont reçues, pouvez-vous essayer quelque chose entre cette plage en définissant 0x1 par exemple?
De plus, iirc, 1 est le maximum du matériel et 0,5 est une puissance de transit de 50%, ce qui peut être spécifique au pilote, ce qui peut être une info poubelle dans votre cas.
J'étais presque sûr qu'il y avait une procédure de magasin que vous devez appeler après avoir défini la puissance de transit afin que l'appareil commence à l'utiliser, pour empêcher l'appareil d'essayer de définir immédiatement une puissance de transit défectueuse.
Est-ce que cela aide quoi que ce soit:
http://www.spinics.net/lists/linux-bluetooth/msg16546.html
la source
bccmd
.bccmd psget 0x0017
donneCan't execute command: No such device or address (6)
avec mon module CSR, tout en0x0001
travaillant.bccmd pslist
renvoie une liste assez courte de 7 commandes qui n'inclut pas 0x0017. D'ailleurs,bccmd buildname
déclareodj_4hci_rom_vm_bt2.1_23e_0806121029_encr128
. Peut-être que le firmware est trop ancien? Puis-je le mettre à jour?bccmd
pour prendre en charge la lecture / le réglage des puissances tx par défaut et max (chapitres 3.9 et 3.10 dans eestud.kku.ac.th/~moo/datasheet/Bluetooth/BlueCore/… ). J'ai pu mettre ces valeurs à 0 ou 4, rien d'autre. Cependant, la définition de ces valeurs ne semble pas avoir d'impact pratique sur la portée du dongle. Fait intéressant, maishciconfig inqtpl
indique maintenant4
si j'ai défini les valeurs sur4
...Essayer:
la source
cela fonctionne avec mon matériel basé sur CSR8510 A10
la source