0

When executing sudo hcitool lescan I get:

Set scan parameters failed: Input/output error

Executing bluetoothctl and using the show command targetting the dongle's controller I noticed it's "Powered: no". Powering it on makes sudo hcitool lescan work as expected.

I'm on ArchLinux with the following bluetooth stack:

~ ❯❯❯ 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

Is there a way to fix plug & play and make the bluetooth controller powered when it gets plugged? (if I let it plugged, it works as expected after boot, without disconnecting)

power controller on

1 Answer 1

1

You can automate the bluetoothctl program to power on the device for you when it is connected to the computer.

A better option is to use something more easily scriptable. Bluetoothctl requires you echo commands to stdin, a little strange.

A udev rule to detect the device being plugged in should be able to handle this.

Please note, that on machines with built-in bluetooth radios, it's very likely that hci0 would refer not to the external blueotoh dongle, but instead to the built-in one.

In cases like that, substitute hci0 with hci1 in the following file contents.

Create this file: /etc/udev/rules.d/10-local.rules

Contents:

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



If that dosn't work, you can try scripting bluetoothctl instead.

The udev rule would look something like this:

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

Create this file: /usr/local/bin/PowerOnBluetooth

Contents:

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

Don't forget to mark the file executable:

chmod +x /usr/local/bin/PowerOnBluetooth



Sources:

ArchWiki

Archlinux user with same problem

14
  • /power/control for the device is auto on connect, changing to on didn't produce any effect, and when unplugging/plugging it, it resets to auto.
    – oblitum
    Feb 4, 2017 at 4:57
  • Maybe I'm misunderstanding your problem. How exactly do you power on the device when it is in the state "Powered: no"?
    – Hydranix
    Feb 4, 2017 at 11:03
  • Oh and also, show the lsusb output for the device as well.
    – Hydranix
    Feb 4, 2017 at 11:05
  • I power it from bluetoothctl console, I just type power on. lsusb: i.imgur.com/aI7TBV0.png.
    – oblitum
    Feb 4, 2017 at 17:15
  • Notice that "Set scan parameters failed: Input/output error" is quite easy to find on google, most questions with no answer accepted, and I figured to power on through bluetoothctl by myself, and it works, although annoying. Answers provided in other QAs didn't help at all.
    – oblitum
    Feb 4, 2017 at 17:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .