i.mx6ull驱动开发|29-使用usbwifi网卡(rtl8188eu)(代码片段)

Mculover666 Mculover666     2022-12-01     692

关键词:

一、USB无线网卡


插到电脑上看下型号是Realtek RTL8188EU版本:

二、添加驱动到Linux中

1. realtek驱动源码

使用正点原子资料包中的源码:

2. 删除内核自带的RTL8192CU驱动

根据正点原子教程描述,linux内核自带的驱动经过测试不稳定,所以手动添加驱动源码。

修改文件drivers/net/wireless/rtlwifi/Kconfig,注释掉RTL8192CU相关的配置内容:

修改文件drivers/net/wireless/rtlwifi/Makefile,注释掉RTL8192CU的驱动源码:

至此,Linux内核自带的RTL8192CU/8188CU驱动的源码屏蔽完成。

3. 添加rtl81xx驱动

(1)拷贝整个realtek目录到linux内核源码的drivers/net/wireless目录下,此目录中存放着把所有的WIFI驱动文件:

cp -rf driver_src/realtek linux-imx6ull/drivers/net/wireless/


(2)修改Kconfig文件

修改drivers/net/wireless/Kconfig文件,引用realtek文件夹下的Kconfig文件:

source "drivers/net/wireless/realtek/Kconfig"


(3)修改Makefile

修改drivers/net/wireless/Makefile,引用realtek文件夹下的Makefile:

obj-$(CONFIG_REALTEK_WIFI) 	+= realtek/

至此,realtek驱动添加进内核完成。

三、Linux内核配置

1. 开启USB设备支持


2. 支持WIFI设备

3. 支持IEEE 802.11

4. 编译新内核

make -j16

使用新编译的内核启动。

将配置完成的.config文件内容,同步修改到arch/arm/configs/imx_atk_emmc_defconfig文件中。

四、编译WIFI网卡驱动模块

进入menuconfig。

1. 使能Realtek wifi


该选项会使能 REALTEK_WIFI 这个宏:

2. 使能驱动模块

3. 编译驱动模块

编译内核模块:

make modules -j16

查看编译出的模块:

使用nfs传到开发板上,待会加载。

将修改同步到开发板配置文件:

4. 测试

插入USB网卡:

加载驱动模块:

查看网卡列表:

i.mx6ull驱动开发|36-注册spilcd为framebuffer设备并使用lvgl测试(代码片段)

...取更简洁清爽的阅读体验,请移步我的个人博客网站:i.MX6ULL驱动开发|36-注册spilcd为framebuffer设备并使用lvgl测试。一、准备工作i.MX6ULL驱动开发|34-基于SPI框架驱动spilcd(st7789)(mculover666.cn)i.MX6ULL驱动开发|35-NXPLCD控制器Framebuffer驱... 查看详情

i.mx6ull驱动开发1——字符设备开发模板

之前的几篇文章(从i.MX6ULL嵌入式Linux开发1-uboot移植初探起),介绍了嵌入式了Linux的系统移植(uboot、内核与根文件系统)以及使用MfgTool工具将系统烧写到板子的EMMC中。本篇开始介绍嵌入式Linux驱动开发。内容较多,先看目录:... 查看详情

i.mx6ull驱动开发|30-使用ec204g网卡(移植移远gobinet驱动)(代码片段)

一、EC20EC20在Linux下的驱动架构:二、Linux内核中USB驱动的修改与配置1.EC20USB驱动修改默认插上之后没有出来ttyUSB设备,需要在内核中添加EC20的USB设备信息。1.1.添加USB设备信息修改文件drivers/usb/serial/option.c。(1)o... 查看详情

i.mx6ull驱动开发|08-基于pinctrl子系统和gpio子系统点亮led(代码片段)

前置知识i.MX6ULL驱动开发|03-基于字符设备驱动框架点亮LEDi.MX6ULL驱动开发|06-pinctrl子系统i.MX6ULL驱动开发|07-gpio子系统一、编写基本设备驱动模块#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linu 查看详情

i.mx6ull驱动开发|35-nxplcd控制器framebuffer驱动浅读

...取更简洁清爽的阅读体验,请移步我的个人博客网站:i.MX6ULL驱动开发|35-NXPLCD控制器Framebuffer驱动浅读。一、FramebufferFramebuffer为帧缓存,或者也可以叫做显存,开辟于RAM中。如下图所示,LCD控制器周而复始的从Framebuffer中逐一取... 查看详情

i.mx6ull驱动开发|35-nxplcd控制器framebuffer驱动浅读

...取更简洁清爽的阅读体验,请移步我的个人博客网站:i.MX6ULL驱动开发|35-NXPLCD控制器Framebuffer驱动浅读。一、FramebufferFramebuffer为帧缓存,或者也可以叫做显存,开辟于RAM中。如下图所示,LCD控制器周而复始的从Framebuffer中逐一取... 查看详情

