Jak mogę mieć automatyczne połączenie klawiatury Bluetooth podczas uruchamiania?

10

Mam klawiaturę Bluetooth do mojego HTPC. Sparowuję go z komputerem przez bluetooth i działa dobrze. Jednak gdy wyłączam klawiaturę lub komputer, musi się ponownie połączyć (co wymaga wpisania hasła na komputerze i klawiaturze), gdy ponownie je włączę. Przejrzałem wiele forów i odkryłem, że brakuje mi niektórych pozornie ważnych plików bluetooth:

/etc/default/bluetooth

/etc/init.d/bluetooth

/etc/bluetooth/hcid.conf

W instrukcjach, które znalazłem do tej pory w Internecie, muszę zmienić niektóre wiersze w dowolnym z tych plików. Nie jestem w stanie, ponieważ one nie istnieją.

Czy brakuje mi zależności lub czegoś takiego? Próbowałem również zainstalować Bluemana, ale to wcale nie pomogło.

Używam Ubuntu 10.10 (Maverick).

Oryginalny post: http://ubuntuforums.org/showthread.php?t=1643386&highlight=bluetooth

Dotacja
źródło

Odpowiedzi:

11

Ta odpowiedź pochodzi z samouczka napisanego przez Andrew Martina na thetechdepo.com. Zobacz poniższy link do oryginalnego postu, ale jest to kompletne przepisanie. Jest napisany specjalnie dla klawiatury Apple, ale użyłem go na wielu urządzeniach, więc nie jest on specyficzny dla Apple ani klawiatury. Po prostu postępuj zgodnie z instrukcjami, a będziesz mieć automatyczne podłączanie dowolnego urządzenia Bluetooth w Ubuntu.

Przejdź do Ustawień systemu> Bluetooth i postępuj zgodnie z instrukcjami, aby dodać nowo podłączone urządzenie Bluetooth.

Postępuj zgodnie z instrukcjami i wprowadź kod PIN na żądanie, a następnie po podłączeniu i działaniu urządzenia wyłącz je. Teraz w części automatycznego łączenia.

Otwórz terminal i wprowadź następujące polecenia:

$ killall bluetooth-applet 
$ sudo /etc/init.d/bluetooth restart 
$ sudo hcitool dev

Ostatnie polecenie wyświetli dane wyjściowe dla twojego urządzenia, takie jak:

Devices:
    hci0    00:00:00:00:00:00

Zainstaluj nowy pakiet, aby umożliwić połączenie Bluetooth za pomocą wiersza polecenia.

$ sudo apt-get install bluez-compat

Po zakończeniu tej czynności będziesz mieć zainstalowany program hidd. W tym momencie włącz klawiaturę i wprowadź następujące polecenie. Spowoduje to wyświetlenie adresu MAC twojej klawiatury, który będziesz musiał skopiować i wkleić do następnego polecenia, jak pokazano poniżej:

$ hcitool scan        
Scanning ...
    AA:BB:CC:DD:EE:FF   Bluetooth Device Name
$ sudo hidd --connect AA:BB:CC:DD:EE:FF

Teraz musimy utworzyć plik startowy, aby automatycznie podłączyć urządzenie po uruchomieniu komputera. Przez terminal ...

$ gedit ~/.keyboard.sh

Wpisz następujący tekst, zastępując AA: BB: CC: DD: EE: FF za pomocą identyfikatora sprzętu, który widziałeś powyżej. Na koniec zapisz plik.

#! /bin/bash

address="AA:BB:CC:DD:EE:FF"

while (sleep 1)
do
connected=`sudo hidd --show` > /dev/null
if [[ ! $connected =~ .*${address}.* ]] ; then
sudo hidd --connect ${address} > /dev/null 2>&1
fi
done

Teraz utwórz nowy plik startowy. Zastąp „klawiaturę” dowolną wybraną nazwą urządzenia. To jest po prostu nazwa pliku.

$ sudo gedit /etc/init.d/keyboard

Wklej następujące informacje, które każą Ubuntu uruchomić plik, który właśnie utworzyłeś podczas uruchamiania.

#!/bin/sh
/home/username/.keyboard.sh &

exit 0

Teraz ustaw uprawnienia obu plików na wykonywalne za pośrednictwem terminala.

$ sudo chmod +x /etc/init.d/keyboard
$ chmod +x ~/.keyboard.sh
$ sudo update-rc.d keyboard defaults

Uruchom ponownie komputer, a urządzenie powinno się automatycznie połączyć i działać bez konieczności wykonywania jakichkolwiek czynności.

Mam nadzieję, że to pomoże kilku osobom, zajęło mi dużo czasu znalezienie rozwiązania mojego problemu i chciałem zacementować ten samouczek nieco głębiej w sieci.

Oryginalny link można znaleźć tutaj .

ryandlf
źródło
Uważam, że hidd jest obecnie przestarzałe od wersji Bluez 4.0 na korzyść udev, zgodnie z /usr/share/docs/bluez/NEWS.Debian.gz, ale nie mogę znaleźć żadnej dokumentacji, jak to zrobić bez Bluez-Compat.
Tu-Reinstate Monica-dor duh
3

Próbowałem też samodzielnie odpowiedzi Ryandlf, ale znalazłem inną łatwą konfigurację, która ostatecznie wykona tę samą pracę.

Główną ideą jest to, że po sparowaniu i zaufaniu urządzenia zdalnego hcitool spinqrozpocznie się okresowe zapytanie, które pozwoli na podłączenie wszystkich dostępnych urządzeń.

