Oli*_*Oli 237

对于 Ubuntu 20.10

对于此 ubuntu 编辑/etc/bluetooth/main.conf并找到该行

AutoEnable=true
Run Code Online (Sandbox Code Playgroud)

并将其替换为:

AutoEnable=false
Run Code Online (Sandbox Code Playgroud)

18.04+

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

sudo install -b -m 755 /dev/stdin /etc/rc.local << EOF
#!/bin/sh
rfkill block bluetooth
exit 0
EOF
Run Code Online (Sandbox Code Playgroud)

运行sudoedit /etc/rc.local并在行前添加exit 0

rfkill block bluetooth
Run Code Online (Sandbox Code Playgroud)

您应该仍然可以通过顶部栏小程序启用蓝牙。

应该适用于大多数系统,但看起来在 Thinkpad 内核的 ACPI 中潜伏着一些错误。如果您使用的是 Thinkpad,请将以下内容添加到/etc/rc.local

echo disable > /proc/acpi/ibm/bluetooth
Run Code Online (Sandbox Code Playgroud)

或者查看ibm-acpi - IBM ThinkPad ACPI Extras Driver - 一些报告表明 ibm-acpi 包括蓝牙控制(以及其他好东西)。但我没有硬件,所以我完全无法验证这些说法。祝你好运。

  • 对于 Thinkpad(并且仅 Thinkpad),这有效: /etc/rc.local 中的 `echo disable &gt; /proc/acpi/ibm/bluetooth` (6认同)
  • 当我将它们一次放置在`/etc/rc.local` 中时,它们都不适合我(ThinkPad x201)。`rfkill block bluetooth` 命令确实有效,但在启动时无效。-x 标志在`/etc/rc.local` 上设置。我正在运行 Xubuntu 13.10。 (5认同)
  • 如果我们的 rc.local 只是一个空文件,我们应该在哪里添加 'rfkill block bluetooth'? (5认同)
  • `rfkill 块蓝牙` 适用于 Thinkpad T430u (4认同)
  • 在带有 **systemd** 的 Ubuntu 15.10 上,您需要更多内容来重新启用 `etc/rc.local` 文件:http://askubuntu.com/a/696226/34298 (4认同)
  • 我不能不表达我的惊讶。所以你是说我们没有一个简单的开关? (3认同)
  • “rfkill 块蓝牙”适用于 Thinkpad Edge 15 (2认同)

小智 169

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

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

搜索条目:

AutoEnable=true
Run Code Online (Sandbox Code Playgroud)

并将值更改为:

AutoEnable=false
Run Code Online (Sandbox Code Playgroud)

这对我来说已经足够了,尽管这篇文章描述了一些可能需要也可能不需要的其他步骤。

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

  • 在我的情况下,它是 AutoEnable=false,但无论如何从正确的地方获得正确的解决方案 +1。 (10认同)
  • 不适用于三星笔记本电脑 530u3b,重启并唤醒后蓝牙始终开启 (5认同)
  • “搜索条目”对于我们这些`main.conf` 不包含此参数或任何指示其默认位置的注释的人来说毫无用处。那么,我们应该把它放在哪个 `[Heading]` 下? (4认同)
  • 这只有在我还使用 Saeed Zarinfam 的回答将 `/etc/init.d/bluetooth stop` 放入 rc.local 时才有效。好像服务启动的时候,也给蓝牙带来了电源。我需要两者才能让它发挥作用。(ThinkPad x201,Xubuntu 13.10) (3认同)
  • 在 thinkpad t420 上对我不起作用 (3认同)

Sco*_*and 51

16.04+


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

sudo systemctl status bluetooth.service 
Run Code Online (Sandbox Code Playgroud)

在启动问题时停用蓝牙

sudo systemctl disable bluetooth.service
Run Code Online (Sandbox Code Playgroud)

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

sudo systemctl enable bluetooth.service
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用,但作为副作用,blueman-applet 也停止工作。它启动了,但没有出现在指示器区域,所以没有快速启用蓝牙的方法,只能在终端中。 (4认同)
  • 将 sudo systemctl disable bluetooth.service &amp;&amp; sudo systemctl stop bluetooth.service 放入禁用脚本中,并对其进行 chmod 755 。对启用脚本中的 sudo systemctl enable bluetooth.service &amp;&amp; sudo systemctl start bluetooth.service 执行相同操作。 (2认同)
  • 最后!Ubuntu 18.10,唯一对我有用的东西。没有其他工作。 (2认同)

mac*_*aco 29

要禁用蓝牙驱动程序在启动时加载:

sudo $EDITOR /etc/modprobe.d/blacklist.conf
Run Code Online (Sandbox Code Playgroud)

添加:

blacklist btusb
Run Code Online (Sandbox Code Playgroud)

稍后启用它应该只是:

sudo modprobe btusb
Run Code Online (Sandbox Code Playgroud)

  • “以 root 身份运行 gedit 并编辑 /etc/modprobe.d/blacklist.conf” &lt;-- 好的,对你来说是不是少了命令行? (9认同)

