WIFI驱动移植实验:将 rtl8188EUS驱动添加到 Linux 内核中

news2024/11/29 3:02:19

一.  简介

正点原子的 I.MX6U-ALPHA 开发板目前支持两种接口的 WIFI USB SDIO ,其中 USB接口的WIFI 使用使用的芯片为 RTL8188EUS RTL8188CUS SDIO 接口的 WIFI 使用芯片为
RTL8189FS ,也叫做 RTL8189FTV 。这两个都是 realtek 公司出品的 WIFI 芯片。

WIFI 驱动不需 要我们编写,因为 realtek 公司提供了 WIFI 驱动源码,因此,我们只需要将 WIFI 驱动源码添加 Linux 内核中,然后通过图形化界面配置,选择将其编译成模块即可。

二.  rtl81xx 驱动文件浏览

这里我买的正点原子 ALPHA开发板,赠送了一个 USB接口的WIFI模块,型号为 RTL8188EUS。

WIFI 驱动源码已经放到了开发板光盘中,路径为: 1 、例程源码 ->5 、模块驱动源码 ->1 、RTL8XXX WIFI 驱动源码 -> realtek realtek 目录下就存放着 RTL8188EUS RTL8189FS 这两 个芯片的驱动源码,如下图 所示:
其中 rtl8188EUS 下存放着 RTL8188EUS 驱动。
RTL8189FS 存放着 RTL8189FS/FTV 的驱动 文件。
rtl8192CU 下存放RTL8192CU 的驱动。

注意!正点原子 ALPHA 开发板赠送的 USB WIFI 模块分为 RTL8188EUS RTL8188CUS 两种,这两种 USB WIFI 驱动是不一样的!

Kconfig 文件是 WIFI 驱动的配置界面文档,这样可以通过 Linux 内核图形化配置界面来选择是否编译 WIFI 驱动。

Makefile 文件是编译 驱动模块的作用。

三. WIFI驱动移植实验:将 rtl8188EUS驱动添加到 Linux 内核中

1. 将 rtl8188EUS 驱动添加到 Linux 内核中

realtek 整个目录拷贝到 ubuntu Linux 内核源码中的 drivers/net/wireless 目录下,此目录下存放着所有 WIFI 驱动文件。这里拷贝不能加 "sudo" 权限,否则可能最后编译不过。
拷贝完成以后此目录如下图 所示:

上图中红色方框中,就是我们刚刚拷贝进来的 realtek 目录。

2. 修改 drivers/net/wireless/Kconfig

打开内核源码根目下的 drivers/net/wireless/Kconfig ,在里面加入下面这一行内容:
source "drivers/net/wireless/realtek/Kconfig"
添加完以后的 Kconfig 文件内容如下所示:
#
# Wireless LAN device configuration
#

menuconfig WLAN
......
    source "drivers/net/wireless/rsi/Kconfig"
    source "drivers/net/wireless/realtek/Kconfig"

endif # WLAN
添加了上面的一句代码后 ,这样 WIFI 驱动的配置界面才会出现在 Linux 内核配置界面上。

3. 修改 drivers/net/wireless/Makefile

打开 drivers/net/wireless/Makefile ,在里面加入下面一行内容:
obj-y += realtek/
修改完以后的 Makefile 文件内容如下所示:
#
# Makefile for the Linux Wireless network device drivers.
#

obj-$(CONFIG_IPW2100) += ipw2x00/
......
   obj-$(CONFIG_CW1200) += cw1200/
   obj-$(CONFIG_RSI_91X) += rsi/

   obj-y += realtek/

添加了上面一行代码就是编译 realtek 中的内容,至此, Linux 内核要修改的内容就全部完成了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1560205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

尚医通day1

1 创建项目 doc 窗口 pnpm create vite 填写项目名 vue-syt选择框架 vuetypeScript 2整理项目 删除 /src/assets/vue.svg 文件,删除 /src/components 下的 helloWorld.vue删除app.vue内容,快捷键v3ts 生成模板内容去掉 /src/style.css 样式文件&…

仿微信领红包HTML源码

源码介绍 仿微信领红包HTML源码,将代码放到一个空白的HTML文件里面保存,鼠标双击即可查看效果,一个微信发送消息提示,弹窗就出来了,关闭之后,出现完整的微信红包领取界面,源码HTML,…

GS1-全球分类标准

GS1 GS1是一个中立的全球合作平台,汇集行业领袖、政府、监管机构、学术界和协会,共同开发基于标准的解决方案,以应对数据交换的挑战。我们的规模和影响力——遍布 116 个国家/地区的当地会员组织、超过 200 万家用户公司和每天 100 亿笔交易—…

conda 创建 python3.10.12 环境

conda 创建 python3.10.12 环境 介绍使用前置条件:安装 conda配置环境变量验证 Conda 安装结果创建环境:python激活 Anaconda 环境 验证 Python 版本。 介绍 Conda是一个开源的包管理和环境管理系统,由Continuum Analytics公司开发。它可以安…

LangChain使用实例——Query analysis

