Jak ustawić moc transmisji Bluetooth?

9

Usiłuję ustawić (transmisję) moc transmisji kluczy sprzętowych Bluetooth zarówno z chipsetami Broadcom, jak i CSR, używając hciconfignp .:

hciconfig hci0 inqtpl 3

Ale niezależnie od poprawnego parametru, który przekażę, odczyt wartości później zawsze daje 0, tak jak poniżej:

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

Gdy przekazuję nieprawidłowe wartości, pojawia się komunikat o błędzie:

Can't set inquiry transmit power level on hci0: Input/output error (5)

Oczywiście parametr jest sprawdzany pod kątem ważności. Jestem prawie pewien, że jest sprawdzany przez chipsety, ponieważ otrzymuję te same wyniki przy ręcznym wysyłaniu odpowiednich poleceń HCI.

Oba chipsety twierdzą również, że obsługują tę funkcję:

# 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>
                [...]

Czy coś się nie zgadza, czy może tylko oba używane przeze mnie chipsety nie obsługują tej funkcji?

domsom
źródło
1
Aktualizacja: Właśnie otrzymałem wiadomość od producenta klucza, że ​​ta funkcja została zablokowana z powodu ograniczeń, którym sprzeciwia się europejskie oznakowanie CE.
domsom

Odpowiedzi:

2

Wystarczy dwukrotnie sprawdzić:

czy możesz uzyskać maksymalną i domyślną wartość za pomocą bccmd psget? dawny:

bccmd psget 0x0017

A kiedy te wartości zostaną odebrane, czy możesz spróbować czegoś pomiędzy tym zakresem, ustawiając na przykład 0x1?

Również iirc, 1 to maksimum sprzętu, a 0,5 to 50% mocy tranzytowej, która może być zależna od sterownika, więc w twoim przypadku mogą to być śmieci.

Byłem prawie pewien, że istnieje procedura sklepu, do której należy zadzwonić po ustawieniu mocy tranzytu, aby urządzenie zaczęło z niej korzystać, aby zapobiec próbom natychmiastowego ustawienia wadliwej mocy tranzytu.

Czy to pomaga cokolwiek:
http://www.spinics.net/lists/linux-bluetooth/msg16546.html

Torxed
źródło
Dzięki za odpowiedź, spędziłem trochę czasu bccmd. bccmd psget 0x0017daje Can't execute command: No such device or address (6)mój moduł CSR, podczas gdy 0x0001działa. bccmd pslistzwraca raczej krótką listę 7 poleceń, która nie zawiera 0x0017. Poza tym bccmd buildnamestwierdza odj_4hci_rom_vm_bt2.1_23e_0806121029_encr128. Może oprogramowanie jest po prostu za stare? Czy mogę to zaktualizować?
domsom,
Poprawiłem także bccmdobsługę odczytu / ustawiania domyślnych i maksymalnych mocy tx (rozdziały 3.9 i 3.10 w eestud.kku.ac.th/~moo/datasheet/Bluetooth/BlueCore/... ). Byłem w stanie ustawić te wartości na 0 lub 4, nic więcej. Jednak ustawienie tych wartości nie ma praktycznego wpływu na zasięg klucza. Co ciekawe, hciconfig inqtplteraz informuje, 4czy ustawiłem wartości 4chociaż ...
domsom,
0

Próbować:

sudo bccmd psget -s 0x0000 0x0017
Markus Kirsten
źródło
To zadziałało, gdy napotkałem ten sam problem wyjaśniony w komentarzach domsom do odpowiedzi Torxeda. Nie wymaga łatania.
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)

działa z moim sprzętem opartym na CSR8510 A10

jsmith
źródło