当前位置: 首页 > news >正文

为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即可看到蓝牙是否正常启动了。

http://www.lryc.cn/news/38576.html

相关文章:

  • Stable Diffusion Prompt用法
  • jenkins问题
  • 阅读笔记DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks
  • 01.Java的安装
  • 【C语言深度剖析】关键字(全)
  • English Learning - L2 语音作业打卡 双元音 [aʊ] [əʊ] Day15 2023.3.7 周二
  • 记第一次面试的过程(C++)
  • 06 电力电子仿真 MATLAB/Simulink
  • 搞懂面向对象这五大概念,才算真正跨过初学者到开发者的“分水岭“
  • 基于DelayQueue实现的延时队列
  • MATLAB实现层次分析法AHP及案例分析
  • Vue 3.0 TypeScript支持
  • STM8S系列基于IAR标准外设printf输出demo
  • PMP项目管理项目质量管理
  • 前缀和总结
  • 0109二分图-无向图-数据结构和算法(Java)
  • 计算机网络题库---选择题刷题训练(100多道精品)
  • 16、字符串生成器
  • docker基本命令-容器
  • QT入门基础(一)
  • WattOS:一个稳又快的轻量级 Linux 发行版
  • Java调用Python脚本:轻松实现两种语言的互操作性
  • 未系安全带识别系统 yolo
  • (七十六)大白话MySQL是如何根据成本优化选择执行计划的?(上)
  • DSRC技术
  • _面经问题_
  • 刷题记录(2023.3.6 - 2023.3.11)
  • 14 Day:同步锁与操作系统输入输出
  • Gradle 的下载安装教程
  • 「Python 基础」常用模块