2012-10-15 5 views
26

Czy istnieje sposób na sparowanie urządzenia w Linuksie bez potrzeby używania pinów (do celów testowych, więc muszę to zrobić w/out interakcji człowieka, zakładając, że masz dostęp do roota)?Linuksowa linia poleceń howto akceptuje parowanie dla urządzenia bluetooth bez pinów

Wygląda na to, że bluez-simple-agent wymaga pinezki, z wyjątkiem prostych urządzeń, takich jak myszy.

+4

Suggest przeprowadzce do Unix & Linux [] (http://unix.stackexchange.com) niż na przepełnienie stosu. –

Odpowiedz

8

Spróbuj ustawić zabezpieczenia sobie równych w /etc/bluetooth/hcid.conf

http://linux.die.net/man/5/hcid.conf

To będzie prawdopodobnie tylko praca dla urządzeń HCI (mysz, klawiatura, spaceball, etc.). Jeśli masz inny rodzaj urządzenia, prawdopodobnie istnieje inne, ale podobne ustawienie do zmiany.

+0

Masz na myśli urządzenia HID (zamiast HCI), prawda? – flak37

23

Wprowadzenie kodu PIN jest w rzeczywistości przestarzałą metodą parowania, obecnie nazywającą się Legacy Pairing. Bezpieczny tryb prostego parowania jest dostępny w Bluetooth v2.1 i nowszych, który obejmuje większość nowoczesnych urządzeń Bluetooth. Uwierzytelnianie SSPMode jest obsługiwane przez stos protokołu Bluetooth i działa bez interakcji użytkownika.

Oto jak można iść na temat łączenia się z urządzeniem:

# hciconfig hci0 sspmode 1 
# hciconfig hci0 sspmode 
hci0: Type: BR/EDR Bus: USB 
BD Address: AA:BB:CC:DD:EE:FF ACL MTU: 1021:8 SCO MTU: 64:1 
Simple Pairing mode: Enabled 
# hciconfig hci0 piscan 
# sdptool add SP 
# hcitool scan 
    00:11:22:33:44:55 My_Device 
# rfcomm connect /dev/rfcomm0 00:11:22:33:44:55 1 & 
Connected /dev/rfcomm0 to 00:11:22:33:44:55 on channel 1 
Press CTRL-C for hangup 

byłoby to ustanowienie połączenia szeregowego do urządzenia.

+4

Nie można ustawić trybu prostego parowania na hci0: Błąd wejścia/wyjścia (5) – user3751385

+0

Jeśli adapter nie obsługuje trybu sspmode, wypróbuj 0000 jako pinezkę. – user3751385

8

To działało jak urok dla mnie, z-oczywiście wymaga to uprawnień super użytkownika :-)

# hcitool cc <target-bdaddr>; hcitool auth <target-bdaddr>

Aby uzyskać <target-bdaddr> można wydać poniżej polecenia:
$ hcitool scan

Uwaga: Wyklucz # & $, ponieważ są to monity wiersza poleceń.

Courtesy

7

dla Ubuntu 14.04 i Android try:

hcitool scan #get hardware address 
sudo bluetooth-agent PIN HARDWARE-ADDRESS 

dialogowe PIN pojawia się na urządzeniu z Androidem. Wprowadź ten sam PIN.

Uwaga: sudo apt-get install bluez-utils może być konieczne.

Uwaga 2: Jeśli okno dialogowe PIN nie pojawi się, spróbuj najpierw sparować z systemem Android (nie uda się z powodu błędnego kodu PIN). Następnie spróbuj ponownie, jak opisano powyżej.

0
~ $ hciconfig noauth 

To powinno załatwić sprawę (używam bluez 5.23 i nie ma bardziej prosty egent i niebiesko-utils). Jednak staram się znaleźć sposób na wprowadzenie zmian hciconfig na stałe, ponieważ po wyłączeniu i włączeniu zasilania wymagane jest ponowne uwierzytelnienie. Do tej pory zmiany w hciconfig nadal pozostają takie same po ponownym uruchomieniu. powraca tylko po wyłączeniu zasilania. Jeśli ktokolwiek znalazł sposób, aby uczynić hciconfig stałym, daj mi znać!

+0

To działało dla mnie na Ubuntu 16.04, "sspmode 1" dało mi błąd I/O –

5

dalsze etapy (CENTOS):

  1. bluetoothctl
  2. urządzenia
  3. skanowania na
  4. pary 34: 88: 5D: 51: 5A: 95 (34: 88: 5D: 51: 5A: 95 jest mój kod urządzenia, wymień ją z Ciebie)
  5. zaufanie 34: 88: 5D: 51: 5A: 95
  6. połączyć 34: 88: 5D: 51: 5A: 95

Jeśli chcesz więcej szczegółów https://www.youtube.com/watch?v=CB1E4Ir3AV4

Powiązane problemy