如何在系统启动时停用蓝牙?


328

如何在系统启动时停用蓝牙?


我不认为“应该是自然的默认配置”,人们注定要在计算机上使用蓝牙而不必打开蓝牙(您似乎没有蓝牙鼠标或键盘,如果那是您的您希望从引导启动蓝牙的主要输入设备)。但是,我确实同意,一种选择蓝牙启动方式的方法将很有用。
roadmr 2012年

61
正常自然的事情是让您在蓝牙设置中选择启动时是打开还是关闭。人们每次打开计算机时都将其关闭或打开是很自然的。我们正在谈论使Linux成为最好的桌面系统,而不是最糟糕的桌面系统,不是吗?
罗伯特

我们同意让人们选择是最好的选择。请参阅此处了解执行此操作的一些可能方式。answers.launchpad.net/ubuntu/+source/bluez/+question/51440
roadmr'5

1
这是错误#1073669
科兰

6
令人难以置信的是,在第14版上,我们仍在“教” Ubuntu开发人员,例如“启动时打开或关闭蓝牙的选项应该对普通用户可用,而不仅仅是那些喜欢在无休止的行中搜索的人”论坛”。
罗德里戈

Answers:


208

18.04+用户自然不具有/etc/rc.local,则需要创建一个并使其可执行。为了使事情变得简单一些,您可以将以下命令粘贴到终端中:

sudo install -b -m 755 /dev/stdin /etc/rc.local << EOF
#!/bin/sh
rfkill block bluetooth
exit 0
EOF

运行sudoedit /etc/rc.local并添加以下内容exit 0

rfkill block bluetooth

您仍然应该能够通过顶部的小程序启用蓝牙。

应该适用于大多数系统,但它看起来像有一些bug在内核的ACPI的ThinkPad笔记本电脑。如果您使用的是Thinkpad,请将以下内容添加到/etc/rc.local

echo disable > /proc/acpi/ibm/bluetooth

或查看ibm-acpi-IBM ThinkPad ACPI Extras驱动程序 -一些报告表明ibm-acpi包括蓝牙控制(以及其他一些不错的功能)。但是我没有硬件,因此我完全无法验证这些声明。祝好运。


6
对于Thinkpads(和仅有的Thinkpads),此方法有效:echo disable > /proc/acpi/ibm/bluetooth在/etc/rc.local中
Marius Gedminas,

4
rfkill block bluetooth为Thinkpad
T430u

5
当我一次将它们放置在时,它们都不对我有用(ThinkPad x201)/etc/rc.local。该rfkill block bluetooth命令确实起作用,但在启动时不起作用。-x标志设置为on /etc/rc.local。我正在运行Xubuntu 13.10。
Kyle Falconer 2013年

4
在具有systemd的 Ubuntu 15.10上,您还需要一些其他功能来重新启用etc/rc.local文件的使用:askubuntu.com/a/696226/34298
rubo77

5
如果我们的rc.local只是一个空文件,我们应该在哪里添加“ rfkill阻止蓝牙”?
Sss

120

我找到了如何做一个干净的“解决办法” 在这里存档链接为后人)

实际上改变/etc/bluetooth/main.conf对我来说已经足够了。

搜索条目:

AutoEnable=true

并将值更改为:

AutoEnable=false

对我来说,这已经足够了,尽管本文介绍了一些其他步骤,这些步骤可能是必需的,也可能是不必要的。

Ubuntu 17.04及更早版本上,该选项名为InitiallyPowered


3
不适用于三星笔记本电脑530u3b,重新启动并唤醒后蓝牙始终处于打开状态
Maxim Kim

3
仅当我还使用Saeed Zarinfam的/etc/init.d/bluetooth stoprc.local 答案时,这才起作用。看来,当服务启动时,它还会为蓝牙供电。我需要两个都可以使它正常工作。(ThinkPad x201,Xubuntu 13.10)
凯尔·法尔康纳

3
在ThinkPad T420上对我没用
UpTheCreek 2015年

