背景
从网上买的能直接插ubuntu 1804的usb蓝牙太少了,而且还贵。我就直接从JD下单的一个便宜的USB蓝牙,结果插上机器没有驱动起不来。我的PC是个3年前的老机器,实在是不想升级系统,于是捣鼓半天捣鼓好了,这里记录一下。
方法
-
用
lsusb
命令,找到蓝牙模块的id号2b89:8761,然后通过搜索了解到这个芯片是RealTek 8761BUV。 -
在网上搜索,发现这个驱动包括驱动的代码,和驱动的固件,这个固件包括两个,一个是叫做rtl8761b_config.bin和rtl8761b_fw.bin。官方下载地址在这里。下载之后,拷贝到
/lib/firmware/rtl_bt/
里边。 -
准备修改驱动并编译。首先下载驱动代码,在:
git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git
这个里边,当然,如果是其他版本的ubuntu,需要将bionic替换掉。可以参考/etc/apt/sources.list
里边的名字。当然git clone了相当相当长的时间。然后checkout出来你自己对应的内核版本——用uname -a命令获取。 -
我通过bootlin,来看我的版本和最新版本驱动的差别。最新版本其实是集成了8761BUV的。通过参考btrtl.c和btusb.c两个文件,再通过这个blog的提示,修改好代码(其实就是参照着把8761buv的信息添加到这两个代码里边,然后写好固件地址)。
-
然后编译内核驱动。先把/boot/your_kernel_config拷贝到你的内核文件夹里边的.config文件。然后make即可。当然,一般都不会那么顺利。我遇到了不少问题,其实都是见招拆招,搜索谷歌。通常来说不会有什么大的问题,都是缺少工具,缺少文件什么的。然后编译完成后,
sudo rmmod btusb btrtl
,然后再sudo insmod btrtl.ko btusb.ko
。 -
在插入模块之前,最好是
sudo dmesg -c
和dmesg -wH
这样可以查看模块插入后有什么异常信息打印。 -
我这边是发现无法加载固件。后来发现这个固件我是用符号链接链接过去的,不行,必须实体cp才行。
-
另外就是代码里会有一些bug,照着打印的信息修改一下。文章来源:https://www.toymoban.com/news/detail-425803.html
-
然后
hciconfig -a
即可看到蓝牙是否正常启动了。文章来源地址https://www.toymoban.com/news/detail-425803.html
到了这里,关于为ubuntu 18.04添加蓝牙驱动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!