如何让蓝牙键盘在启动时自动连接?

如何让蓝牙键盘在启动时自动连接?

我的 HTPC 有一个蓝牙键盘。我通过蓝牙将它与我的电脑配对,它工作正常。但是,当我关闭键盘或电脑时,当我重新打开它们时,它必须再次连接(这需要我在电脑和键盘上输入密码)。我浏览了许多论坛,发现我缺少一些看似至关重要的蓝牙文件:

/etc/default/bluetooth

/etc/init.d/bluetooth

/etc/bluetooth/hcid.conf

到目前为止,根据我在网上找到的说明,我必须更改这些文件中的某些行。我无法做到,因为它们不存在。

我是否缺少依赖项或类似的东西?我也尝试安装 Blueman,但毫无帮助。

我正在运行 Ubuntu 10.10(Maverick)。

原始帖子:http://ubuntuforums.org/showthread.php?t=1643386&highlight=bluetooth

答案1

这个答案来自 Andrew Martin 在 thetechdepo.com 上写的一篇教程。请参阅下面的原始帖子链接,但这是完全重写的。它是专门为苹果键盘编写的,但我已将其用于多种设备,因此它不是苹果或键盘专用的。只需按照说明操作,您就可以在 Ubuntu 中自动连接任何蓝牙设备。

转到系统设置>蓝牙并按照说明添加新连接的蓝牙设备。

按照说明操作,并在要求时输入密码,然后在设备连接并工作后关闭设备电源。现在进入自动连接部分。

打开终端并输入以下命令:

$ killall bluetooth-applet 
$ sudo /etc/init.d/bluetooth restart 
$ sudo hcitool dev

最后一个命令将显示您的设备的输出,例如:

Devices:
    hci0    00:00:00:00:00:00

安装一个新的包以允许您通过命令行连接蓝牙。

$ sudo apt-get install bluez-compat

完成后,您现在已安装 hidd 程序。此时,打开键盘并输入以下命令。它将输出键盘的 MAC 地址,您需要将其复制并粘贴到后续命令中,如下所示:

$ hcitool scan        
Scanning ...
    AA:BB:CC:DD:EE:FF   Bluetooth Device Name
$ sudo hidd --connect AA:BB:CC:DD:EE:FF

现在我们必须创建一个启动文件,以便在 PC 启动时自动连接设备。通过终端...

$ gedit ~/.keyboard.sh

输入以下文本,用上面看到的硬件 ID 替换 AA:BB:CC:DD:EE:FF。最后,保存文件。

#! /bin/bash

address="AA:BB:CC:DD:EE:FF"

while (sleep 1)
do
connected=`sudo hidd --show` > /dev/null
if [[ ! $connected =~ .*${address}.* ]] ; then
sudo hidd --connect ${address} > /dev/null 2>&1
fi
done

现在创建一个新的启动文件。用“键盘”替换您选择的任何设备名称。这只是文件的名称。

$ sudo gedit /etc/init.d/keyboard

粘贴以下内容,它将告诉你的 Ubuntu 在启动时运行你刚刚创建的文件。

#!/bin/sh
/home/username/.keyboard.sh &

exit 0

现在通过终端将两个文件的权限设置为可执行。

$ sudo chmod +x /etc/init.d/keyboard
$ chmod +x ~/.keyboard.sh
$ sudo update-rc.d keyboard defaults

重新启动计算机,您的设备将自动连接并开始工作,无需您执行任何操作。

我希望这可以对一些人有所帮助,我花了很长时间才找到解决问题的方法,我想让这个教程在网络上更深入地传播。

原文链接可以找到这里

答案2

我也自己尝试了 ryandlf 的答案,但发现了另一个简单的设置,最终可以完成同样的工作。

主要思想是,一旦远程设备配对并信任,hcitool spinq将启动定期查询,让每个可用设备都连接起来。

首先,启动sudo Bluetoothctl -a并遵循以下步骤。这些来自ArchLinux 维基但事实证明在 Ubuntu 上也能同样有效。

[bluetooth]# power on
[bluetooth]# agent KeyboardOnly
[bluetooth]# pairable on
[bluetooth]# scan on

最后一个命令将显示所有可用的(等待配对的)蓝牙键盘,就像这样。

Discovery started
[CHG] Controller 01:02:03:04:05:06 Discovering: yes

记下键盘的地址并继续操作。

[bluetooth]# pair 01:02:03:04:05:06
[bluetooth]# trust 01:02:03:04:05:06
[bluetooth]# connect 01:02:03:04:05:06
[bluetooth]# quit

现在将这个简单的脚本放入/etc/init.d/keyboard

#! /bin/sh
sudo hcitool spinq
exit 0

然后执行这些。

sudo chmod +x /etc/init.d/keyboard
sudo service keyboard enable
sudo update-rc.d keyboard defaults
sudo service keyboard start

就是这样。现在,只要你打开蓝牙键盘,它就会自动连接到你的 Linux。

答案3

自从bluez 5.35/etc/bluetooth/main.conf(2015 年 9 月),通过启用来修改配置文件就足够了AutoEnable=true

要从终端配对新设备(假设这01:02:03:04:05:06是您要配对的设备的 MAC 地址):

$ bluetoothctl
# power on
# agent KeyboardOnly
# default-agent
# pairable on
# scan on
# pair 01:02:03:04:05:06
# trust 01:02:03:04:05:06
# connect 01:02:03:04:05:06
# quit
$ exit

答案4

我在使用 Apple 蓝牙键盘时也遇到过类似的问题。我买它是因为我喜欢按键的感觉。但是,我无法保持连接。问题似乎出在键盘识别上。一旦将它与一台真正的 MAC 电脑匹配,并获得了一个真正的名称,我就再也没有遇到将它连接到 Linux 或 Windows 的问题了。我的妻子现在使用它没有任何问题。

我不知道在您的情况中如何转换,但这可能是一个起点。从其他朋友那里看来,设备识别似乎是这里的主要问题。

相关内容