Как я могу автоматически подключиться к клавиатуре Bluetooth при запуске?

10

У меня есть блютуз клавиатура для моего HTPC. Я подключаю его к компьютеру через Bluetooth, и он работает нормально. Однако, когда я выключаю клавиатуру или мой компьютер, он должен снова подключиться (что требует ввода пароля на компьютере и клавиатуре), когда я снова включаю их. Я просмотрел много форумов и через это обнаружил, что мне не хватает некоторых, казалось бы, жизненно важных файлов Bluetooth

/etc/default/bluetooth

/etc/init.d/bluetooth

/etc/bluetooth/hcid.conf

В инструкциях, которые я нашел онлайн, я должен изменить некоторые строки в любом из этих файлов. Я не в состоянии, так как их не существует.

Я пропускаю зависимость или что-то? Я также пытался установить Blueman, но это не помогло.

Я использую Ubuntu 10.10 (Maverick).

Исходное сообщение: http://ubuntuforums.org/showthread.php?t=1643386&highlight=bluetooth

Грант
источник

Ответы:

11

Этот ответ взят из учебника, написанного Эндрю Мартином на thetechdepo.com. Посмотрите ссылку ниже для оригинального сообщения, однако это - полное переписывание. Он написан специально для яблочной клавиатуры, однако я использовал его для нескольких устройств, так что это не яблоко или клавиатура. Просто следуйте инструкциям, и вы получите автоматическое подключение любого устройства Bluetooth в Ubuntu.

Перейдите в «Настройки системы»> «Bluetooth» и следуйте инструкциям, чтобы добавить новое подключенное устройство Bluetooth.

Следуйте инструкциям и введите пин-код при запросе, затем после того, как устройство подключено и работает, выключите устройство. Теперь перейдем к части автоматического подключения.

Откройте свой терминал и введите следующие команды:

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

Последняя команда отобразит вывод для вашего устройства, например:

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

Установите новый пакет, чтобы позволить вам подключить Bluetooth через командную строку.

$ sudo apt-get install bluez-compat

После этого у вас будет установлена ​​программа hidd. В этот момент включите клавиатуру и введите следующую команду. Он выведет MAC-адрес вашей клавиатуры, который вам нужно будет скопировать и вставить в следующую команду, как показано ниже:

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

Теперь нам нужно создать загрузочный файл для автоматического подключения устройства при запуске компьютера. Через терминал ...

$ gedit ~/.keyboard.sh

Введите следующий текст, заменив AA: BB: CC: DD: EE: FF идентификатором оборудования, который вы видели выше. Наконец, сохраните файл.

#! /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

Теперь создайте новый файл запуска. Замените «клавиатура» на любое имя устройства, которое вы выберете. Это просто имя файла.

$ sudo gedit /etc/init.d/keyboard

Вставьте следующее, которое говорит вашей Ubuntu запустить файл, который вы только что создали при запуске.

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

exit 0

Теперь установите права доступа к обоим файлам для запуска через терминал.

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

Перезагрузите компьютер, и ваше устройство должно автоматически подключиться и работать без каких-либо действий.

Я надеюсь, что это поможет нескольким людям, мне потребовалось много времени, чтобы найти решение моей проблемы, и я хотел немного углубить этот урок в сеть.

Оригинальную ссылку можно найти здесь .

ryandlf
источник
Я считаю, что hidd устарела с bluez 4.0 в пользу udev, согласно /usr/share/docs/bluez/NEWS.Debian.gz, но я не могу найти никакой документации о том, как это сделать без bluez-compat.
Tu-Reinstate Моника-Дор Дух
3

Я также попробовал сам ответить ryandlf, но нашел другую простую установку, которая в конечном итоге сделает ту же работу.

Основная идея заключается в том, что как только удаленное устройство будет сопряжено и доверено, оно hcitool spinqбудет инициировать периодический запрос, который позволит подключить все доступные устройства.

Сначала начните sudo Bluetoothctl -aи следуйте инструкциям ниже. Они из ArchLinux wiki, но доказали свою работоспособность и в Ubuntu.

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

