介绍了Ubuntu如何使用蓝牙适配器。
绿联CM390蓝牙适配器驱动
背景
由于实验室的机箱不支持蓝牙功能,于是买了一个蓝牙适配器来连接我的键盘。蓝牙适配器是在京东的绿联自营店买的,型号为CM390,官方的说法是只支持Windows系统,上网搜索了一下,发现有适配Linux的方法,下面我就详细介绍过程。
环境
OS:Ubuntu 18.04.6 LTS
Kernel:Linux 5.4.0
驱动文件:BT5.0_Linux 提取码: qms8
过程
拔下你的蓝牙适配器
下载驱动文件到Linux上,解压到任意文件夹,解压后得到BT5.0_Linux文件夹。
进入BT5.0_Linux文件夹,在此位置打开终端。
运行如下命令
cd 20201202_LINUX_BT_DRIVER/usb
sudo make install
cd ..
sudo cp rtkbt-firmware/lib/firmware/rtl8761bu_fw /lib/firmware
sudo cp rtkbt-firmware/lib/firmware/rtl8761bu_config /lib/firmware
插上蓝牙适配器
打开你的蓝牙界面即可显示蓝牙设备
One More Thing
正常执行完以上操作就完事了,但是如果你需要编译内核,你就会发现编译内核安装完成重启后,蓝牙又没用了,这是因为这个蓝牙驱动是以模块形式插入到内核的,重新编译安装内核后,模块被全部删除并重新插入,但是驱动模块并非内核自带,所以并不会帮你插入,这时候你只需要手动再执行一遍上面的操作就可以了。
我们需要把这个内核编译进内核,这样每次重新编译安装内核时他都会帮我们自己插入模块。
既然你要编译内核,那么内核源码你一定是有的,这里我下载的内核源码版本为5.4.0。
sudo make 你解压的驱动的路径/BT5.0_Linux/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver
运行上面的命令后在目录下会新增一些文件,将以下文件复制到—-> 内核所在路径/linux-5.4/drivers/bluetooth/下
rtk_bt.c rtk_bt.h rtk_bt.o rtk_btusb.ko rtk_btusb.mod rtk_btusb.mod.c rtk_btusb.mod.o rtk_btusb.o
.rtk_btusb.ko.cmd .rtk_btusb.mod.cmd .rtk_btusb.mod.o.cmd .rtk_btusb.o.cmd
前面8个文件可以在图形界面的文件夹下看到,而后面四个是看不到的,所以对于前面8个文件,我们直接拷贝粘贴即可,后面4个文件我们使用命令行来拷贝。
sudo cp 你解压的驱动的路径/BT5.0_Linux/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/.rtk_btusb.ko.cmd 你的内核路径/Linux-5.4/drivers/bluetooth/
sudo cp 你解压的驱动的路径/BT5.0_Linux/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/.rtk_btusb.mod.cmd 你的内核路径/Linux-5.4/drivers/bluetooth/
sudo cp 你解压的驱动的路径/BT5.0_Linux/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/.rtk_btusb.mod.o.cmd 你的内核路径/Linux-5.4/drivers/bluetooth/
sudo cp 你解压的驱动的路径/BT5.0_Linux/20201202_LINUX_BT_DRIVER/usb/bluetooth_usb_driver/.rtk_btusb.o.cmd 你的内核路径/Linux-5.4/drivers/bluetooth/
vim 你的内核路径/Linux-5.4/drivers/bluetooth/Makefile
在第一行(除了最上面的注释)加入一行,vim应该都会用吧,按字母i键进入输入模式,输入完成后按esc,再输入:wq即可保存退出
obj-$(CONFIG_RTK_BTUSB) += rtk_btusb.o
vim 你的内核路径/Linux-5.4/drivers/bluetooth/Kconfig
在menu “Bluetooth device drivers” Depends on BT下再加入以下内容,vim的用法同上
config RTK_BTUSB
tristate
bool "Enable RTK_BTUSB"
cd 你的内核路径/Linux-5.4/
make menuconfig
在弹出来的界面中依次选择(上下键移动,回车键选中)Networking support>Bluetooth subsystem support>Bluetooth device drivers
不出意外的话,第一个就是Enable RTK_BTUSB,这也是我们在上一步输入的名字,此时按一下M即可开启这个选项
开启之后,按右方向键选中Save,按两次回车,然后一路按esc即可退出。
sudo make
sudo make INSTALL_MOD_STRIP=1 modules_install
sudo make install
顺利的话,编译完成后reboot即可看到蓝牙可以正常使用,不需要每次输入命令。