900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > linux命令行连接蓝牙键盘

linux命令行连接蓝牙键盘

时间:2021-02-23 22:02:11

相关推荐

linux命令行连接蓝牙键盘

在KDE的图形界面连接蓝牙设备非常的方便,图形化点点就行了。

图形化连接

基础

#安装 sudo pacman -S bluez bluez-utils#开机启动sudo systemctl enable bluetooth.service#立即开启sudo systemctl start bluetooth.service

蓝牙图形化管理工具安装

sudo pacman -S bluedevil

安装了以上内容后,在KDE的图形界面就可以连接蓝牙设备了。非常方便。

命令行连接

既然图形化的连接已经非常的方便了,那么为什么还在搞命令行的连接呢?我有苦衷啊,我用的i3wm直接调用KDE的设置中的蓝牙连接,怎么也连接不上。那也只能从命令行连接了。

参考wiki:/title/Bluetooth_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

加载btusb内核模块

通用蓝牙驱动是 btusb 内核模块。检查 模块是否加载了。如果没有就先加载模块。

我这边是要手动加载的

modprobe btusb

每次开机要手动加载,太麻烦了。设置自动加载方法:

cd /etc/modules-load.dnvim btusb.conf

文件内容如下:

btusb

自动加载内核模块参考:

/title/Kernel_module_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29#%E4%BD%BF%E7%94%A8systemd%E8%87%AA%E5%8A%A8%E5%8A%A0%E8%BD%BD%E6%A8%A1%E5%9D%97

bluetoothctl

因为上面图形化的连接方便,已经安装了一些包,所以我可以直接 使用以下命令了。如果你的电脑中没有以下命令请安装一下上面的一些包试试。

下面内容是直接复制wiki上的内容的。

运行bluetoothctl交互命令。输入help来获取帮助。

(可选操作) 选择一个默认的蓝牙接收器select MAC_address.使用命令power on打开蓝牙,蓝牙默认是关闭的,并且重启之后默认也会关闭,参照 #开机后自动启动.使用命令agent on(推荐)选择要连接的设备类型或者去选择一个特定的类型: 如果你在agent命令后按下两次tab键, 你应该看到一些可以使用的类型列表,比如DisplayOnly KeyboardDisplay NoInputNoOutput DisplayYesNo KeyboardOnly off on.使用命令default-agent去确认并完成要连接的设备类型使用命令devices去获得想要去配对的设备MAC地址如果设备没有出现在上一步的列表中,使用命令scan on去搜索发现所有可配对的设备使用命令pair MAC_address去配对设备(tab键可以自动补全MAC地址)如果配对设备不需要配对码(PIN), 那么你可能需要手动将给设备添加到信任列表,使用命令trust MAC_address使用命令connect MAC_address去确认最后的连接

以下为一个交互实例:

# bluetoothctl [NEW] Controller 00:10:20:30:40:50 pi [default][bluetooth]# agent KeyboardOnly Agent registered[bluetooth]# default-agent Default agent request successful[bluetooth]# power onChanging power on succeeded[CHG] Controller 00:10:20:30:40:50 Powered: yes[bluetooth]# scan onDiscovery started[CHG] Controller 00:10:20:30:40:50 Discovering: yes[NEW] Device 00:12:34:56:78:90 myLino[CHG] Device 00:12:34:56:78:90 LegacyPairing: yes[bluetooth]# pair 00:12:34:56:78:90Attempting to pair with 00:12:34:56:78:90[CHG] Device 00:12:34:56:78:90 Connected: yes[CHG] Device 00:12:34:56:78:90 Connected: no[CHG] Device 00:12:34:56:78:90 Connected: yesRequest PIN code[agent] Enter PIN code: 1234[CHG] Device 00:12:34:56:78:90 Paired: yesPairing successful[CHG] Device 00:12:34:56:78:90 Connected: no[bluetooth]# connect 00:12:34:56:78:90Attempting to connect to 00:12:34:56:78:90[CHG] Device 00:12:34:56:78:90 Connected: yesConnection successful

我根据这个操作实例成功的连接了我的蓝牙设备了。有了 这个命令连接蓝牙键盘的经历,以为就算在命令行中,我也会连接蓝牙了。

以下是我实现录入命令,把关键的命令和结果显示出来,方便命令的复制

#进入蓝牙设备交互程序bluetoothctl#选择要连接的设备类型agent KeyboardOnlydefault-agent#打开蓝牙,蓝牙默认是关闭的,并且重启之后默认也会关闭power on#扫描可以连接的蓝牙设备scan on#[CHG] Controller 8C:B8:7E:E7:2C:27 Discovering: yes#[NEW] Device F4:73:35:40:04:F4 Keyboard K380#连接上面搜到的蓝牙键盘的MAC地址,会有个提示输入PassKey按蓝牙键盘的相应按钮pair F4:73:35:40:04:F4#[agent] Passkey: 258038#[CHG] Device F4:73:35:40:04:F4 Paired: yes#Pairing successful#配对成功以后,需要进行connect 连接后才可以正常连接蓝牙设备connect F4:73:35:40:04:F4#[CHG] Device F4:73:35:40:04:F4 Connected: yes#Connection successful

信任设备

以上操作完成以后,发现每次蓝牙断开重新连接,就会有一个提示信息。如果不确认设备就无法正常连接。这对于蓝牙键盘很不方便。询问信息如下:

[CHG] Device F4:73:35:40:04:F4 Connected: yesAuthorize service[agent] Authorize service 00001124-0000-1000-8000-00805f9b34fb (yes/no): yes

后来根据测试,是因为设备没有被信任导致的。

trust设备MAC地址

trust F4:73:35:40:04:F4

查询设备信息

info F4:73:35:40:04:F4

设置开机后自动启动

蓝牙在重启后默认不会自动启动。你只需要将 AutoEnable=true 添加在 /etc/bluetooth/main.conf 底部的 [Policy] 下面:

nvim /etc/bluetooth/main.conf

内容如下:

[Policy]AutoEnable=true

删除重新连接

因为我是windows和Linux双系统,平时大多时间在linux中使用蓝牙键盘。但是偶尔在windows连接过蓝牙键盘后,就会发现回到linux时,蓝牙键盘已经无法连接了。

我的目前解决办法比较愚笨一些。就是把设备删除了重新连接。至少能解决问题,更好的解决办法以后有空在尝试吧。

#删除已经配对的蓝牙设备remove F4:73:35:40:04:F4#重新配对方法与之前一致,我也写一下方便我以后直接复制。pair F4:73:35:40:04:F4connect F4:73:35:40:04:F4trust F4:73:35:40:04:F4

以上删除重新连接,有时会遇到怎么也配对不上的问题。这样的问题,我的解决办法:

尝试关闭键盘,重新开启键盘。尝试切换其他的连接端(比较我的K380可以同时连接3个设备,切成别的试试)

经过折腾彻底解决了,蓝牙键盘多系统中切换的问题。

《windows11 + linux 蓝牙连接问题》 /lxyoucan/article/details/125594711

总结

完成以上操作,终于可以开机自动启动并自动连接蓝牙键盘啦。这下方便了不少。

这么折腾的主要原因是我这台笔记本电脑自带的键盘目前没找到驱动的方法。每次只能先用鼠标点软键盘onboard然后连接蓝牙键盘。

一劳永逸,舒服。

参考

/title/Bluetooth_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

/wiki/Bluetooth

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。