dongle do bluetooth não ligado quando conectado, somente na inicialização

0

Ao executar sudo hcitool lescan , obtenho:

Set scan parameters failed: Input/output error

Executando bluetoothctl e usando o comando show direcionado ao controlador do dongle, notei que é "Powered: no". Ativá-lo faz com que sudo hcitool lescan funcione como esperado.

Estou no ArchLinux com a seguinte pilha 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

Existe uma maneira de corrigir o plug & jogar e tornar o controlador bluetooth alimentado quando fica ligado? (se eu deixar ligado, funciona como esperado depois da inicialização, sem desconectar)

    
por pepper_chico 04.02.2017 / 04:33

1 resposta

1

Você pode automatizar o programa bluetoothctl para ligar o dispositivo quando ele estiver conectado ao computador.

A melhor opção é usar algo mais facilmente programável. O Bluetoothctl requer que você faça echo de comandos para stdin, um pouco estranho.

Uma regra do udev para detectar o dispositivo sendo conectado deve ser capaz de lidar com isso.

Por favor, note que em máquinas com rádios bluetooth embutidos, é muito provável que hci0 se refira não ao dongle externo blueotoh, mas ao built-in.

Em casos como esse, substitua hci0 por hci1 no seguinte conteúdo do arquivo.

Crie este arquivo: /etc/udev/rules.d/10-local.rules

Conteúdo:

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


Se isso não funcionar, você pode tentar o script bluetoothctl.

A regra do udev seria algo como isto:

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

Crie este arquivo: /usr/local/bin/PowerOnBluetooth

Conteúdo:

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

Não se esqueça de marcar o arquivo executável:

chmod +x /usr/local/bin/PowerOnBluetooth


Fontes:

ArchWiki

usuário do Archlinux com o mesmo problema

    
por 04.02.2017 / 05:40