小智 18

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

gksudo gedit /etc/rc.local
Run Code Online (Sandbox Code Playgroud)

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

rfkill block bluetooth
Run Code Online (Sandbox Code Playgroud)


bma*_*pin 14

注意:这些说明适用于希望在启动时默认禁用蓝牙的用户,以便之后可以轻松启用。

侏儒(Ubuntu 18.04+)

默认关闭蓝牙

在 Gnome 中,蓝牙由 gnome-bluetooth 管理,它应该记住您上次使用的设置。但是你可以强制它在启动时总是被禁用,如下所示:

echo "rfkill block bluetooth" >> ~/.profile
Run Code Online (Sandbox Code Playgroud)

(如果您使用的是 zsh,请将 ~/.profile 替换为 ~/.zprofile)

这避免了必须编辑任何系统文件,例如 /etc/rc.local

手动启用蓝牙

每当您准备好打开它时,单击右上角 >设置>蓝牙> 单击右上角附近的开关

或者使用命令行:

rfkill unblock bluetooth
Run Code Online (Sandbox Code Playgroud)

Unity/Xfce(Ubuntu < 18.04,Xubuntu)

默认关闭蓝牙

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

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

gsettings set org.blueman.plugins.powermanager auto-power-on false
Run Code Online (Sandbox Code Playgroud)

或通过 GUI:

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

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

手动启用蓝牙

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

  • 在 Ubuntu 18.04 中,这是我找到的唯一解决方案。即使您在 /etc/bluetooth/main.conf 中更改,在底部,从 AutoEnable=true 到 AutoEnable=false 的选项也无法关闭蓝牙。实际上,此选项用于发现新设备,而不是用于打开或关闭蓝牙。 (2认同)

rub*_*o77 10

1. 在 rc.local 中屏蔽蓝牙

在文件末尾/etc/rc.local的行之前添加这一行exit 0

rfkill block bluetooth
Run Code Online (Sandbox Code Playgroud)

这可以解决问题,但仅限于使用upstart 的旧版 Ubuntu 版本。

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

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

sudo systemctl edit --full rc-local
Run Code Online (Sandbox Code Playgroud)

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

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

这些变化是由

sudo systemctl reenable rc-local
Run Code Online (Sandbox Code Playgroud)

现在该文件/etc/rc.local已按您所知使用。

3. 启动时禁用 blueman-applet

sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/blueman.desktop
gnome-session-properties
Run Code Online (Sandbox Code Playgroud)

现在 blueman-applet 可见,您可以从启动程序中禁用它

4.重启看看效果

  • 对于我在 Ubuntu 17.04 上使用 blueman:`gsettings set org.blueman.plugins.powermanager auto-power-on false` 有效,来自 https://wiki.archlinux.org/index.php/Blueman。虽然我最终做了`sudo apt remove blueman`然后通过系统设置管理蓝牙并检查“在菜单栏中显示蓝牙状态”。Blueman 启动和打开蓝牙是问题所在。 (4认同)

Tho*_*lik 9

我找到了另一个使用 tlp 的答案,它在 Ubuntu 18.04 上非常适合我。可能首先必须安装 tlp

sudo apt install tlp
Run Code Online (Sandbox Code Playgroud)

然后文件

/etc/default/tlp
Run Code Online (Sandbox Code Playgroud)

包含有关 wifi 和蓝牙等设备的一些设置。有钥匙

RESTORE_DEVICE_STATE_ON_STARTUP
Run Code Online (Sandbox Code Playgroud)

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

DEVICES_TO_DISABLE_ON_STARTUP
Run Code Online (Sandbox Code Playgroud)

可以设置为

DEVICES_TO_DISABLE_ON_STARTUP="bluetooth"
Run Code Online (Sandbox Code Playgroud)

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

  • 自 v1.3 起,TLP 配置路径现在为 `/etc/tlp.conf` (2认同)

Nat*_*man 8

在终端中键入以下内容:

sudo gedit /etc/modprobe.d/blacklist.conf
Run Code Online (Sandbox Code Playgroud)

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

blacklist bluetooth
Run Code Online (Sandbox Code Playgroud)

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

  • 在我的 ubuntu 12 thinkpad 上尝试了大约 20 件事,这是唯一一个做到了这一点。 (2认同)

des*_*gua 7

您可以在BUM的帮助下更改启动时启动的服务。

安装它: sudo apt-get install bum

跑: sudo bum

在此处输入图片说明

取消选中该框并单击Apply


Sae*_*fam 6

我加

"/etc/init.d/bluetooth stop"
Run Code Online (Sandbox Code Playgroud)

进入

"/etc/rc.local" 
Run Code Online (Sandbox Code Playgroud)

在“退出 0”命令以关闭蓝牙启动之前。


小智 5

我认为最好的方法是首先禁用该服务。有一种禁用服务的通用方法,可以完美运行:

sudo sh -c "echo 'manual' > /etc/init/bluetooth.override"
Run Code Online (Sandbox Code Playgroud)

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