2016-01-10 5 views
8

Possiedo un Raspberry Pi 2 con kernel Raspbian 4.1.15 e Bluez versione 5.23.Bluetoothctl set passkey

Desidero essere in grado di collegare un dispositivo (come un telefono Android) al rapsberry che dovrebbe accettare la connessione senza l'interazione dell'utente.

Con bluetoothct posso rendere il dispositivo rilevabile, accoppiarlo con un altro dispositivo, ma non ho trovato il modo per impostare un perno come con bluetooth-agent

bluetooth-agent PIN 

Bluetooth-agente non più disponibile è sul mio sistema, c'è un modo per farlo con bluetoothctl?

+0

Perché si desidera impostare un PIN? I pin dovrebbero essere generati automaticamente durante l'accoppiamento. Quindi puoi solo avviare 'bluetoothctl'. Quindi inserire "agente su". Quindi avviare un abbinamento da entrambe le estremità. Il pin dovrebbe essere generato/negoziato automaticamente dalle due estremità (come da specifiche bluetooth). 'bluetoothctl' fornirà i prompt pin corretti se è richiesto un pin. Se hai bisogno di un pin fisso per qualche motivo, descrivi perché ne hai bisogno e potrei essere in grado di fornirlo se ha senso farlo. – kaylum

+1

@kaylum Grazie per la risposta. Ho bisogno di impostare un PIN, perché non posso inserire un pin sul lampone in quanto non ci sarà alcun essere umano collegato ad esso. Voglio iniziare un abbinamento da un telefono o un altro dispositivo che immette un pin fisso. Quindi ho bisogno di impostare il pin sul lampone. – Subert

+0

Gestito dalle funzionalità IO dell'agente (di nuovo come definito dalle specifiche Bluetooth). Quindi nel tuo caso dovresti eseguire "agent NoInputNoOutput'. Ciò comporterà l'accoppiamento "Just Works" in cui non è richiesta alcuna interazione da parte dell'utente. Quindi continuo a non pensare che ti servano pin fissi (i pin fissi servono per il paring precedente e sono meno sicuri rispetto alle nuove modalità di accoppiamento). – kaylum

risposta

10

Ecco ciò che funziona grazie a kaylum:

$bluetoothctl 
[bluetooth]# power on 
Changing power on succeeded 
[bluetooth]# discoverable on 
Changing discoverable on succeeded 
[bluetooth]# pairable on 
Changing pairable on succeeded 
[bluetooth]# agent NoInputNoOutput 
Agent registered 
[bluetooth]# default-agent 
Default agent request successful 

Poi ho associare il lampone con il mio telefono dal telefono.

[NEW] Device XX:XX:XX:XX:XX:XX nameofthedevice 
[CHG] Device XX:XX:XX:XX:XX:XX UUIDS: 
     --UUIDS-- 
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes 
+2

Ho lo stesso problema. Voglio impostare un codice pin fisso sul lato del lampone per evitare connessioni "anonime". Questa risposta non lo fa notare no? –

+0

Ho fatto esattamente gli stessi passi, ma ancora tutto il mio telefono mi chiede di inserire un PIN e quindi bluetoothctl ancora chiedo di inserire lo stesso PIN ?! agente NoInputNoOutput non sembra funzionare o mi manca qualcosa? – Thomas

2

Ho appena avuto lo stesso problema. Se si preme la scheda due volte dopo agent, si dovrebbe vedere un elenco di agenti disponibili; KeyboardOnly funziona correttamente senza notifiche:

[bluetooth]# agent on   # accidentally used wrong agent 
Agent registered 
[bluetooth]# agent 
DisplayOnly  DisplayYesNo  KeyboardDisplay KeyboardOnly  NoInputNoOutput off    on    
[bluetooth]# agent KeyboardOnly 
Agent is already registered # can't use two agents at one 
[bluetooth]# agent off   # unregister agent 
Agent unregistered 
[bluetooth]# agent KeyboardOnly # register proper agent 
Agent registered 
[bluetooth]# pair XX:XX:XX:04:F5:7C 
Attempting to pair with XX:XX:XX:04:F5:7C 
[CHG] Device XX:XX:XX:04:F5:7C Connected: yes 
Request passkey 
[agent] Enter passkey (number in 0-999999): 722504 
[MoarBacon]# pair XX:XX:XX:04:F5:7C 
Attempting to pair with XX:XX:XX:04:F5:7C 
[CHG] Device XX:XX:XX:04:F5:7C Paired: yes 
Pairing successful 
+0

Buona presa. +1 per l'agente keyboardonly. – ChillarAnand