Estoy tratando de configurar la potencia de transmisión (consulta) de los dongles Bluetooth con los conjuntos de chips Broadcom y CSR usando hciconfig
, por ejemplo:
hciconfig hci0 inqtpl 3
Pero sea cual sea el parámetro válido que pase, leer el valor después siempre produce 0, así:
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
Cuando paso valores no válidos, recibo un mensaje de error:
Can't set inquiry transmit power level on hci0: Input/output error (5)
Entonces, obviamente, se verifica la validez del parámetro. Estoy bastante seguro de que los chipsets lo comprueban, ya que obtengo los mismos resultados al enviar los comandos HCI apropiados manualmente.
Ambos conjuntos de chips también afirman que admiten esta característica:
# 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>
[...]
¿Me estoy equivocando o solo por alguna ocasión los dos conjuntos de chips que estoy usando no son compatibles con esta función?
Respuestas:
Solo para verificar dos veces:
¿Puedes obtener el valor máximo y predeterminado a través de bccmd psget? ex:
Y una vez que se reciben esos valores, ¿puede intentar algo entre ese rango estableciendo 0x1, por ejemplo?
También iirc, 1 es el máximo del hardware y 0.5 es el 50% de la potencia de tránsito, aunque puede ser específico del controlador, por lo que podría ser información basura en su caso.
Estaba casi seguro de que hay un procedimiento de almacenamiento al que debe llamar después de configurar la potencia de tránsito para que el dispositivo comience a usarla, para evitar que el dispositivo intente establecer una potencia de tránsito defectuosa de inmediato.
¿Ayuda esto?
Http://www.spinics.net/lists/linux-bluetooth/msg16546.html
fuente
bccmd
.bccmd psget 0x0017
cedeCan't execute command: No such device or address (6)
con mi módulo CSR, mientras0x0001
funciona.bccmd pslist
devuelve una lista bastante corta de 7 comandos que no incluye 0x0017. Además,bccmd buildname
estadosodj_4hci_rom_vm_bt2.1_23e_0806121029_encr128
. ¿Quizás el firmware es demasiado viejo? ¿Puedo actualizarlo?bccmd
para admitir la lectura / configuración de los poderes predeterminados y max tx (capítulos 3.9 y 3.10 en eestud.kku.ac.th/~moo/datasheet/Bluetooth/BlueCore/… ). He podido establecer esos valores en 0 o 4, nada más. Sin embargo, establecer esos valores no parece tener ningún impacto práctico en el rango del dongle. Curiosamente,hciconfig inqtpl
ahora informa4
si configuré los valores a4
...Tratar:
fuente
funciona con mi hardware basado en CSR8510 A10
fuente