一. 简介
正点原子的 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 内核要修改的内容就全部完成了。