4
对于我们这些main.conf不包含此参数或任何指示其默认位置的注释的人,“搜索条目”完全没有用。那么,[Heading]我们应该把它放在哪?
underscore_d 2015年

10
就我而言,它是AutoEnable = false,但是无论如何从正确的位置+1都是正确的解决方案。
Arman Petrosyan

33

16.04+


从ubuntu 16.04开始,systemd管理启动服务,例如蓝牙...以查看终端中的当前状态问题

sudo systemctl status bluetooth.service 

在启动问题上停用蓝牙

sudo systemctl disable bluetooth.service

然后在下次重新启动时蓝牙将不处于活动状态...以启用蓝牙问题(然后重新启动)

sudo systemctl enable bluetooth.service

4
这对我有用,但是副作用是,blueman-applet也停止工作了。它启动了,但是没有出现在指示器区域中,因此没有快速的方法可以仅在终端中启用蓝牙。
Yuri Gor

至少在Xubuntu中,如果您单击Blueman,则可以选择“关闭蓝牙”。我认为这是OP想要自动化的。您的解决方案将完全删除Blueman,从而使您更难以根据需要重新启用蓝牙。
阿德里安·凯斯特

1
将sudo systemctl disable bluetooth.service和&sudo systemctl stop bluetooth.service放入“禁用”脚本中,并在其上使用chmod 755。对sudo systemctl enable bluetooth.service和&进行相同的操作。sudo systemctl在Enable脚本中启动bluetooth.service。
阿德里安·基斯特

2
最后!Ubuntu 18.10,唯一对我有用的东西。没有其他工作。
泰勒

27

要在启动时禁用蓝牙驱动程序的加载,请执行以下操作:

sudo $EDITOR /etc/modprobe.d/blacklist.conf

加:

blacklist btusb

稍后启用它应该是:

sudo modprobe btusb

1
谢谢,那似乎确实可行,但是按照我的原始问题,我试图避免使用命令行内容。您可能认为这就像在方框中打勾一样简单,以至于它使我想起了我不希望BT自动启动,但是看起来它比这更复杂。借助Ubuntu的驱动器可以缩短启动时间,并且将重点放在笔记本电脑和上网本的功耗上,令我感到惊讶的是,这一问题从未得到解决。我感谢您的帮助。

9
“以root身份运行gedit并编辑/etc/modprobe.d/blacklist.conf” <-好的,您使用的命令行少吗?
maco 2010年

1
在带有Ubuntu 13.10的Samsung Q35上可以正常工作,而“ rfkill阻止蓝牙”方法则不能。谢谢!
user27164 2014年

戴尔E6410为我工作。无需重置即可立即运行的商品。
Ruslan Gerasimov 2014年

在配置操作系统时,不要费力尝试“避免命令行内容”。Ctrl + Alt + T和几个ctrl-shift-V(要粘贴)要求太多了吗?
doug65536 '16

18

步骤1:转到终端并输入以下命令以编辑系统/etc/rc.local文件:

gksudo gedit /etc/rc.local

步骤2:在该行之前添加以下exit 0行:

rfkill block bluetooth

1
将此软块设置为蓝牙,我认为它与关闭其服务相同,并且效果很好。
Smile.Hunter,2012年

@Robert::$ man rfkill禁用与给定索引相对应的设备。 ”尽管有名称,它只是禁用BT;只需rfkill block bluetooth在终端上尝试命令,您应该会看到图标变为灰色。
丹尼尔(Daniel)

8

在终端中输入以下内容:

sudo gedit /etc/modprobe.d/blacklist.conf

在文件底部,添加以下行:

blacklist bluetooth

保存文件并重新启动-现在应该禁用蓝牙。


这对我的电脑不起作用...
Floqqi 2011年

@Floqqi:您能再试一次吗?我已经更新了答案。
内森·奥斯曼

2
在我的ubuntu 12 ThinkPad上尝试了大约20件事,这是唯一完成此操作的工具。
OlivierBlanvillain 2013年

8

1.在rc.local中阻止蓝牙

在文件末尾的行末添加此/etc/rc.localexit 0

