Linux WIFI 驱动实验

直接参考【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81

本文仅作为个人笔记使用,方便进一步记录自己的实践总结。

WIFI 的使用已经很常见了,手机、平板、汽车等等,虽然可以使用有线网络,但是有时候很多设备存在布线困难的情况,此时 WIFI 就是一个不错的选择。正点原子 I.MX6U-ALPHA 开发板支持 USB 和 SDIO 这两种接口的 WIFI,本章我们就来学习一下如何在 I.MX6U-ALPHA 开发板上使用 USB 和 SDIO 这两种 WIFI。

WIFI 驱动添加与编译

正点原子的 I.MX6U-ALPHA 开发板目前支持两种接口的 WIFI:USB 和 SDIO,其中 USB WIFI 使用的芯片为RTL8188EUS或 RTL8188CUS,SDIO 接口的WIFI 使用芯片为 RTL8189FS,也叫做 RTL8189FTV。这两个都是 realtek 公司出品的 WIFI 芯片。WIFI 驱动不需要我们编写,因为 realtek 公司提供了 WIFI 驱动源码,因此我们只需要将 WIFI 驱动源码添加到 Linux 内核中,然后通过图形化界面配置,选择将其编译成模块即可。正点原子I.MX6U-ALPHA开发板默认会赠送一个RTL8188EUS/CUS USB WIFI,如图70.1.1所示:

另外,正点原子还有一款采用 RTL8189FTV 芯片的 SDIO WIFI,如图 70.1.2 所示:

向 Linux 内核添加 WIFI 驱动

1、rtl81xx 驱动文件浏览

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

其中 rtl8188EUS 下存放着 RTL8188EUS 驱动,RTL8189FS 存放着 RTL8189FS/FTV 的驱动文件,rtl8192CU 下存放着 RTL8188CUS 和 RTL8192CU 的驱动,注意!正点原子 ALPHA 开发板赠送的 USB WIFI 模块分为 RTL8188EUS 和 RTL8188CUS 两种,这两种 USB WIFI 驱动是不一样的!Kconfig 文件是 WIFI 驱动的配置界面文档,这样可以通过 Linux 内核图形化配置界面来选择是否编译 WIFI 驱动,Kconfig 文件内容如下所示:

Makefile 文件内容如下所示

2、删除 linux 内核自带的 RTL8192CU 驱动

本教程所使用的 linux 内核已经自带了 RTL8192CU/8188CUS 驱动,但是经过测试,linux内核自带的驱动不稳定!因此不建议大家使用。最好使用图 70.1.1.1 中我们提供的 rtl8192CU 驱动。在编译之前要先将内核自带的驱动屏蔽掉,否则可能导致编译出错,方法很简单。打开drivers/net/wireless/rtlwifi/Kconfig,找到下面所示内容然后删除掉:

将示例代码 70.1.1.2 中的 1~11 行内容从 drivers/net/wireless/rtlwifi/Kconfig 中删除掉。

继续打开 drivers/net/wireless/rtlwifi/Makefile,找到下面这样:

将示例代码 70.1.1.3 中这一行从 drivers/net/wireless/rtlwifi/Makefile 中屏蔽掉,至此,linux内核自带的RTL8192CU/8188CU 驱动就屏蔽掉了。

3、将 rtl81xx 驱动添加到 Linux 内核中

将 realtek 整个目录拷贝到 ubuntu 下 Linux 内核源码中的 drivers/net/wireless 目录下,此目录下存放着所有WIFI 驱动文件。拷贝完成以后此目录如图 70.1.1.1 所示:

图 70.1.1.1 中框选出来的就是我们刚刚拷贝进来的 realtek 目录。

4、修改 drivers/net/wireless/Kconfig

打开 drivers/net/wireless/Kconfig,在里面加入下面这一行内容:

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

添加完以后的 Kconfig 文件内容如下所示:

第 287 行就是添加到 drivers/net/wireless/Kconfig 中的内容,这样 WIFI 驱动的配置界面才会出现在 Linux 内核配置界面上。

5、修改 drivers/net/wireless/Makefile

打开 drivers/net/wireless/Makefile,在里面加入下面一行内容:

obj-y += realtek/

修改完以后的 Makefile 文件内容如下所示:

第 65 行,编译 realtek 中的内容,至此,Linux 内核要修改的内容就全部完成了。

配置 Linux 内核

在编译 RTL8188 和 RTL8189 驱动之前需要先配置 Linux 内核。

1、配置 USB 支持设备

配置路径如下:

2、配置支持 WIFI 设备

配置路径如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值