У меня есть блютуз клавиатура для моего 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
Этот ответ взят из учебника, написанного Эндрю Мартином на thetechdepo.com. См. Ссылку ниже на исходный пост, однако это полная переработка. Написан специально для яблочной клавиатуры,однако я использовал его для нескольких устройств, поэтому он не привязан к яблоку или клавиатуре. Просто следуйте инструкциям, и у вас будет автоматическое подключение любого устройства Bluetooth в Ubuntu.
Перейдите в Системные настройки> Bluetooth и следуйте инструкциям, чтобы добавить новое подключенное устройство Bluetooth.
Следуйте инструкциям и введите PIN-код по запросу, затем после того, как устройство подключено и заработает, выключите его. Теперь перейдем к части автоматического подключения.
Откройте свой терминал и введите следующие команды:
$ 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 сам, но нашел другую простую настройку, которая в конечном итоге выполнит ту же работу.
Основная идея заключается в том, что как только удаленное устройство подключено и доверено, hcitool spinq
будет инициировать периодический запрос, который позволит подключить все доступные устройства.
Сначала запустите sudo Bluetoothctl -a
и выполните шаги ниже. Это из вики ArchLinux , но доказано, что они работают так же и в 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.
Начиная с 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
У меня была очень похожая проблема с клавиатурой Apple BlueTooth. Я купил ее, потому что мне нравилось ощущение клавиш. Тем не менее, я не мог держать ее на связи. Проблема, похоже, заключалась в идентификации клавиатуры. Как только клавиатура была сопоставлена с реальным MAC-компьютером, где она получила настоящее имя, у меня больше не было проблем с подключением к Linux или Windows. Теперь моя жена пользуется им без проблем.
Не знаю, как это можно перенести в вашу ситуацию, но это может быть отправной точкой. От других друзей кажется, что здесь основная проблема - это идентификация устройства.
Я купил клавиатуру bluetooth, попал на эту страницу и попробовал, что предлагал ryandlf и что Ch.Idea. Это не сработало. После некоторого анализа и испытаний я нашел такую комбинацию:
Сначала, как предложили ребята, попробуйте подключить устройство вручную через графический интерфейс. Убедитесь, что это работает. Затем отключите его и выключите. Тогда мы начнем сначала вручную.
Получите привилегии root:
su
Затем:
hcitool scan
и одновременно нажмите кнопки или что-то еще на устройстве, и убедитесь, что оно обнаружено. Если обнаружено, он должен напечатать его адрес, например 20: 73: 00: 01: 90: 65 и описание устройства, например Bluetooth-клавиатура. Захватите этот адрес в буфер обмена.
Теперь мы готовы к подключению. ВСЕ В ИНТЕРНЕТЕ ПРЕДЛАГАЮТ УКАЗАТЬ, ЧТО НЕВЕРНО, КАК ЕГО НЕТ НИКАКОГО. Вот почему я не мог так долго работать с этой задачей ... Посмотрев на man of 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.