Bluetooth issues

Just installed Manjaro today, paired Bluetooth headphones and they worked for a while. Then they cut out I turned off Bluetooth, but it wont turn on anymore. I’ve tried unplugging, restarting and restarting the service. The Bluetooth menu shows me that “No Bluetooth found, Plug in a dongle to use Bluetooth.”. I am using Manjaro GNOME

Check out in files -> other locations -> Computer -> etc -> bluetooth
Check if there is any file named “main.conf” or “audio.conf”

If there is no such file, follow these steps:

Problem: Bluetooth headphone/speaker is getting connected but audio output is not transfered to the device.
Bluetooh headphones/speakers fixed (based on Gnome Desktop)

  1. Open terminal and type
    cd /etc/bluetooth
    sudo gedit audio.conf

       		or
    

    Open files -> other locations -> Computer -> etc -> bluetooth
    Then right click on the window and click on “Open as Administrator”

    Enter your root access password and authenticate.
    p.s. If you are opening in files app, a new window will open which gives you the root access.

    Now right click on the new window and click on “Open in Terminal” and type
    gedit audio.conf

  2. paste the following code in the text file and save it. :

    Configuration file for the audio service

    This section contains options which are not specific to any

    particular interface

    [General]
    Enable=Source,Control,Sink
    Disable=Headset,Gateway

    Switch to master role for incoming connections (defaults to true)

    Master=true

    If we want to disable support for specific services

    Defaults to supporting all implemented services

    Disable=Control,Source

    SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA)

    Defaults to HCI

    SCORouting=PCM

    Automatically connect both A2DP and HFP/HSP profiles for incoming

    connections. Some headsets that support both profiles will only connect the

    other one automatically so the default setting of true is usually a good

    idea.

    AutoConnect=true

    Headset interface specific options (i.e. options which affect how the audio

    service interacts with remote headset devices)

    [Headset]

    Set to true to support HFP (in addition to HSP only which is the default)

    Defaults to false

    HFP=true

    Maximum number of connected HSP/HFP devices per adapter. Defaults to 1

    MaxConnections=1

    Set to true to enable use of fast connectable mode (faster page scanning)

    for HFP when incomming call starts. Default settings are restored after

    call is answered or rejected. Page scan interval is much shorter and page

    scan type changed to interlaced. Such allows faster connection initiated

    by a headset.

    FastConnectable=false

    Just an example of potential config options for the other interfaces

    [A2DP]
    SBCSources=1
    MPEG12Sources=0

    [AVRCP]
    InputDeviceName=AVRCP

  3. Close the text file and open it again from the files window to see if the code is saved.

    				Or
    

    for terminal type
    gedit audio.conf

  4. If the file is saved and present, close all windows.
    Update the System:
    For Arch based System terminal:
    sudo pacman -Syu

  5. Enter the password and wait for the update to finish and the reboot the system.

  6. Now try connecting a bluetooth headphone or speaker. The audio output should be changed to the device automatically.
    p.s. In my case, when I connected my mobile phone, the audio of my mobile phone also now changes to the laptop’s audio output. This may not be desired but its not a matter of problem.

If “main.conf” is not present, follow the above steps to create a file “main.conf” and paste the following code:

[General]

Default adapter name

Defaults to ‘BlueZ X.YZ’

#Name = BlueZ

Default device class. Only the major and minor device class bits are

considered. Defaults to ‘0x000000’.

#Class = 0x000100

How long to stay in discoverable mode before going back to non-discoverable

The value is in seconds. Default is 180, i.e. 3 minutes.

0 = disable timer, i.e. stay discoverable forever

#DiscoverableTimeout = 0

Always allow pairing even if there are no agent registered

Possible values: true, false

Default: false

#AlwaysPairable = false

How long to stay in pairable mode before going back to non-discoverable

The value is in seconds. Default is 0.

0 = disable timer, i.e. stay pairable forever

#PairableTimeout = 0

Use vendor id source (assigner), vendor, product and version information for

DID profile support. The values are separated by “:” and assigner, VID, PID

and version.

Possible vendor id source values: bluetooth, usb (defaults to usb)

#DeviceID = bluetooth:1234:5678:abcd

Do reverse service discovery for previously unknown devices that connect to

us. For BR/EDR this option is really only needed for qualification since the

BITE tester doesn’t like us doing reverse SDP for some test cases, for LE

this disables the GATT client functionally so it can be used in system which

can only operate as peripheral.

Defaults to ‘true’.

#ReverseServiceDiscovery = true

Enable name resolving after inquiry. Set it to ‘false’ if you don’t need

remote devices name and want shorter discovery cycle. Defaults to ‘true’.

#NameResolving = true

Enable runtime persistency of debug link keys. Default is false which

makes debug link keys valid only for the duration of the connection

that they were created for.

#DebugKeys = false

Restricts all controllers to the specified transport. Default value

is “dual”, i.e. both BR/EDR and LE enabled (when supported by the HW).

Possible values: “dual”, “bredr”, “le”

#ControllerMode = dual

Enables Multi Profile Specification support. This allows to specify if

system supports only Multiple Profiles Single Device (MPSD) configuration

or both Multiple Profiles Single Device (MPSD) and Multiple Profiles Multiple

Devices (MPMD) configurations.

Possible values: “off”, “single”, “multiple”

#MultiProfile = off

Permanently enables the Fast Connectable setting for adapters that

support it. When enabled other devices can connect faster to us,

however the tradeoff is increased power consumptions. This feature

will fully work only on kernel version 4.1 and newer. Defaults to

‘false’.

#FastConnectable = false

Default privacy setting.

Enables use of private address.

Possible values: “off”, “device”, “network”

“network” option not supported currently

Defaults to “off”

Privacy = off

Specify the policy to the JUST-WORKS repairing initiated by peer

Possible values: “never”, “confirm”, “always”

Defaults to “never”

#JustWorksRepairing = never

[GATT]

GATT attribute cache.

Possible values:

always: Always cache attributes even for devices not paired, this is

recommended as it is best for interoperability, with more consistent

reconnection times and enables proper tracking of notifications for all

devices.

yes: Only cache attributes of paired devices.

no: Never cache attributes

Default: always

#Cache = always

Minimum required Encryption Key Size for accessing secured characteristics.

Possible values: 0 and 7-16. 0 means don’t care.

Defaults to 0

#KeySize = 0

Exchange MTU size.

Possible values: 23-517

Defaults to 517

#ExchangeMTU = 517

Number of ATT channels

Possible values: 1-5 (1 disables EATT)

Default to 3

#Channels = 3

[Policy]

The ReconnectUUIDs defines the set of remote services that should try

to be reconnected to in case of a link loss (link supervision

timeout). The policy plugin should contain a sane set of values by

default, but this list can be overridden here. By setting the list to

empty the reconnection feature gets disabled.

#ReconnectUUIDs=00001112-0000-1000-8000-00805f9b34fb,0000111f-0000-1000-8000-00805f9b34fb,0000110a-0000-1000-8000-00805f9b34fb

ReconnectAttempts define the number of attempts to reconnect after a link

lost. Setting the value to 0 disables reconnecting feature.

#ReconnectAttempts=7

ReconnectIntervals define the set of intervals in seconds to use in between

attempts.

If the number of attempts defined in ReconnectAttempts is bigger than the

set of intervals the last interval is repeated until the last attempt.

#ReconnectIntervals=1,2,4,8,16,32,64

AutoEnable defines option to enable all controllers when they are found.

This includes adapters present on start as well as adapters that are plugged

in later on. Defaults to ‘false’.

#AutoEnable=false

After this update the system and reboot. Bluetooth should work fine.