Estou tentando definir a potência de transmissão (de consulta) dos dongles Bluetooth com os chipsets Broadcom e CSR usando hciconfig
, por exemplo:
hciconfig hci0 inqtpl 3
Mas qualquer que seja o parâmetro válido que eu passar, a leitura do valor depois sempre gera 0, da seguinte forma:
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
Quando passo valores inválidos, recebo uma mensagem de erro:
Can't set inquiry transmit power level on hci0: Input/output error (5)
Então, obviamente, o parâmetro é verificado quanto à validade. Tenho certeza de que ele foi verificado pelos chipsets, pois obtenho os mesmos resultados ao enviar os comandos HCI apropriados manualmente.
Os dois chipsets também afirmam que suportam esse recurso:
# 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>
[...]
Estou entendendo algo errado ou é apenas por ocasião que os dois chipsets que estou usando não suportam esse recurso?
Respostas:
Apenas para verificar:
você pode obter o valor máximo e padrão via bccmd psget? ex:
E uma vez que esses valores são recebidos, você pode tentar algo entre esse intervalo, definindo 0x1, por exemplo?
Além disso, iirc, 1 é o máximo do hardware e 0,5 é 50% de energia de trânsito, o que pode ser específico do driver e, portanto, ser uma informação de lixo no seu caso.
Eu tinha quase certeza de que há um procedimento de armazenamento para o qual você precisa ligar depois de definir a energia de trânsito para que o dispositivo comece a usá-lo, para impedir que o dispositivo tente definir imediatamente uma energia de trânsito com defeito.
Isso ajuda em algo:
http://www.spinics.net/lists/linux-bluetooth/msg16546.html
fonte
bccmd
.bccmd psget 0x0017
produzCan't execute command: No such device or address (6)
com o meu módulo CSR, enquanto0x0001
trabalha.bccmd pslist
retorna uma lista bastante curta de 7 comandos que não incluem 0x0017. Além disso,bccmd buildname
estadosodj_4hci_rom_vm_bt2.1_23e_0806121029_encr128
. Talvez o firmware seja muito antigo? Posso atualizá-lo?bccmd
para suportar a leitura / configuração dos poderes padrão & max tx (capítulos 3.9 e 3.10 em eestud.kku.ac.th/~moo/datasheet/Bluetooth/BlueCore/… ). Consegui definir esses valores para 0 ou 4, nada mais. A definição desses valores não parece ter nenhum impacto prático no alcance do dongle. Curiosamente,hciconfig inqtpl
agora relata4
se eu definir os valores para4
embora ...Tentar:
fonte
funciona com meu hardware baseado no CSR8510 A10
fonte