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