项目场景:
在眺望电子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
今天的文章NXPi.MX6ULL 移植RTL8188 WiFi模块分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/67246.html