NXPi.MX6ULL 移植RTL8188 WiFi模块

NXPi.MX6ULL 移植RTL8188 WiFi模块项目场景:在眺望电子TW-AC6G-EVM开发板上移植python3.9.5:编译环境及开发包:主机:ubuntu18.04交叉编译器:arm-linux-gnueabihf-gccQT5.12.8:qt-everyw

项目场景:

在眺望电子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所示红色框图所包含的内容并删除。
图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"

Kconfig

添加以上内容,WIFI驱动的配置界面才会出现在 Linux内核配置界面上。

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

obj-y += realtek/

Makefile

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所示:
图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
图2.2

在开发板上使用 wlan0 来 ping 一下百度网站,输入如下命令:

ping -I 192.168.43.94 www.baidu.com

图2.3  ping百度网站成功

今天的文章NXPi.MX6ULL 移植RTL8188 WiFi模块分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/67246.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注