SAP关于蓝牙服务状态的错误


17

我在蓝牙服务状态上遇到错误。

我需要指导来解决此错误。

    pi@raspberrypi:~ $ sudo service bluetooth status
* bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled)
   Active: active (running) since Sat 2016-01-09 19:12:47 UTC; 1min 12s ago
     Docs: man:bluetoothd(8)
 Main PID: 370 (bluetoothd)
   Status: "Running"
   CGroup: /system.slice/bluetooth.service
           `-370 /usr/lib/bluetooth/bluetoothd

Jan 09 19:12:46 raspberrypi bluetoothd[370]: Bluetooth daemon 5.23
Jan 09 19:12:47 raspberrypi bluetoothd[370]: Starting SDP server
Jan 09 19:12:47 raspberrypi systemd[1]: Started Bluetooth service.
Jan 09 19:12:47 raspberrypi bluetoothd[370]: Bluetooth management interface 1.9 initialized
Jan 09 19:12:47 raspberrypi bluetoothd[370]: Sap driver initialization failed.
Jan 09 19:12:47 raspberrypi bluetoothd[370]: sap-server: Operation not permitted (1)
pi@raspberrypi:~ $

sap在这种情况下似乎是SIM卡访问协议,因此可能与连接到手机(可能是Internet数据)有关。鉴于所有其他消息都与蓝牙守护程序的成功启动有关,我不完全确定这是否是一个错误……?
SlySven

Answers:


26

SAP代表SIM Access Profile,因此您必须禁用它:

  • 打开 /etc/systemd/system/bluetooth.target.wants/bluetooth.service
  • 更改:

    ExecStart=/usr/lib/bluetooth/bluetoothd
    

    ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=sap
    
  • 重新加载systemd:

    $ sudo systemctl daemon-reload
    
  • 重新启动蓝牙:

    $ sudo service bluetooth restart
    
  • 获取蓝牙状态:

    $ sudo service bluetooth status
    
    
    bluetooth.service - Bluetooth service
       Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled)
       Active: active (running) since Sat 2016-04-30 10:38:46 UTC; 6s ago
         Docs: man:bluetoothd(8)
     Main PID: 12775 (bluetoothd)
       Status: "Running"
       CGroup: /system.slice/bluetooth.service
               └─12775 /usr/lib/bluetooth/bluetoothd --noplugin=sap
    

2
如果你喜欢坚持使用systemctl,它也可以做systemctl restart bluetoothsystemctl status bluetooth。这些可能也需要sudo。
XTL

1
在大多数网络教程和解决方案中,为了安全起见,我们不会编写sudo。我认为Linux用户已经知道特权。但是,这没问题,坦克,我会加那些sudo的。
pylover

正常工作一次,然后,我发现需要寻址的文件是(也)/lib/systemd/system/bluetooth.service
fcm

为什么默认情况下不禁用此功能?
Sawtaytoes

我不知道为什么 Linux音频是如此复杂。
pylover

0

如果您不想覆盖系统bluetooth.service文件,则是使用.service.d覆盖的好地方:

sudo mkdir  /etc/systemd/system/bluetooth.service.d/

然后放置在此文件中:

/etc/systemd/system/bluetooth.service.d/01-disable-sap-plugin.conf

[Service]
ExecStart=
ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=sap
sudo systemctl daemon-reload
sudo systemctl restart bluetooth.service

我认为最好使用sudo systemctl edit bluetooth.service而不是直接摆弄systemd目录和文件。
Ingo

是的,很好的建议。这是执行以上相同操作的简便方法。有时,它有助于重命名.d/文件片段以阐明其功能。
TrinitronX

1
主要是在systemd的控制下这样做比较安全吗?
Ingo,

@Ingo:是的,这是较新的SystemD版本的另一个功能。在某些情况下,您可能不想这样做,例如:编辑生产.service文件是有风险的。这篇博客文章有更多有用的信息。这里提到的一件事是“所有成功的编辑都将转换为服务重启!” 因此,它并不总是像您所说的那样“安全”,但它可能更方便。
TrinitronX
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.