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)
Open terminal and type
sudo gedit audio.conf
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
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
Switch to master role for incoming connections (defaults to true)
If we want to disable support for specific services
Defaults to supporting all implemented services
SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA)
Defaults to HCI
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
Headset interface specific options (i.e. options which affect how the audio
service interacts with remote headset devices)
Set to true to support HFP (in addition to HSP only which is the default)
Defaults to false
Maximum number of connected HSP/HFP devices per adapter. Defaults to 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.
Just an example of potential config options for the other interfaces
Close the text file and open it again from the files window to see if the code is saved.
for terminal type
If the file is saved and present, close all windows.
Update the System:
For Arch based System terminal:
sudo pacman -Syu
Enter the password and wait for the update to finish and the reboot the system.
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:
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
#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
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
#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 attribute cache.
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
yes: Only cache attributes of paired devices.
no: Never cache attributes
#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
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.
ReconnectAttempts define the number of attempts to reconnect after a link
lost. Setting the value to 0 disables reconnecting feature.
ReconnectIntervals define the set of intervals in seconds to use in between
If the number of attempts defined in ReconnectAttempts is bigger than the
set of intervals the last interval is repeated until the last attempt.
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’.
After this update the system and reboot. Bluetooth should work fine.