Последняя команда покажет все доступные (ожидающие сопряжения) Bluetooth-клавиатуры, подобные этой.

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

Запишите тот адрес вашей клавиатуры и продолжайте с ним.

[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

Теперь поместите этот простой скрипт в /etc/init.d/keyboard

#! /bin/sh
sudo hcitool spinq
exit 0

Затем выполните это.

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

Вот и все. Теперь, когда вы включаете клавиатуру Bluetooth, она автоматически подключается к вашему Linux.

Ch.Idea
источник
$ sudo update-rc.d keyboard defaults insserv: script keyboard is not an executable regular file, skipped!Чтобы решить, я выполнил sudo chmod +x /etc/init.d/keyboard. Затем я выполнил sudo update-rc.d keyboard defaults. Полученное предупреждение: insserv: warning: script 'keyboard' missing LSB tags and overrides.
Орширо
Как насчет sudo service keyboard enable?
Орширо
Да, вы сделали правильно с chmod +x.
Ch.Idea
Ошибка пропуска меток LSB может быть проигнорирована и не очень важна в этой задаче. Если вы хотите, найдите его, погуглив и вставив поверх файла. Они в простой форме.
Ch.Idea
1

У меня была очень похожая проблема с клавиатурой Apple BlueTooth. Я купил его, потому что мне нравилось ощущение клавиш. Однако я не мог держать это в курсе. Проблема, казалось, была в идентификации клавиатуры. Как только он был сопоставлен с реальным компьютером MAC, где он получил настоящее имя, у меня больше не было проблем с подключением его к Linux или Windows. Моя жена сейчас использует это без проблем.

Я не знаю, как это можно перенести в вашу ситуацию, но это может стать отправной точкой. Из других друзей, кажется, что идентификация устройства является главной проблемой здесь.

jfmessier
источник
1

Начиная с bluez 5.35 (сентябрь 2015 г.), этого должно быть достаточно для изменения файла конфигурации /etc/bluetooth/main.confпутем включения AutoEnable=true.

Чтобы подключить новое устройство из терминала (при условии, что 01:02:03:04:05:06это MAC-адрес устройства, которое вы пытаетесь подключить):

$ 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
источник
Да, именно благодаря доверию я смог автоматически подключиться при запуске.
19
0

Я купил клавиатуру Bluetooth, и приземлился на этой странице здесь, и попробовал, что ryandlf и что предложил Ch.Idea. Это не сработало. После некоторого анализа и испытаний я нашел эту комбинацию:

Сначала, как предложили ребята, попробуйте подключить устройство вручную из графического интерфейса. Убедитесь, что это работает. Затем отключите его и выключите. Мы начнем сначала вручную.

Получить права root:

su

Потом:

hcitool scan

и одновременно нажмите кнопки или что-то еще на устройстве, и убедитесь, что оно обнаружено. Если обнаружено, он должен напечатать его адрес, например, 20: 73: 00: 01: 90: 65, и описание устройства, например, клавиатуру Bluetooth. Возьмите этот адрес в буфер обмена.

Далее мы готовы к подключению. ВСЕ ВСЕ В ИНТЕРНЕТЕ ПРЕДЛОЖИЛИ СКРЫТЬ, ЧТО ПРОИСХОДИТ, ЧТО ЭТОГО НЕТ НИКАКОГО. Вот почему я не мог заставить эту работу так долго ... Посмотрев на человека из hcitool, я нашел много полезных команд, и мне не нужно было использовать dbus или что-то еще. Итак, для его подключения мы выдаем:

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

вот и все.

Эксперименты показали, что он даже автоматически переподключается, когда я временно выключаю устройство.

ЧАСТЬ 2.

Я также создал сервис, как ребята предложили в других ответах. Сначала я создал файл /etc/init.d/keyboard со следующим содержимым:

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

Затем с правами root:

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

Вот и все. Надеюсь, это поможет.

О, и это Debian 9

Леонид Титов
источник