在arm Cortex-A9开发板移植rtl8821au无线网卡并实现与外网通信
来源:互联网 发布:典型的贪心法算法 编辑:程序博客网 时间:2024/05/11 15:35
开发板:Xilinx ZC702
嵌入式系统:linux4.4
交叉编译器:arm-xilinx-linux-gnueabi-gcc
WIFi工具:wireless_tools.30.rtl
驱动版本:rtl8821AU_WiFi_linux_v5.2.6.2_23547.20170814_COEX20170206-6760
本文中所用的rtl8821au无线网卡实为蓝牙无线网卡二合一设备,此处只当做无线网卡使用。移植所使用的工具为iwlist、iwconfig等,这是以前WiFi模块中使用的旧工具,现在已经推出了新的基于nl80211的用于无线设备的CLI配置实用程序iw,建议以后的WiFi移植使用iw和nl80211以替换iwlist和iwconfig。
rtl8821au无线网卡的移植包括驱动移植和工具移植两部分,下面分别介绍
(一)驱动移植
1、修改源码根目录下的Makefile:
CONFIG_PLATFORM_I386_PC = n CONFIG_PLATFORM_ANDROID_X86 = n CONFIG_PLATFORM_ARM_S3C2K4 = n CONFIG_PLATFORM_ARM_PXA2XX = n CONFIG_PLATFORM_ARM_S3C6K4 = y将CONFIG_PLATFORM_I386_PC改为n, 将CONFIG_PLATFORM_ARM_S3C6K4改为y。
2、之后找到ifeq ($(CONFIG_PLATFORM_ARM_S3C6K4), y)这行代码,修改S3C6K4编译环境:
ifeq ($(CONFIG_PLATFORM_ARM_S3C6K4), y)EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIANARCH := armCROSS_COMPILE := arm-xilinx-linux-gnueabi-KVER := 4.4.0KSRC ?= /xilinx/wifi/linux-xcomm_zynqendif此处的KSRC是你嵌入式平台所用Linux系统的源码路径。KVER为嵌入式Linux版本。CROSS_COMPILE为交叉编译链。
3、这些工作完成之后直接在当前目录make,没有错误的话会得的8821au.ko文件。将文件拷贝到开发板,启动后,insmod 8821au.ko命令加载。
此时可以cat /proc/net/wireless文件查看是否有wlan0信息,如下所示,如果能看到wlan0则说明驱动安装成功。
Inter-| sta-| Quality | Discarded packets | Missed | WE face | tus | link level noise | nwid crypt frag retry misc | beacon | 22 wlan0: 0000 0. 0. 0. 0 0 0 0 0 0
(二)工具移植
1、进入wireless_tools.30.rtl,修改Makefile,如下所示:
2、make,之后将生成iwlist、iwconfig、iwpriv等工具以及iwlib.so,将iwlist、iwconfig等工具拷贝到目标板/usr/bin目录,将iwlib.so库拷贝到目标板/lib或/usr/lib库。
(三)工具使用方法
1、分配IP: ifconfig wlan0 192.168.43.19
2、启动无线网卡: ifconfig wlan0 up
3、扫描附近WiFi热点: iwlist wlan0 scan
4、连接WiFi: iwconfig wlan0 essid "zj"
这是无密码WiFi的连接命令,这里连接了一个热点名为zj的WiFi,如果前面步骤没有问题到这一步应该就可以连接成功。
但如果只做到这一步的话,在使用时就会发现板子WiFi只可以连接外部热点,却无法ping通百度,无论怎么设置网关和IP都无济于事。这时需要移植udhcpc工具以实现动态分配IP(参考http://www.yixiangzhan.com/detail/zJBnkAEJ.html)。
(四)移植udhcpc
(1)将busybox目录下的examples/udhcp/下的simple.script文件重命名为default.script,并将文件拷贝到开发板/usr/share/udhcpc下,修改权限。
(2)执行动态分配IP地址: udhcpc -i wlan0
执行这步之后系统会自动分配IP地址,这时再ping百度即可ping通:
- 在arm Cortex-A9开发板移植rtl8821au无线网卡并实现与外网通信
- 基于Exynos4412 cortex A9开发板的无线网卡驱动移植过程
- 四核高级《ARM Cortex-A9》UT-Exynos4412开发板
- 基于ARM Cortex A9核心Rayeager PX2开发板电路图
- 三星S5P4418开发板 (ARM Cortex-A9架构)
- ftp(vsftp) 在Cortex-A9 ARM CPU s5p4418上的移植
- ARM Cortex-A9 MPCore
- ARM Cortex-A9 比较
- ARM Cortex A9
- 无线网卡在i.MX27开发板上的移植
- 专注ARM嵌入式开发,S5P4418核心板ARM Cortex-A9架构
- ARM Cortex-A9双核 S5PV310开发板 多点电容触摸屏 平板电脑开发板
- USB无线网卡STA模式移植到A9
- ARM飞思卡尔I.MX6开发板I.MX6Q核心板 IMX6 cortex A9双网口
- S5PV310 三星ARM CORTEX-A9双核开发板 Origen Board
- Samsung四核(ARM Cortex-A9)UT-Exynos4412开发板
- 三星S5P4418核心板,ARM Cortex-A9架构
- arm-linux 移植无线网卡RT3070驱动
- 服务启动方式三-使用bindService方式启动服务
- java中的ajax的二级联动和验证用户名是否存在
- Win10自带微软输入法的全拼双拼一键切换
- 单向链表翻转
- vector 离散化
- 在arm Cortex-A9开发板移植rtl8821au无线网卡并实现与外网通信
- android 绘图之surfaceview
- hdu4347-The Closest M Points
- LinuxStudyNote(20)-Linux常用命令(2)-文件处理命令(15)-文件显示(6)-tail显示文件后几行,文件的动态显示
- (四)自定义场景类中加入图片作为sprite
- java删除文件夹下所有文件
- Leetcode之Rotate Image 问题
- Windows2012 R2安装wamp配置多域名
- 51nod 1256 乘法逆元