rfkill block bluetooth

这将达到目的,但仅适用于使用upstart的旧版Ubuntu 。

2.在systemd上重新启用rc.local

在将systemd作为启动管理器的Ubuntu 15.10上/etc/rc.local,默认情况下不再使用该文件,因此请在终端上调用此文件:

sudo systemctl edit --full rc-local

这将打开一个编辑器。在文件末尾,我添加了:

[Install]
WantedBy=multi-user.target

这些更改通过以下方式激活

sudo systemctl reenable rc-local

现在/etc/rc.local,您就可以使用该文件了。

3.在启动时禁用blueman-applet

sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/blueman.desktop
gnome-session-properties

现在可以看到blueman-applet了,您可以在启动程序中将其禁用

4.重新启动以查看效果


3
对于我来说,在blueman:Ubuntu 17.04上运行:gsettings set org.blueman.plugins.powermanager auto-power-on false来自wiki.archlinux.org/index.php/Blueman。尽管我最终还是这样做了,sudo apt remove blueman然后通过系统设置来管理蓝牙并选中“在菜单栏中显示蓝牙状态”。问题是Blueman启动并开启了蓝牙。
MJ

7

您可以借助BUM更改启动时启动的服务。

安装它: sudo apt-get install bum

跑: sudo bum

在此处输入图片说明

取消选中该框,然后单击Apply


谢谢,desgua,我正在考虑使用这种工具。我过去曾使用过一些软件,但它们已过时,而新的Ubuntu,由于其极简主义的迷恋,一无所获。这是唯一的您知道的还是最好的您知道的吗?
罗伯特

1
也许可以,但是起初它让我感到失望,因为它开始显示蓝牙在启动时未激活,为什么?当rfkill不运行时,applet和hciconfig显示它正在运行。我关闭电源后再打开,但是流浪汉继续显示该服务为关闭状态。我在启动时激活了该服务,但是该服务的状态仍然是错误的。
罗伯特

抱歉,不能在elementaryOS Freya上使用
Hoang Tran 2016年

当它运行时,我收到很多“使用未初始化的值”的警告。对不起,不能相信。
doug65536 '16

现在,该软件包不可用。它说,屁股是虚拟的。
萨蒂亚·普拉卡什

6

我加

"/etc/init.d/bluetooth stop"

进入

"/etc/rc.local" 

在使用蓝牙关闭引导的“退出0”命令之前。


这样就删除了蓝牙托盘图标,但蓝牙指示灯一直亮着(指示仍在向收音机发送电源)。编辑:这与Stepbaer的答案(InitiallyPowered = false)结合为我工作。(ThinkPad x201,Xubuntu 13.10)
凯尔·法尔康纳

这在我的64位Ubuntu 14.04 Dell Inspiron上不起作用。只有rfkill为我工作。
faizal

5

我认为最好的方法是首先禁用该服务。有一种禁用服务的通用方法非常有效:

sudo sh -c "echo 'manual' > /etc/init/bluetooth.override"

这适用于Ubuntu 13.10,也可能适用于早期版本。


稍后使用提供的设置时如何打开蓝牙?说我只想使用5分钟。每十个靴子..
b1r3k 2015年

4

您可以编辑update-rc.d设置。我用类似的东西:

sudo update-rc.d bluetooth remove

在Debian Wheezy中。查看man update-rc.d有关如何使用它的更多信息。


4

我使用tlp找到了另一个答案,该答案对Ubuntu 18.04来说非常适合我。可能第一个tlp必须与

sudo apt install tlp

然后文件

/etc/default/tlp

包含有关设备(例如wifi和蓝牙)的一些设置。有钥匙

RESTORE_DEVICE_STATE_ON_STARTUP

默认设置为0。将其切换为1后,下次启动时会记住我的上一次设置。这意味着当我在顶部面板中禁用蓝牙时,它保持禁用状态;当我启用蓝牙时,它保持启用状态。也有钥匙

DEVICES_TO_DISABLE_ON_STARTUP

可以设置为

