Bluetooth daemon
In the default installation a daemon (bluetoothd) runs in the background (run from the file /etc/init.d/bluetooth
). This daemon takes care on recognizing and connecting to known bluetooth devices and may be cofigured with configuration files in /etc/bluetooth
. For autoconneting a headset the following line in audio.conf
should be uncommented (remove #
):
AutoConnect=true
To restart the daemon type sudo /etc/init.d/bluetooth restart
.
Remark: Using the command line tool sudo hcitool cc <MAC-Adress>
did not lead to a stable connection to a known device in the test environment here when the daemon was running.
DBus
In order to connect a disconnected but physically present and paired headset we can use D-Bus from a script. Here's an example in python:
#!/usr/bin/python
# Toggles headset connection
import dbus
from dbus.mainloop.glib import DBusGMainLoop
dbus_loop = DBusGMainLoop()
bus = dbus.SystemBus(mainloop=dbus_loop)
#Get dbus interface for headset
manager = bus.get_object('org.bluez', '/')
iface_m = dbus.Interface(manager, 'org.bluez.Manager')
adapterPath = iface_m.DefaultAdapter()
adapter = bus.get_object('org.bluez', adapterPath)
iface_a = dbus.Interface(adapter, 'org.bluez.Adapter')
devicePath = iface_a.ListDevices()[0] # assuming first device
device = bus.get_object('org.bluez', devicePath)
iface_h = dbus.Interface(device, 'org.bluez.Headset')
#Check state of connection
connected = iface_h.IsConnected()
print 'Toggling connection. Please wait'
# toggle connection
if not connected:
try:
iface_h.Connect()
print 'Connecting: ', devicePath
except:
print 'Device not found'
else:
iface_h.Disconnect()
print 'Disconnecting: ', devicePath
In case we have more than one Bluetooth device we will have to adapt the devicePath
appropriately, of course. The example above will connect a Headset
. Change the interface to a different protocol for any other service (e.g. AudioSink
).
Pulseaudio
If you know the MAC adress of your Bluetooth device you can connect it as an output sink for pulseaudio by:
pacmd set-default-sink bluez_sink.xx_xx_xx_xx_xx_xx
Where xx_xx_xx_xx_xx_xx is the MAC address (replace ':' by '_' for pulseaudio to recognize it).
See also this answer for more details.
Best Answer
Save the following as
usbreset.c
The run the following commands in terminal:
Compile the program:
Get the Bus and Device ID of the USB device you want to reset:
Make our compiled program executable:
Execute the program with sudo privilege; make necessary substitution for
<Bus>
and<Device>
ids as found by running thelsusb
command:Source of above program: http://marc.info/?l=linux-usb&m=121459435621262&w=2