天天看点

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

一、USB无线网卡

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

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

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

二、添加驱动到Linux中

1. realtek驱动源码

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

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

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

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

修改文件​

​drivers/net/wireless/rtlwifi/Kconfig​

​,注释掉RTL8192CU相关的配置内容:

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

修改文件​

​drivers/net/wireless/rtlwifi/Makefile​

​,注释掉RTL8192CU的驱动源码:

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

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

3. 添加rtl81xx驱动

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

cp      
i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

(2)修改Kconfig文件

修改​

​drivers/net/wireless/Kconfig​

​文件,引用realtek文件夹下的Kconfig文件:

source "drivers/net/wireless/realtek/Kconfig"      
i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

(3)修改Makefile

修改​

​drivers/net/wireless/Makefile​

​,引用realtek文件夹下的Makefile:

obj-$(CONFIG_REALTEK_WIFI)  +=      

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

三、Linux内核配置

1. 开启USB设备支持

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)
i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

2. 支持WIFI设备

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

3. 支持IEEE 802.11

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

4. 编译新内核

make      

使用新编译的内核启动。

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

四、编译WIFI网卡驱动模块

进入menuconfig。

1. 使能Realtek wifi

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

该选项会使能 REALTEK_WIFI 这个宏:

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

2. 使能驱动模块

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

3. 编译驱动模块

编译内核模块:

make      

查看编译出的模块:

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

使用nfs传到开发板上,待会加载。将修改同步到开发板配置文件:

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

4. 测试

插入USB网卡:

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

加载驱动模块:

i.MX6ULL驱动开发 | 29 - 使用USB WIFI网卡(RTL8188EU)

继续阅读