Query analysis ​ “Search”为许多用例提供支持——包括检索增强生成的“检索”部分。最简单的方法是将用户问题直接传递给检索器。为了提高性能,还可以使用“query analysis”以某种方式“优化”查询。传统上,这是通过基于规则的技术来完成的&#x…

VMware虚拟机共享主机v2rayN

目录 🌼前言 🌼解释 🚩操作 1)VMware -- 虚拟网络编辑器 2)VMware -- 网络适配器 3)主机 IP 地址 4)v2rayN 代理端口 5)VMware -- 网络代理(Network proxy) 🎂结…

基于 Quartz.NET 可视化任务调度平台 QuartzUI

一、简介 QuartzUI 是基于 Quartz.NET3.0 的定时任务 Web 可视化管理,Docker 打包开箱即用、内置 SQLite 持久化、语言无关、业务代码零污染、支持 RESTful 风格接口、傻瓜式配置、异常请求邮件通知等。 二、部署 QuartzUI 从 2022 年到现在没有提交记录&#xf…

深入理解MapReduce:从Map到Reduce的工作原理解析

当谈到分布式计算和大数据处理时,MapReduce是一个经典的范例。它是一种编程模型和处理框架,用于在大规模数据集上并行运行计算任务。MapReduce包含三个主要阶段:Map、Shuffle 和 Reduce。 ** Map 阶段 ** Map 阶段是 MapReduce 的第一步&am…

初始Java篇(JavaSE基础语法)(5)(类和对象(上))

个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客 目录 面向对象的初步认知 面向对象与面向过程的区别 类的定义和使用 类的定义格式 类的实例化 this引用 什么是this引用? this引用…

六、Django开发

六、Django开发 1.新建项目2.创建app2.1 第一种方法:2.2 利用pycharm中tools工具直接创建app 3.设计表结构(django)4.在MySQL中生成表5.静态文件管理6.部门管理6.1 部门列表 7.模板的继承8.用户管理8.1初识Form1.views.py2.user_add.html 8.2…

数字乡村发展蓝图:科技赋能农村实现全面振兴

目录 一、数字乡村发展蓝图的内涵与目标 二、科技赋能农村:数字乡村发展的动力与路径 (一)加强农业科技创新,提升农业生产效率 (二)推进农村电商发展,拓宽农民增收渠道 (三&…

数据挖掘入门项目二手交易车价格预测之特征工程

文章目录 目标常见的特征工程具体步骤1. 导入数据2. 删除异常值3. 特征构造3.1 为树模型构造特征3.2 为LR NN 之类的模型构造特征 4. 特征筛选过滤式包裹式嵌入式 5. 总结 本文数据集来自阿里天池:https://tianchi.aliyun.com/competition/entrance/231784/informat…

华为OD机试 - 绘图机器 - 双指针(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

Spring Boot 一.基础和项目搭建(上)

之前也自学过SSM框架,Spring Boot框架,也动手写过几个项目,但是这是第一次完整的记录。从0开始,把一些细节整理了一下。 大概会分为十几小节,这是一个学习的过程,更是一个思考的过程,废话不多说…

MySQL8 搭建集群方案文档

MySQL8.0.21 InnoDB Cluster 从零搭建集群方案详细文档 InnoDB集群 本文档分享新版本MySQL 8.0.21 Innodb Cluster集群搭建过程 ~ MySQL InnoDB Cluster为MySQL提供了完整的高可用性解决方案。通过使用MySQL Shell附带的AdminAPI, 您可以轻松地配置和管理一组至少…

【数字IC/FPGA】手撕代码:模3检测器(判断输入序列能否被3整除)

今天我们来手撕一个常见的笔试题,使用的方法是三段式Moore状态机。 题目描述: 输入端口是串行的1bit数据,每个时钟周期进来一位新数据后,实时检查当前序列是否能整除3,若能则输出1,否则输出0。 例如&#…

BIT-4-自定义类型:结构体,枚举,联合(C语言进阶)

本章重点 结构体 结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐结构体传参结构体实现位段(位段的填充&可移植性)枚举 枚举类型的定义枚举的优点枚举的使用联合 联合类型的定义联合的特点联合大小的计算 结构体 1.结构体的声…

unity学习(74)——服务器Dispose异常

1.返回的1 2 11是怪物初始化,源代码中也没有 2. 3.客户端中的网络连接初始化如下: 4.不是因为超时,设置10s为超时期限后,客户端和服务器有时依然会报错! 5.我感觉就是update中发包给弄坏的! 6.不在“帧”…

【面试专题】Mybatis高频面试题

一、介绍下MyBatis中的工作原理 1。介绍MyBatis的基本情况:ORM 2。原理: MyBatis框架的初始化操作处理SQL请求的流程 1.系统启动的时候会加载解析全局配置文件和对应映射文件。加载解析的相关信息存储在 Configuration 对象 Testpublic void test1(…

Android ImageView以及实现截图

实现效果 截图前 截图后 代码 package cn.jj.huaweiad;import android.annotation.SuppressLint; import android.graphics.Bitmap; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.view.ViewGro…