我在将 Debian Jessie 中的 Logitech K810 蓝牙键盘与 BlueZ 版本 5.23-1、内核 3.16.0-4 连接时遇到问题。
键盘大部分时间都可以正常工作,但有时它根本不起作用,并bluetoothctl给我一个控制器不可用的错误。
发生这种情况时,hciconfig 仍然可以识别设备,我得到以下输出:
# hciconfig hci0 up
# hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: 40:2C:F4:68:02:CA ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING PSCAN
RX bytes:21820 acl:1132 sco:0 events:68 errors:0
TX bytes:1182 acl:11 sco:0 commands:53 errors:0
Run Code Online (Sandbox Code Playgroud)
但是bluetoothctl提示中没有显示任何设备,它给了我这个输出:
[bluetooth]# power on
No default controller available
[bluetooth]# scan on
No default controller available
Run Code Online (Sandbox Code Playgroud)
重新启动或有时挂起/恢复可以解决问题:bluetoothctl将再次识别控制器和再次工作的键盘。
根据rfkill.
的相关输出lspci -v,我想是这样的:
03:00.0 …Run Code Online (Sandbox Code Playgroud) 我在运行 Debian Wheezy 的笔记本电脑上使用罗技 k810 蓝牙键盘。(我按照本指南使键盘工作。)
默认情况下,F1-12 键是多媒体键,除非按下 FN 键。默认情况下,我更喜欢键为 F1-12。
幸运的是,这家伙做了一个程序来反转关键功能。运行该程序可以根据我的喜好获取密钥,并且可以在重新启动后继续存在。
不幸的是,如果我关闭并再次打开键盘(以节省电量),程序将无法生存。
出于这个原因,我试图制定一个 udev 规则来在键盘连接时运行键反转程序。
我一直在尝试上述两个链接中提出的以下解决方案。到目前为止它不起作用。
andreas@crunchbang:/etc/udev/rules.d$ cat 00-k810.rules
KERNEL==”hidraw*”, SUBSYSTEM==”hidraw”, ATTRS{address}==”00:1F:20:76:41:30”, RUN+=”/srv/scripts/k810.sh %p”
andreas@crunchbang:/srv/scripts$ cat k810.sh
#! /bin/bash
line=`dmesg | grep -i k810 | grep hidraw`
[[ $line =~ (.*)(hidraw+[^:])(.*) ]]
device=${BASH_REMATCH[2]}
/srv/bin/k810_conf -d /dev/${device} -f on
Run Code Online (Sandbox Code Playgroud)
/srv/bin/ 文件夹确实包含密钥反转程序 (k810_conf)。我不知道该程序究竟做了什么,但是使用这样的脚本运行它是有效的:
sudo /srv/scripts/k810.sh
Run Code Online (Sandbox Code Playgroud)
所以问题必须是 udev 没有正确检测到设备。如果我这样做,我会得到 MAC 地址:
hcitool scan
Run Code Online (Sandbox Code Playgroud)
... 当键盘处于配对模式时。这也是我在 Blueman 中看到的。
不确定它是否相关,但这udevadm monitor是打开键盘时的输出:
KERNEL[31976.490290] add
/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0/bluetooth/hci0/hci0:12/0005:046D:B319.001C
(hid) KERNEL[31976.491464] add
/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0/bluetooth/hci0/hci0:12/input39 …Run Code Online (Sandbox Code Playgroud) 我找到了两种更改 TTY 字体的方法:
dpkg-reconfigure 控制台设置
编辑 /etc/default/console-setup
无论哪种方式,我都只能使用 /usr/share/consolefonts 中的字体(我使用的是 Debian)。
当该终端中没有进程运行时,此消息似乎随机出现在我的下拉终端中:
andreas@debianator:~$
Message from syslogd@debianator at Feb 24 18:57:58 ...
kernel:[43089.321139] Disabling IRQ #43
Run Code Online (Sandbox Code Playgroud)
我想我可以禁用它的打印,dmesg -n 1但是该消息是什么意思?