启动时如何设置蓝牙键盘自动连接?


10

我有用于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

Answers:


11

这个答案来自安德鲁·马丁(Andrew Martin)在thetechdepo.com上撰写的教程。请参阅下面的链接以获取原始帖子,但这是一个完整的重写。它是专门为Apple键盘编写的,但是我已将其用于多种设备,因此它不是Apple或键盘专用的。只需按照说明进行操作,即可在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

重新启动计算机,设备将自动连接并且可以正常工作,而无需执行任何操作。

我希望这对一些人有帮助,我花了很长时间才找到解决我的问题的方法,我想将本教程更深入地融入网络。

原始链接可以在这里找到。


根据/usr/share/docs/bluez/NEWS.Debian.gz的说法,我相信从bluez 4.0开始不推荐使用hidd,而要使用udev,但是如果没有bluez-compat,我找不到如何使用它的任何文档。
2013年

3

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

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

首先,启动sudo Bluetoothctl -a并执行以下步骤。这些来自ArchLinux Wiki,但事实证明它们在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。


$ sudo update-rc.d keyboard defaults insserv: script keyboard is not an executable regular file, skipped!为了解决,我执行了sudo chmod +x /etc/init.d/keyboard。然后我表演了sudo update-rc.d keyboard defaults。收到警告:insserv: warning: script 'keyboard' missing LSB tags and overrides
orschiro

sudo service keyboard enable
orschiro

是的,您已正确完成chmod +x
Ch.Idea '16

LSB标签丢失错误可以忽略,在此任务中并不是很重要。如果需要,可以通过谷歌搜索来搜索它,然后粘贴到文件顶部。它们形式简单。
Ch.Idea '16

1

苹果蓝牙键盘有一个非常相似的问题。我买了它是因为我喜欢按键的感觉。但是,我无法保持连接。问题似乎出在键盘识别上。一旦将其与具有实际名称的实际MAC计算机相匹配,将它连接到Linux或Windows就不再有任何问题。我的妻子现在使用它没有问题。

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


1

bluez 5.35(2015年9月)以来,/etc/bluetooth/main.conf通过启用足以修改配置文件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

是的,信任部分是使我能够在启动时自动重新连接的关键所在。
p1l0t

0

我已经购买了蓝牙键盘,并在此处进入了此页面,并尝试了ryandlf和Ch.Idea的建议。没用 经过一些分析和试验,我发现了这种结合:

首先,正如大家所建议的那样,尝试从GUI手动连接设备。确保它有效。然后断开连接,然后关闭。然后,我们将手动重新开始。

获取root特权:

su

然后:

hcitool scan

然后同时按下按钮或设备上的任何按钮,并确保已发现它。如果发现,则应打印其地址,例如20:73:00:01:90:65,以及设备说明,例如蓝牙键盘。将该地址获取到剪贴板。

接下来,我们准备连接。整个Internet上的每个人都被隐藏了,因为现在再也没有出现过。这就是为什么我不能这么长时间进行工作的原因……在看过hcitool的人之后,我发现了很多有用的命令,而无需使用dbus或其他任何东西。因此,要连接它,我们发出:

hcitool cc 20:73:00:01:90:65

就是这样。

实验表明,当我暂时关闭设备时,它甚至会自动重新连接。

第2部分。

正如其他答案中的建议一样,我还创建了一项服务。首先,我创建了一个文件/etc/init.d/keyboard,内容如下:

#! /bin/sh
sudo hcitool cc 20:73:00:01:90:65
exit 0

然后,以root身份:

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

而已。希望能帮助到你。

哦,是Debian 9。

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.