i.mx6ull驱动开发|27-使用wm8960codec播放音频(代码片段)

一、WM8960音频编解码芯片1.介绍WM8960是欧胜公司(wolfson)的一款低功耗、高质量的立体声音频编解码芯片。其内部集成D类喇叭功放,每个通道可以驱动一个1W喇叭(8Ω),内部集成3个立体声输入源,可... 查看详情

i.mx6ull驱动开发|28-使用ft5426多点电容触摸(代码片段)

一、多点触摸协议(MT)input子系统下的多点触摸协议称为MT协议,其文档为:Documentation/input/multitouch-protocol.txt。MT协议被分为两种类型,取决于硬件的兼容性:TypeA:适用于触摸点不能被区分或者追踪&#... 查看详情

i.mx6ull驱动开发|26-linux内核的rtc驱动(代码片段)

一、RTC时间查看与设置1.内核启动日志查看Linux内核启动时与RTC相关的日志:dmesg|greprtc2.查看与设置当前系统时间(1)查看当前时间:date(2)设置当前时间date-s"2022-07-0213:47:00"3.设置当前时间到RTC外... 查看详情

i.mx6ull驱动开发|26-linux内核的rtc驱动(代码片段)

一、RTC时间查看与设置1.内核启动日志查看Linux内核启动时与RTC相关的日志:dmesg|greprtc2.查看与设置当前系统时间(1)查看当前时间:date(2)设置当前时间date-s"2022-07-0213:47:00"3.设置当前时间到RTC外... 查看详情

i.mx6ull驱动开发|16-基于uart驱动框架发送/接收串口数据(代码片段)

i.MX6ULL在SOC级别的UART外设驱动已经由原厂编写好了,我们只需要在设备树中添加对应的节点即可使用。一、在设备树添加节点1.设置UART3引脚在iomucx节点中添加uart3子节点:pinctrl_uart3:uart3grp fsl,pins=< MX6UL_PAD_UART3_TX_DATA... 查看详情

i.mx6ull驱动开发|34-基于spi框架驱动spilcd(st7789)(代码片段)

...更干净清爽的阅读体验,可以访问我的个人博客网站:i.MX6ULL驱动开发|34-基于SPI框架驱动spilcd(st7789)。一、驱动编写思路(1)编写spi驱动框架,检查probe是否可以正常挂载;(2)在probe设备中,解析设备树gpio信息、屏幕参数... 查看详情

i.mx6ull驱动开发|23-linux下的驱动分离与分层——platform平台驱动模型(代码片段)

一、Linux驱动的分离1.为什么需要驱动分离?在嵌入式开发中,无论处理器如何更换,外设模块的操作都是一致的,比如有三个不同的平台都要驱动MPU6050传感器,最简单的方法是针对每个平台都写一份驱动࿱... 查看详情

i.mx6ull驱动开发|24-基于platform平台驱动模型点亮led(代码片段)

一、编写基本设备驱动模块编写驱动模块源码:#include<linux/module.h>#include<linux/init.h>staticint__initplatform_led_init(void)return0;staticvoid__exitplatform_led_exit(void)module_init(platform_led_init 查看详情

i.mx6ull驱动开发|25-基于linux自带的key驱动检测按键(代码片段)

一、Linux内核自带的驱动Linux内核已经集成了采用platform框架编写的KEY驱动·,无需我们自己编写,只要按照要求在设备树文件中添加相应的LED节点即可。1.如何使能(1)在内核源码目录中,打开menuconfig进行配... 查看详情

i.mx6ull驱动开发|32-手动编写一个虚拟网卡设备(代码片段)

一、Linux内核网络驱动处理流程1.net_device结构体的申请与释放net_device结构体实例可以通过动态申请:#definealloc_netdev(sizeof_priv,name,name_assign_type,setup)\\ alloc_netdev_mqs(sizeof_priv,name,name_assign_type,setup,1,1)#define 查看详情

i.mx6ull驱动开发|32-手动编写一个虚拟网卡设备(代码片段)

一、Linux内核网络驱动处理流程1.net_device结构体的申请与释放net_device结构体实例可以通过动态申请:#definealloc_netdev(sizeof_priv,name,name_assign_type,setup)\\ alloc_netdev_mqs(sizeof_priv,name,name_assign_type,setup,1,1)#define 查看详情

i.mx6ull驱动开发|04-linux设备树基本语法与实例解析(代码片段)

...点标准属性4.特殊节点5.向节点追加内容三、设备树实例i.MX6ULL内部框图如何寻找开发板对应的设备树文件1.skeleton描述文件2.imx6ull芯片级描述文件(通用)2.1.根节点的补充2.2.aip 查看详情