2016-01-10 8 views
8

Raspberry Pi 2 çalıştıran bir Raspbian çekirdeği 4.1.15 ve Bluez sürüm 5.23 var.Bluetoothctl set passkey

Kullanıcı etkileşimi olmadan bağlantıyı kabul etmesi gereken bir aygıtı (bir Android telefon gibi) rapsberry'ye bağlayabilmek istiyorum. Ben, cihazın bulunabilir hale başka bir cihazla eşleştirmek ama bluetooth-ajan

bluetooth-agent PIN 

Bluetooth ajan olduğu gibi bir iğne ayarlamanın yolunu bulamadı olabilir bluetoothct ile

artık kullanılabilir Benim sistemimde, bunu bluetoothctl ile yapabileceğim bir yolu var mı?

+0

Neden bir PIN oluşturmak istiyorsunuz? Pimlerin eşleştirme sırasında otomatik olarak üretilmesi gerekiyor. Yani sadece 'bluetoothctl' başlatabilirsiniz. Daha sonra 'ajan' girin. Sonra her iki uçtan bir eşleme başlatın. Pin, iki uç tarafından otomatik olarak oluşturulmalı/müzakere edilmelidir (bluetooth teknik özelliklerine göre). Bir pin gerekirse "bluetoothctl" doğru pin komutları sağlayacaktır. Herhangi bir nedenden dolayı sabit bir pime ihtiyacınız varsa, lütfen neden ihtiyaç duyduğunuzu açıklayın ve bunu yapmak mantıklıysa bunu sağlayabiliriz. – kaylum

+1

@kaylum Cevabınız için teşekkür ederiz. Bir PIN ayarlamanız gerekiyor, çünkü ahududu üzerinde bir iğne giremiyorum çünkü ona bağlı bir insan olmayacak. Bir telefondan veya sabit bir pini giren başka bir cihazdan eşleştirmeyi başlatmak istiyorum. Bu yüzden ahudududaki iğneyi ayarlamalıyım. – Subert

+0

Bu, ajan IO yetenekleri tarafından (yine bluetooth teknik özellikleriyle tanımlandığı gibi) ele alınmıştır. Bu durumda, 'agent NoInputNoOutput' çalıştırmalısınız. Bu, hiçbir kullanıcı etkileşiminin gerekli olmadığı "Just Works" eşleşmesiyle sonuçlanacaktır. Bu yüzden hala sabit pimlere ihtiyacınız olduğunu düşünmüyorum (sabit pimler eski eşleştirme içindir ve yeni eşleme modlarından daha az güvenlidir). – kaylum

cevap

10

İşte kaylum sayesinde çalışıyor budur:

$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 

Sonra telefondan telefonumla ahududu eşleştirmek.

[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

Aynı sorunu yaşıyorum. "Anonim" bağlantıları önlemek için ahududu tarafında sabit bir pin kodu ayarlamak istiyorum. Bu cevap bunu göstermez, değil mi? –

+0

Tam olarak aynı adımları yaptım, ama yine de tüm telefonumda bir PIN girmem isteniyor ve Bluetoothctl yine de aynı PIN kodunu girmeyi mi istiyor ?! ajan NoInputNoOutput işe yaramıyor mu, yoksa bir şey mi eksik? – Thomas

2

Sadece aynı sorunu yaşadım. agent'dan sonra iki kez sekme tuşuna basarsanız, uygun aracıların listesini görmelisiniz; KeyboardOnly bildirimler olmadan çalışıyor:

[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

İyi yakalama. Keyboardonly ajan için +1. – ChillarAnand