DEVICES_TO_DISABLE_ON_STARTUP="bluetooth"

现在,蓝牙将在每次启动时禁用。更改此配置后,可以通过菜单和面板项启用和禁用蓝牙。我认为这比从内核模块中删除它更好。


在Ubuntu中默认未安装TLP。您应该相应地更新您的帖子。
linrunner

@linrunner好吧,不知道那是什么。我在Tuxedo的新版Ubuntu Budgie上进行了测试。在那里工作。我确定了答案。
Thomas Sablik

使用tlp是一个明智的答案,因为笔记本电脑用户肯定都安装了它。
Tim Richardson

2

也许您可以在启动应用程序中将其关闭。但是这些应用程序默认情况下是隐藏的。在12.04中取消隐藏隐藏的启动应用程序:打开终端并运行以下两个命令:

cd /etc/xdg/autostart/

sudo sed --in-place 's/NoDisplay=true/NoDisplay=false/g' *.desktop

现在您可以取消选中蓝牙。(不要删除!)


不幸的是,蓝牙未在这些应用程序中列出。
pfctdayelise

2

不。它并不总是在启动应用程序列表中。我认为最好的解决方案是在rc.local脚本中添加rfkill命令或在中设置InitiallyPowered参数/etc/bluetooth/main.conf


1
对于我来说,InitialPowered似乎被忽略了。
2015年

2

1)安装软件包smbios-utils并使用以下命令将其添加到“ 启动应用程序”

sudo smbios-wireless-ctl --bt 0

2)在终端类型中:

sudo visudo

并在打开的文件末尾添加/etc/sudoers以下行:

<your username> ALL = NOPASSWD: /usr/sbin/smbios-wireless-ctl

3)要在会话期间打开蓝牙,请在终端中运行:

sudo smbios-wireless-ctl --bt 1

这对我在装有Ubuntu 13.10的Dell D630上适用


您认为这样sudo smbios-wireless-ctl --boot --bt 0行得通吗?另外,我不确定,但这可能是Dell特有的。
Hitechcomputergeek

实际上,软件包smbios-utils执行bios命令,因此它会打开和关闭与bios相关的物理设备,因此您也可以使用它来打开和关闭wifi等。我不确定它是否可以与任何bios一起使用。至少,它与戴尔兼容。顺便说一句,Ubuntu 14.04的最新安装对蓝牙和wifi小程序执行了相同的操作,因此该软件包中不再需要任何其他功能。
胜利者

我知道。但是,如果您这样做了smbios-wireless-ctl --help,部分原因是--boot Set BIOS boot-time setting.我不知道他们已经修复了蓝牙。谢谢你告诉我。
Hitechcomputergeek

2

在Ubuntu 16.04上,我只是使用systemctl禁止了该服务的启动。

为此,请打开一个终端窗口,然后键入以下内容:

sudo systemctl disable bluetooth

您可以重新启动,因为现在蓝牙将被禁止启动,或者如果您不想重新启动并立即停止蓝牙,则可以键入:

sudo service bluetooth stop


2

在Ubuntu Studio 16.04上,您可以通过以下方式在“启动”中禁用Bluetooth Applet:

会话和启动>应用程序自动启动>蓝牙小程序

您可以在此处单击字段以将其禁用。


这在我的Xubuntu 17.10机器上是一个非常好的解决方案,除了以下几点:如果用户想即时开始再次使用蓝牙,则需要执行sudo systemctl enable bluetooth.service和&sudo systemctl start bluetooth.service。但是您的解决方案肯定可以解决启动问题。
阿德里安·凯斯特

2

我们可以通过以下方式禁用蓝牙自动启动:

sudo gedit /etc/bluetooth/main.conf

gedit是我的收藏夹编辑器,您可以将其替换为xed系统上已安装的任何东西。)

在此文件的最底部,有以下行:

#AutoEnable=false

取消注释,如下所示:

AutoEnable=false

在ubuntu budgie 18.04中不起作用
Argento

2