Najpierw zainicjuj sudo Bluetoothctl -ai wykonaj poniższe kroki. Są z wiki ArchLinux, ale udowodniono, że działają tak samo w Ubuntu.

[bluetooth]# power on
[bluetooth]# agent KeyboardOnly
[bluetooth]# pairable on
[bluetooth]# scan on

Ostatnie polecenie pokaże wszystkie dostępne (czekające na parowanie) klawiatury Bluetooth w ten sposób.

Discovery started
[CHG] Controller 01:02:03:04:05:06 Discovering: yes

Zanotuj adres swojej klawiatury i kontynuuj.

[bluetooth]# pair 01:02:03:04:05:06
[bluetooth]# trust 01:02:03:04:05:06
[bluetooth]# connect 01:02:03:04:05:06
[bluetooth]# quit

Teraz włóż ten prosty skrypt do /etc/init.d/keyboard

#! /bin/sh
sudo hcitool spinq
exit 0

Następnie wykonaj je.

sudo chmod +x /etc/init.d/keyboard
sudo service keyboard enable
sudo update-rc.d keyboard defaults
sudo service keyboard start

Otóż ​​to. Teraz, gdy tylko włączysz klawiaturę Bluetooth, będzie ona automatycznie podłączana do Linuksa.

Ch.Idea
źródło
$ sudo update-rc.d keyboard defaults insserv: script keyboard is not an executable regular file, skipped!Aby rozwiązać, wykonałem sudo chmod +x /etc/init.d/keyboard. Potem wystąpiłem sudo update-rc.d keyboard defaults. Otrzymał ostrzeżenie: insserv: warning: script 'keyboard' missing LSB tags and overrides.
orschiro
Co sudo service keyboard enable?
orschiro
Tak, dobrze się spisałeś chmod +x.
Ch.Idea,
Błąd braku tagów LSB można zignorować i nie jest to naprawdę ważne w tym zadaniu. Jeśli chcesz, wyszukaj go, przeglądając go i wklej na górze pliku. Są w prostej formie.
Ch.Idea
1

Miałem bardzo podobny problem z klawiaturą Apple BlueTooth. Kupiłem to, ponieważ uwielbiałem klawisze. Nie mogłem jednak utrzymać łączności. Problem polegał na identyfikacji klawiatury. Po dopasowaniu go do rzeczywistego komputera MAC, na którym uzyskał rzeczywistą nazwę, nie miałem już problemu z podłączeniem go do systemu Linux lub Windows. Moja żona używa go teraz bez problemu.

Nie wiem, jak można to przetłumaczyć w twojej sytuacji, ale może to być punkt wyjścia. Od innych przyjaciół wydaje się, że identyfikacja urządzenia jest tutaj głównym problemem.

jfmessier
źródło
1

Od wersji bluez 5.35 (wrzesień 2015) wystarczy zmodyfikować plik konfiguracyjny /etc/bluetooth/main.confpoprzez włączenie AutoEnable=true.

Aby sparować nowe urządzenie z terminalem (zakładając, że 01:02:03:04:05:06jest to adres mac urządzenia, które próbujesz sparować):

$ bluetoothctl
# power on
# agent KeyboardOnly
# default-agent
# pairable on
# scan on
# pair 01:02:03:04:05:06
# trust 01:02:03:04:05:06
# connect 01:02:03:04:05:06
# quit
$ exit
psq
źródło
Tak, część zaufania była tym, co sprawiło, że mogłem automatycznie połączyć się przy starcie.
p1l0t
0

Kupiłem klawiaturę bluetooth i wylądowałem na tej stronie tutaj, i wypróbowałem Ryandlf i sugestie Ch.Idea. Nie działało. Po kilku analizach i próbach znalazłem tę kombinację:

Najpierw, jak sugerowali faceci, spróbuj ręcznie podłączyć urządzenie z GUI. Upewnij się, że działa. Następnie odłącz go i wyłącz. Zaczniemy wtedy ręcznie.

Uzyskaj uprawnienia roota:

su

Następnie:

hcitool scan

i jednocześnie naciśnij przyciski lub cokolwiek innego na urządzeniu i upewnij się, że zostanie wykryty. Jeśli zostanie wykryty, powinien wydrukować jego adres, np. 20: 73: 00: 01: 90: 65 oraz opis urządzenia, np. Klawiatury Bluetooth. Chwyć ten adres do schowka.

Następnie jesteśmy gotowi do połączenia. KAŻDY WSZYSTKO W INTERNECIE SUGEROWANYCH UKRYTÓW, KTÓRE SĄ NIEWŁAŚCIWE, JEŚLI JUŻ NIE OBECNIE. Dlatego nie mogłem pracować tak długo ... Po spojrzeniu na człowieka z hcitool znalazłem wiele użytecznych poleceń i nie muszę używać dbus ani nic takiego. Aby go połączyć, wydajemy:

hcitool cc 20:73:00:01:90:65

i to wszystko.

Eksperymenty wykazały, że nawet automatycznie łączy się ponownie, gdy chwilowo wyłączyłem urządzenie.

CZĘŚĆ 2.

Stworzyłem również usługę, jak sugerowali faceci w innych odpowiedziach. Najpierw utworzyłem plik /etc/init.d/keyboard z następującą zawartością:

#! /bin/sh
sudo hcitool cc 20:73:00:01:90:65
exit 0

Następnie jako root:

chmod +x /etc/init.d/keyboard
service keyboard enable
update-rc.d keyboard defaults
service keyboard start

Otóż ​​to. Mam nadzieję, że to pomoże.

Aha, a to Debian 9.

Leonid Titov
źródło