How can I deactivate Bluetooth on system startup?
18.04+ users who don't naturally have a /etc/rc.local, you'll need to create one and make it executable. To make things slightly easier, you can just paste the following command into a terminal:
sudo install -b -m 755 /dev/stdin /etc/rc.local << EOF #!/bin/sh rfkill block bluetooth exit 0 EOF
sudoedit /etc/rc.local and add this before line with
rfkill block bluetooth
You should still be able to enable Bluetooth through the top bar applet.
This should work for most systems but it looks like there are a few bugs lurking in the kernel's ACPI for Thinkpads. If you're on a Thinkpad, add the following to
echo disable > /proc/acpi/ibm/bluetooth
Or check out ibm-acpi - IBM ThinkPad ACPI Extras Driver -- some reports suggest that ibm-acpi includes bluetooth control (amongst other nice things). But I don't have the hardware so I'm completely unable to verify these claims. Good luck.
/etc/bluetooth/main.conf was enough for me.
Search for the entry:
and change the value to:
It was enough for me, although the article describes some other steps that may or may not be necessary.
On Ubuntu 17.04 and older the option was named
From ubuntu 16.04 onwards systemd manages startup services like bluetooth ... to view current status issue following in a terminal
sudo systemctl status bluetooth.service
to deactivate bluetooth on startup issue this
sudo systemctl disable bluetooth.service
then on next reboot bluetooth will not be active ... to enable bluetooth issue ( then reboot )
sudo systemctl enable bluetooth.service
1. block bluetooth in rc.local
Add this line at the end of the file
/etc/rc.local right before the line
rfkill block bluetooth
This will do the trick, but only in older Ubuntu versions using upstart.
2. reenable rc.local on systemd
On Ubuntu 15.10 with systemd as startup manager the
/etc/rc.local file is not used by default any more, so call this on a terminal:
sudo systemctl edit --full rc-local
Which opens an editor. At the end of the file i added:
Those changes are activated by
sudo systemctl reenable rc-local
Now the file
/etc/rc.local is used as you know it.
3. disable blueman-applet on start
sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/blueman.desktop gnome-session-properties
Now blueman-applet is visible and you can disable it from startup programs
4. Reboot to see the effect
You can change the services started at boot with the help of BUM.
sudo apt-get install bum
Uncheck the box and click Apply.
I found another answer using tlp that works great for me with Ubuntu 18.04. Probably first tlp must be installed with
sudo apt install tlp
Then the file
contains some settings about devices like wifi and bluetooth. There is the key
which is by default set to 0. After I switched it to 1 my last setting is remembered on the next boot. That means when I disable bluetooth in the top panel it stays disabled and when I enable bluetooth it stays enabled. Also there is the key
which can be set to
Now bluetooth will be disabled on each boot. After changing this configuration bluetooth will can be enabled and disabled through menu and panel item. I think it's better than removing it from kernel modules.
Maybe you can turn it off in the Startup Applications. But these applications are hidden by default. Unhide the hidden Startup Applications in 12.04: Open the terminal and run these two commands:
cd /etc/xdg/autostart/ sudo sed --in-place 's/NoDisplay=true/NoDisplay=false/g' *.desktop
Now you can uncheck bluetooth. (Don't remove!)
1) Install the package smbios-utils and add it to Startup Applications with:
sudo smbios-wireless-ctl --bt 0
2) In terminal type:
and add to the end of opened file
/etc/sudoers the line:
<your username> ALL = NOPASSWD: /usr/sbin/smbios-wireless-ctl
3) To switch bluetooth on during session, run in terminal:
sudo smbios-wireless-ctl --bt 1
This works for me on my Dell D630 with Ubuntu 13.10
On Ubuntu 16.04, I simply disabled the service from starting up using systemctl.
To do this, open up a terminal window and type the following:
sudo systemctl disable bluetooth
You can either reboot since now bluetooth will be disabled from starting up, or if you do not want to reboot and want to stop bluetooth right away, you can type:
sudo service bluetooth stop
If you're using the Bluetooth applet in the top panel (blueman-applet), it has its own setting that will automatically turn Bluetooth on even if you've disabled it in other places (like /etc/bluetooth/main.conf or /etc/default/tlp).
To prevent Bluetooth from turning on at startup using the command line:
gsettings set org.blueman.plugins.powermanager auto-power-on false
Or through the GUI:
- Click the Bluetooth applet > Plugins > PowerManager > Configuration
- Uncheck Auto power-on
Next time you reboot, the Bluetooth applet will still be visible but Bluetooth will be off. To turn it on:
Click the Bluetooth applet > Turn Bluetooth On
Since Ubuntu 18.04 (with GNOME) you need to
Edit /etc/bluetooth/main.conf and find
AutoEnable = true
and change the value to:
AutoEnable = false
So this device is not powered on startup.
Edit /etc/default/tlp and find:
#DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan"
Edit this line to read:
So this device is disabled on startup.
Then open Dash and search for "Startup Applications". Uncheck any items related to Bluetooth in the list. Click [Close] to save.
I using Sputnik Kernel, which fixed this on my Dell Inspiron 14R N4110.
For those of you where inserting the line
rfkill block bluetooth (or any other) in
/etc/rc.local doesn't work, try to include the same line in the end of
In my set up (Ubuntu 14.04, Thinkpad W540), no option worked inserting it in
/etc/rc.local but the former did work in bashrc. Note this will work just for the current user, not globally for all users.
Pure systemd solution (16.04+)
Rather than use the legacy rc-local solution, here is a clean and portable systemd service that suspends bluetooth upon boot and also after waking up from sleep.
- Using sudo, create
/etc/systemd/system/bluetooth-suspend.servicewith the following contents:
[Unit] Description=Disable bluetooth after waking up. After=suspend.target network.target [Service] User=root Environment=DISPLAY=:0 ExecStart=/usr/sbin/rfkill block bluetooth [Install] WantedBy=suspend.target network.target
Enable the service:
sudo systemctl enable bluetooth-suspend.service
sudo systemctl daemon-reload
To re-enable bluetooth, run
rfkill unblock bluetooth in the terminal.