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

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

  • /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. – pepper_chico Feb 4 '17 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 '17 at 11:03
  • Oh and also, show the lsusb output for the device as well. – Hydranix Feb 4 '17 at 11:05
  • I power it from bluetoothctl console, I just type power on. lsusb: i.imgur.com/aI7TBV0.png. – pepper_chico Feb 4 '17 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. – pepper_chico Feb 4 '17 at 17:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.