如果您在顶部面板(blueman-applet)中使用蓝牙小程序,它具有自己的设置,即使您在其他地方禁用了蓝牙(例如/etc/bluetooth/main.conf或/ etc / default / tlp)。

要防止蓝牙在启动时使用命令行打开:

gsettings set org.blueman.plugins.powermanager auto-power-on false

或通过GUI:

  1. 单击蓝牙小程序> 插件 > PowerManager > 配置
  2. 取消选中自动开机

下次重新启动时,蓝牙小程序仍将可见,但蓝牙将关闭。打开它:

单击蓝牙小程序> 开启蓝牙


在Ubuntu 18.04中,这是我找到的唯一解决方案。即使您在/etc/bluetooth/main.conf中进行了更改,在底部,从AutoEnable = true到AutoEnable = false的选项也无法关闭蓝牙。实际上,此选项用于发现新设备,而不用于打开或关闭蓝牙电源。
亚历山德罗·丁卡尔


1

我认为你应该编辑

/etc/default/bluetooth

并设置

BLUETOOTH_ENABLED=0

在启动时禁用蓝牙服务


1
在Ubuntu 14.04上
不起作用

1

对于无法插入该行rfkill block bluetooth(或其他任何行)的/etc/rc.local人,请尝试在该行的末尾包含同一行~/.bashrc

在我的设置(Ubuntu 14.04,Thinkpad W540)中,没有选项可以将其插入,/etc/rc.local但前者确实可以在bashrc中使用。请注意,这仅适用于当前用户,不适用于所有用户。


1

从Ubuntu 18.04(带有GNOME)开始,您需要

  1. 编辑/etc/bluetooth/main.conf并找到

    AutoEnable = true
    

    并将值更改为:

    AutoEnable = false
    

    因此,该设备无法启动。

  2. 编辑/ etc / default / tlp并找到:

    #DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan"
    

    编辑此行以读取:

    DEVICES_TO_DISABLE_ON_STARTUP="bluetooth"
    

    因此,该设备在启动时被禁用。

  3. 然后打开Dash并搜索“启动应用程序”。取消选中列表中与蓝牙相关的所有项目。单击[关闭]保存。


要点4:转到“设置”->“蓝牙”->“禁用”(在右上角窗口)。
奥马尔·塔里克

0

我加

"/etc/init.d/bluetooth stop"

进入

"/etc/rc.local" 

在使用蓝牙关闭引导的“退出0”命令之前。


0

我的笔记本的解决方案

“ BIOS-USB配置-EHCI2:已禁用”

EHCI1用于USB端口(实际上我的笔记本电脑有2个USB 2.0端口)


0

编辑/etc/default/grub

sudo nano /etc/default/grub

并更改以下行:

GRUB_CMDLINE_LINUX=""

改为这样说:

GRUB_CMDLINE_LINUX="bluetooth.blacklist=yes"

然后,更新grub并重新启动:

sudo update-grub

0

这应该禁止蓝牙在基于Debian的系统上启动:

sudo chkconfig bluetooth off

或在基于RedHat的系统上

systemctl disable bluetooth.service

0

不幸的是,对我来说,最重要的是什么。相反,我将其添加到〜/ .profile的底行

( sleep 10; rfkill block bluetooth ) & 

就我而言,我必须等待blueman applet启动并启用蓝牙(不可避免地),然后才能将其关闭。


0

纯系统解决方案(16.04+)

这是一个干净且可移植的systemd服务,而不是使用传统的rc-local解决方案,该服务在引导时以及从睡眠中唤醒后会挂起蓝牙。

  1. 使用sudo,创建/etc/systemd/system/bluetooth-suspend.service以下内容:
[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
  1. 启用服务: sudo systemctl enable bluetooth-suspend.service

  2. 重新加载systemd: sudo systemctl daemon-reload

要重新启用蓝牙,请rfkill unblock bluetooth在终端中运行。


-1

我必须使用蛮力方法来阻止蓝牙在启动时自动启动。我重命名了可执行文件,因此找不到它。


并行启动事物更快。至少那是主意。
道格拉斯·里德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.