项目场景:
在眺望电子TW-AC6G-EVM开发板上移植RTL8188 WiFi模块:
编译环境及开发包:
主机:ubuntu18.04
交叉编译器:arm-linux-gnueabihf-gcc
QT5.12.8:qt-everywhere-opensource-src-5.12.8
开发板:TW-AC6G-EVM
Linux:Linux-4.1.15
串口工具:Xshell
注意:本文章的所有命令涉及到的路径均为眺望电子官方环境路径,需根据自身实际环境改变。本文所演示的平台来自于眺望电子 iMX6ULL ARM嵌入式平台,这是一个基于NXP iMX6ULL ARM处理器,主频800MH在 Cortex-A7的核心板。
解决方案:
1.向Linux内核添加WIFI驱动
realtek目录下就存放RTL8188CUS/RTL8192CU芯片的驱动源码。rtl8192CU 下存放着 RTL8188CUS和RTL8192CU的驱动。Kconfig文件是 WIFI 驱动的配置界面文档。
1.1删除Linux内核自带的RTL8192CU驱动
打开Linux内核源码目录中drivers/net/wireless/rtlwifi/Kconfig,找到图1.1所示红色框图所包含的内容并删除。

打开 Linux内核源码目录中drivers/net/wireless/rtlwifi/Makefile,找到以下内容,并进行屏蔽(屏蔽内核自带的RTL8192CU/RTL8188CU驱动)。
obj-$(CONFIG_RTL8192CU) += rtl8192cu/
1.2将RTL8192CU(RTL8188CU)驱动添加到Linux内核中
将realtek整个目录拷贝到Ubuntu下 Linux 内核源码中的drivers/net/wireless目录下。
打开 drivers/net/wireless/Kconfig,在末尾加入下面这一行内容:
source "drivers/net/wireless/realtek/Kconfig"

添加以上内容,WIFI驱动的配置界面才会出现在 Linux内核配置界面上。
打开 drivers/net/wireless/Makefile,在末尾加入下面一行内容:
obj-y += realtek/

1.3Linux内核中的WIFI配置
1 、配置USB支持设备
配置路径如下:
-> Device Drivers
-> <*> USB support
-> <*> Support for Host-side USB
-> <*> EHCI HCD (USB 2.0) support
-> <*> OHCI HCD (USB 1.1) support
-> <*> ChipIdea Highspeed Dual Role Controller
-> [*] ChipIdea device controller
-> [*] ChipIdea host controller
2 、配置支持 WIFI 设备
配置路径如下:
-> Device Drivers
-> [*] Network device support
-> [*] Wireless LAN
-> <*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
-> [*] Support downloading firmware images with Host AP driver
-> [*] Support for non-volatile firmware download
3 、配置支持 IEEE 802.11
配置路径如下:
-> Networking support
-> -*- Wireless
-> [*] cfg80211 wireless extensions compatibility
-> <*> Generic IEEE 802.11 Networking Stack (mac80211)
1.4编译 RTL8192CU(RTL8188CU)驱动
在Linux内核源码目录中执行“make menuconfig”命令,打开 Linux 内核配置界面,然后按照如下路径选择将RTL8192CU驱动编译为模块:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Wireless LAN (WLAN [=y])
-> Realtek wifi (REALTEK_WIFI [=m])
-> rtl8189ftv sdio wifi
-> rtl8188eus usb wifi
-> Realtek 8192C USB WiFi
配置结果如图1.2所示:

执行如下命令编译驱动模块:
make modules -j12
编译完成以后就会在rtl8192CU文件夹下8192cu.ko这个.ko文件,将8192cu.ko拷贝到开发板/lib/modules/4.1.15目录下。
重新配置过Linux内核,因此也需要使用新的zImage启动。
1.5WIIF驱动加载测试
将RTL8188CU模块插到开发板的USB HOST接口上,进入到目录lib/modules/4.1.15 中,输入如下命令加载8192cu.ko这个驱动模块:
depmod
modprobe 8192cu.ko //或者modprobe 8192cu
驱动加载后,输入“ifconfig -a”命令查看是否存在网卡是否存在(一般是wlan0),有wlan0则说明驱动加载成功了。
2.RTL8188CU联网测试
2.1配置WIFI网络
先在开发板根文件系统的/etc目录下创建一个名为“wpa_supplicant.conf”的配置文件,此文件用于配置要连接的 WIFI 热点以及WIFI密码。
例子:WiFi名称:TWDZ WiFi密码:tw12345678
wpa_supplicant.conf 文件内容如下所示:
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
ssid="TWDZ"
psk="tw12345678"
}
2.2连接WIFI
准备好以后就可以使用 wpa_supplicant 工具让 RTL8188 USB WIFI 连接到热点上,输入如下命令:
cd /etc
wpa_supplicant -D wext -B -i wlan0 -c wpa_supplicant.conf
获取 IP 地址命令:
udhcpc -i wlan0
如图2.2所示,wlan0 的 IP 地址为192.168.43.94

在开发板上使用 wlan0 来 ping 一下百度网站,输入如下命令:
ping -I 192.168.43.94 www.baidu.com

3331

被折叠的 条评论
为什么被折叠?



