Połącz się z urządzeniem Bluetooth przez terminal


50

Używam Mint 15 z cynamonem.

Kupiłem zestaw głośników bluetooth i próbuję połączyć się z nimi przez terminal. Poprzez GUI widzę je normalnie i jestem z nimi połączony. Chcę zrobić mały skrypt, aby za każdym razem, gdy są widoczne, automatycznie się z nimi łączyłem.

Próbuję je przeskanować za pomocą:

skanowanie hcitool

Ale rozumiem

Łów...

i po kilku sekundach proces umiera.

To samo z hidd --search.

Jeśli uruchomię hciconfig scan, dostanę:

hci0:   Type: BR/EDR  Bus: USB
    BD Address: 40:2C:F4:78:E8:69  ACL MTU: 1021:8  SCO MTU: 64:1
    UP RUNNING PSCAN ISCAN 
    RX bytes:130700 acl:22 sco:0 events:18527 errors:0
    TX bytes:31875398 acl:36784 sco:0 commands:75 errors:0

Podejrzewam, że to tylko mój adres bluetooth i że jest włączony.

Jak już powiedziałem, przez normalny interfejs użytkownika widzę głośniki i jestem z nimi połączony, ale przez terminal nic nie dostaję.

Właściwie to całkiem zabawne, że hcitool scanniczego nie znajduję, ponieważ moje głośniki są podłączone i za każdym razem, gdy uruchamiam polecenie, dźwięk z głośników przerywa się na kilka sekund.

Odpowiedzi:


32

Udało mi się to zrobić za pomocą narzędzi Bluez :

sudo apt-get install bluez-tools

Lista urządzeń, aby uzyskać adres MAC mojego urządzenia:

bt-device -l

i pomyślnie się z nim połącz:

bt-audio -c 01:02:03:04:05:06


Pamiętaj, że bt-audiofunkcja jest ponownie wdrażana dla nowszych wersji.


9
Prawdopodobnie dotyczy to starej wersji, ponieważ nie ma bt-audiojuż komendy
Édouard Lopez

1
W celu aktualizacji postępuj zgodnie z problemem github.com/khvzak/bluez-tools/issues/13
Édouard Lopez

W systemie Linux Mint 17 (cynamon) z powodzeniem wykorzystałem bluez-test-audio connect MAC_ADDRESSjuż sparowane urządzenie audio.
Suzana

2
Z powodzeniem korzystałem bt-device -c mac_addressz Debiana. 9.
jbrock

11

Zrobiłem to sudo apt-get install bluez-tools, ponieważ kiedyś go użyłem.

Po znalezieniu urządzenia hcitool scan, pobiegłem, bluez-simple-agent hci0 Xgdzie X to adres mac urządzenia, które dodawałem. To stworzyło połączenie z urządzeniem.

Potem pobiegłem hciconfig scani wygląda na to, że automatycznie uruchomiłem połączenie.


1
Ubuntu 16.04. Nie ma bluez-simple-agentpolecenia.
LRDPRDX

2

Wiem, że to trochę późno, ale bawiłem się tym poleceniem hcitooli chciałbym zwrócić uwagę na coś, co zauważyłem, co rozwiązuje problem skanowania i procesu „po prostu umierania”. Chodzi o to, że skanowanie działa tylko wtedy, gdy urządzenia nie są sparowane. W twoim przypadku mówisz, że możesz zobaczyć, że głośniki są podłączone do GUI, co oznacza, że ​​zostały już sparowane ... dlatego skanowanie nic nie zwraca.

Pracuję nad parowaniem / łączeniem urządzeń za pomocą tego samego narzędzia, chociaż widzę, że masz inne opcje. Zaktualizuję swoją odpowiedź, gdy tylko dam radę.


2

Aby to zrobić za pomocą wbudowanych narzędzi, możesz wykonać ten nieco bardziej ręczny proces, używając bluetoothctl.

hcitool scan  # to get the MAC address of your device
bluetoothctl
agent on
scan on  # wait for your device's address to show up here
scan off
trust MAC_ADDRESS
pair MAC_ADDRRESS
connect MAC_ADDRESS

Posty w tym numerze Github sugerują sposób jego skryptu, ale to nie działało dla mnie, ponieważ musiałem ręcznie czekać, aż skanowanie przyniesie wyniki.


0

Mam następujące zainstalowane w Debian 9.

blueman/stable,now 2.0.4-1 amd64 [installed]
bluez/stable,stable,now 5.43-2+deb9u1 amd64 [installed]
bluez-obexd/stable,stable,now 5.43-2+deb9u1 amd64 [installed,automatic]
bluez-tools/stable,now 0.2.0~20140808-5+b2 amd64 [installed]
pulseaudio-module-bluetooth/stable,now 10.0-1+deb9u1 amd64 [installed]

Sparowałem już słuchawki Bluetooth z adapterem USB Bluetooth na pulpicie za pomocą aplikacji GUI Bluetooth Manager. Mam skrót klawiaturowy, który uruchamia następujące dwa polecenia: bt-device -c 00:02:5B:01:3C:3B; pacmd set-default-sink bluez_sink.00_02_5B_01_3C_3B.a2dp_sink

  1. Podłącz słuchawki do adaptera USB Bluetooth. (Posługiwać siębt-device -l aby uzyskać adres MAC.)
  2. Ustaw audio Bluetooth jako domyślne wyjście. (Użyj, pacmd list-sinks | awk '/index:/ {print $0}; /name:/ {print $0}; /device\.description/ {print $0}'aby uzyskać poprawną nazwę.)

-1

To może być trochę za późno, ale miałem dokładnie ten sam problem, z tą samą mocą wyjściową hciconfig .

Jednak sudo hcitool lescanwykonałem pracę dla mnie - może nadal może ci pomóc!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.