我的 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 的问题了。我的妻子现在使用它没有任何问题。
我不知道在您的情况中如何转换,但这可能是一个起点。从其他朋友那里看来,设备识别似乎是这里的主要问题。