0


为ubuntu 18.04添加蓝牙驱动

目录

背景

从网上买的能直接插ubuntu 1804的usb蓝牙太少了,而且还贵。我就直接从JD下单的一个便宜的USB蓝牙,结果插上机器没有驱动起不来。我的PC是个3年前的老机器,实在是不想升级系统,于是捣鼓半天捣鼓好了,这里记录一下。

方法

  1. lsusb命令,找到蓝牙模块的id号2b89:8761,然后通过搜索了解到这个芯片是RealTek 8761BUV。
  2. 在网上搜索,发现这个驱动包括驱动的代码,和驱动的固件,这个固件包括两个,一个是叫做rtl8761b_config.bin和rtl8761b_fw.bin。官方下载地址在这里。下载之后,拷贝到/lib/firmware/rtl_bt/里边。
  3. 准备修改驱动并编译。首先下载驱动代码,在:git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git 这个里边,当然,如果是其他版本的ubuntu,需要将bionic替换掉。可以参考/etc/apt/sources.list里边的名字。当然git clone了相当相当长的时间。然后checkout出来你自己对应的内核版本——用uname -a命令获取。
  4. 我通过bootlin,来看我的版本和最新版本驱动的差别。最新版本其实是集成了8761BUV的。通过参考btrtl.c和btusb.c两个文件,再通过这个blog的提示,修改好代码(其实就是参照着把8761buv的信息添加到这两个代码里边,然后写好固件地址)。
  5. 然后编译内核驱动。先把/boot/your_kernel_config拷贝到你的内核文件夹里边的.config文件。然后make即可。当然,一般都不会那么顺利。我遇到了不少问题,其实都是见招拆招,搜索谷歌。通常来说不会有什么大的问题,都是缺少工具,缺少文件什么的。然后编译完成后,sudo rmmod btusb btrtl,然后再sudo insmod btrtl.ko btusb.ko
  6. 在插入模块之前,最好是sudo dmesg -cdmesg -wH这样可以查看模块插入后有什么异常信息打印。
  7. 我这边是发现无法加载固件。后来发现这个固件我是用符号链接链接过去的,不行,必须实体cp才行。
  8. 另外就是代码里会有一些bug,照着打印的信息修改一下。
  9. 然后hciconfig -a即可看到蓝牙是否正常启动了。
标签: ubuntu git linux

本文转载自: https://blog.csdn.net/asasasaababab/article/details/129463314
版权归原作者 asasasaababab 所有, 如有侵权,请联系我们删除。

“为ubuntu 18.04添加蓝牙驱动”的评论:

还没有评论