16.04 MATE 中无法在启动时禁用蓝牙

16.04 MATE 中无法在启动时禁用蓝牙

我最近在我的 Thinkpad X240 上安装了 Ubuntu 16.04 MATE。为了禁用蓝牙的自动启动,我做了以下操作:

尝试 1: sudo pluma /etc/rc.localrfkill block bluetooth,然后添加上面的行 exit 0。但是,当我重新启动时,蓝牙仍然处于激活状态。所以我再次编辑了文件并删除了我添加的行。

后来我听从了建议这里,并重复尝试 1,同时添加 echo disable > /proc/acpi/ibm/bluetooth,但这也没有起到作用

尝试2:按照描述这里(德语),我创建了一个文件,/lib/systemd/system/disablebluetooth.service内容如下:

#########################################################################
#
# disablebluetooth.service
# systemd service: disable bluetooth at start
#
#########################################################################

[Unit]
Description=Disable Bluetooth

[Service]
Type=oneshot
ExecStart=/usr/sbin/rfkill block bluetooth

[Install]
WantedBy=multi-user.target

# EOF

然后跑了 sudo systemctl enable disablebluetooth.service

这也没有帮助,蓝牙仍然在启动时自动启动。

然而,然后,Ubuntu 还报告了系统启动时的问题(并打开一个对话框,我可以在其中单击“取消”或“报告问题”)。[编辑:现已修复]

因此,为了撤消第二次尝试,我运行
sudo systemctl disable disablebluetooth.service 并删除了我创建的文件。

但启动时仍会出现警告/问题报告。所以现在我的问题是

  1. 我如何才能找到系统启动时出现的问题报告的详细信息,以及如何摆脱它?编辑:显然,该警告只是一些早期问题的结果,我可以通过清除 /var/crash/*(或类似的东西)来删除它
  2. 如何禁用蓝牙自动启动?

lsusb返回

Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 5986:0268 Acer, Inc 
Bus 002 Device 006: ID 8087:07dc Intel Corp. 
Bus 002 Device 002: ID 138a:0017 Validity Sensors, Inc. Fingerprint Reader
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

答案1

我们仍然可以使用 udev 规则来禁用蓝牙。首先

sudo -H pluma /etc/udev/rules.d/81-bluetooth-hci.rules

在一行中输入以下内容

SUBSYSTEM=="usb", ATTRS{idVendor}=="8087", ATTRS{idProduct}=="07dc", ATTR{authorized}="0"

保存,退出编辑器并重新启动。

答案2

下面介绍如何创建一个在启动时运行并执行终止蓝牙服务的操作的脚本,如下所示(我使用 nano,也可以使用任何其他文本编辑器):

步骤1: 导航到文件夹:cd /etc/systemd/system/

第2步: 首先创建一个脚本,一旦运行就会终止蓝牙服务:

nano bluetoothkill.sh

步骤3: 输入以下代码,保存退出:

/bin/bash #!/bin/bash
rfkill 阻止蓝牙
出口 0

步骤4:foo.service在同一文件夹 /etc/systemd/system/ 中 创建一个文件:

nano foo.service

步骤5: 输入以下代码,保存退出:

[单元]
详细信息=附加启动脚本
之后=网络.目标

[服务]
ExecStart=/etc/systemd/system/bluetoothkill.sh

[安装]
WantedBy=默认.目标

第 6 步: 在终端中运行以下命令:

sudo chmod 744 bluetoothkill.sh

步骤7: 在终端中运行以下命令:

sudo systemctl start foo.service

步骤8: 重启机器,下次启动时,您会注意到蓝牙服务不再默认在启动时启用。您仍然可以随时在设置中启用它,或者在终端上启用它,并且不会出现任何错误。

如果您想在启动时添加更多脚本,您可以随时编辑 foo.service 文件并在 [Service] 括号下添加其他行以在启动时运行其他脚本,例如:

ExecStart=/full-script-filepath/newscript.sh

相关内容