블루투스 전송 전원을 설정하는 방법?


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. 방금 시간을 보냈습니다 . bccmd psget 0x0017수율 Can't execute command: No such device or address (6)내 CSR 모듈, 동안 0x0001작동합니다. bccmd pslist0x0017을 포함하지 않는 7 개의 명령으로 구성된 짧은 목록을 반환합니다. 게다가, bccmd buildnameStates odj_4hci_rom_vm_bt2.1_23e_0806121029_encr128. 펌웨어가 너무 오래된 것일 수 있습니다. 업데이트 할 수 있습니까?
domsom

또한 bccmd기본 및 최대 TX 전력 읽기 / 설정을 지원하도록 패치 되었습니다 ( 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

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.