ключ bluetooth не включается при подключении, только при загрузке

При выполнении sudo hcitool lescan я получаю:

Set scan parameters failed: Input/output error

Выполняя bluetoothctl и используя команду show , нацеленную на контроллер ключа, я заметил, что это " Работает: нет ". При включении sudo hcitool lescan работает должным образом.

Я использую ArchLinux со следующим стеком bluetooth:

~ ❯❯❯ pacman -Qs bluetooth
extra/bluez 5.43-2
    Daemons for the bluetooth protocol stack
extra/bluez-firmware 1.2-8
    Firmwares for Broadcom BCM203x and STLC2300 Bluetooth chips
extra/bluez-libs 5.43-2
    Deprecated libraries for the bluetooth protocol stack
extra/bluez-utils 5.43-2
    Development and debugging utilities for the bluetooth protocol stack
extra/gnome-bluetooth 3.20.0+6+g3bac4f9-1
    The GNOME Bluetooth Subsystem
extra/pulseaudio-bluetooth 10.0-2
    Bluetooth support for PulseAudio
community/python2-pybluez 0.22-2
    Python wrapper for the BlueZ Bluetooth stack
extra/sbc 1.3-1
    Bluetooth Subband Codec (SBC) library

Есть ли способ исправить plug & play и сделать контроллер bluetooth получает питание, когда он подключается? (если я позволю ему подключиться, он будет работать, как ожидалось, после загрузки, без отключения)

power controller on

0
04.02.2017, 19:25
1 ответ

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

Лучшим вариантом будет использование чего-то более легко настраиваемого. Bluetoothctl требует, чтобы вы отправляли команды в stdin, что немного странно.

С этим должно справиться правило udev для обнаружения подключенного устройства.

Обратите внимание, что на машинах со встроенным bluetooth-радио, очень вероятно, что hci0 будет относиться не к внешнему blueotoh-ключу, а к встроенному.

В подобных случаях замените hci0 на hci1 в следующем содержимом файла.

Создайте этот файл: /etc/udev/rules.d/10-local.rules

Содержание:

ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig %k up"



Если это не сработает, вместо этого можно попробовать написать сценарий bluetoothctl.

Правило udev будет выглядеть примерно так:

ACTION=="add", KERNEL=="hci0", RUN+="/usr/local/bin/PowerOnBluetooth"

Создайте этот файл: /usr/local/bin/PowerOnBluetooth

Содержание:

#!/bin/bash
echo -e 'power on\nquit\n' | bluetoothctl

Не забудьте пометить файл исполняемым:

chmod +x /usr/local/bin/PowerOnBluetooth



Источники:

ArchWiki

Пользователь Archlinux с той же проблемой

1
28.01.2020, 02:46

Теги

Похожие вопросы