关于Realtek RTL8188EU wifi移植要知道的
来源:互联网 发布:java调用数组方法 编辑:程序博客网 时间:2024/06/06 06:44
目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络。请记住重要的一点是,对无线网络的配置是全局性的,而非针对具体的接口。
wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动。请浏览wpa_supplicant网站获得它所支持的驱动列表。
另外,wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络,它可以让您连接到那些使用WPA的AP。wireless-tools支持几乎所有的无线网卡和驱动,
但它不能连接到那些只支持WPA的AP。
1. wireless tools工具安装
(1)tar zxvf wireless_tools.30.rtl.tar.gz
(2)cp wireless_tools.30.rtl <ANDROID_SDK>/external/
(3)cd <ANDROID_SDK>
(4)make iwconfig iwlist iwpriv 将生成的iwconfig、iwlist、iwpriv push到开发板/system/bin中
2. wpa_supplicant工具的交叉编译
一般的Linux版本里面包含wpa_supplicant和wpa_cli.
wpa_supplicant是一个开源项目,已经被移植到Linux,Windows以及很多嵌入式系统上。它是WPA的应用层认证客户端,负责完成认证相关的登录、加密等工作。
wpa_supplicant是一个独立运行的守护进程,其核心是一个消息循环,在消息循环中处理WPA状态机、控制命令、驱动事件、配置信息等。
经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant 和 wpa_cli。
wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用 wpa_cli来搜索、设置、和连接网络。
Android使用一个修改版wpa_supplicant作为daemon来控制WIFI,它是一个安全中间件,代码位于external/wpa_supplicant,
为各种无线网卡提供统一的安全机制,wpa_supplicant是通过socket与hardware/libhardware_legacy/wifi/wifi.c通信
Wpa_supplicant作用:1、读取配置文件 2、初始化配置参数,驱动函数 3、让驱动scan当前所有的bssid 4、检查扫描的参数是否和用户设置的想否 5、如果相符,通知驱动进行权限 认证操作 6、连上AP
在init.amber3.rc里执行:wpa_supplicant /system/bin/wpa_supplicant -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf -B //后台运行
其中/system/bin/wpa_supplicant :是 wpa_supplicant可执行程序的path;
3.load wifi driver
首先需要讲解一下,在android4.0之后,wifi的工作方式基本都采用的是比较标准的nl80211方式,以前的wext方式现在使用的已经很少了。
wext:supplicant通过wext直接给wifi driver下命令,即不通过kernel,所以一般以wext工作的driver是不需要load cfg80211.ko的,这个cfg80211.ko就是kernel里面的wireless部分,主要对接supplicant和driver的。
nl80211:supplicant的命令以nl80211的方式下给kernel,经过kernel再发送给driver,这样子做的好处是supplicant和driver之间的通讯方式更加标准话,是以后的主流方式,我后面讲的driver都是以这种方式工作的。
既然是nl80211,那么首先需要build kernel,得到cfg80211.ko,然后用build过的kernel来build driver,得到具体的driver ko,这里面为了区分具体型号的ko,我把名字假设为8188eu.ko。
拿到两个ko之后load driver的准备工作就做完了,现在把两个ko copy到平台的/system/lib/modules/路径下,这个是android ko的存放路径。
4.本人在调试wifi中遇到的一些问题
(1) 完全依据Realtek给出的用户手册中进行移植时,会出现错误,原因是没有加载cfg80211.ko,这是因为手册中用wifi_realtek.c文件但是这里面加载wifi只是加载了8818eu.ko,没有加载cfg80211.ko,其次用户手册中也未提及/rtl8188eu文件夹下要根据自己的系统更改Makefile的一些参数。
(2) 后来没有使用wifi_realtek.c文件而是使用了wifi.c文件,按照官方文档中提供的方法配置相关参数即顺利调通。
(3) 开始调试出现wifi打开两分钟后就自动关闭,wifi打开时,用lsmod可以看到8188eu.ko被加载,当WiFi断开后查看lsmod就自动卸载,于是怀疑可能是驱动加载的问题。又检查一遍参数设置,发现一些错误以后,重新烧写后发现wifi这次直接打不开,查看打印一直提示insmod 失败,后来直接让驱动内部的insmod直接返回0,进行手动加载,但是直接手动加载也是提示init_module失败,后来就试着先加载cfg80211.ko,接着再加载8188eu.ko,wifi就正常运行。于是直接在init.amber3.rc中加载两者即可,但是有时关闭wifi后打不开wifi,后来才研究了下wifi.c 发现wifi.c里面函数自动加载了这两项,才调试ok!
下面是部分命令调试wifi:# ifconfig wlan0 up
# busybox ifconfig
iwconfig
cat /proc/net/dev
1. wpa_supplicant -Dnl80211 -iwlan0 -c /data/misc/wifi/wpa_supplicant.conf -B
2. wpa_cli -p /wlan0 scan
3. wpa_cli -p /wlan0 remove_network 0
4. wpa_cli -p /wlan0 ap_scan 1
- 关于Realtek RTL8188EU wifi移植要知道的
- Android wifi驱动的移植 realtek 8188
- wifi(rtl8188eu)移植及调试笔记
- Ubuntu下安装realtek的rtl8188eu网卡芯片驱动
- RTL8188EU 移植
- Tcar:智能车之基于rtl8188eu驱动的wifi模块
- WIFI--REALTEK RTL8189ES信息
- 树莓派 rtl8188eu 芯片wifi驱动
- rtl8188eu无线网卡驱动移植
- zz-rtl8188eu的linux-usb-wifi调试及驱动编译150210
- 关于Android下WIFI移植的一些指导文章
- UCOS + LWIP + USB WIFI(rtl8188eu) <一>
- UCOS + LWIP + USB WIFI(rtl8188eu) <二>
- UCOS + LWIP + USB WIFI(rtl8188eu) <三>
- Android的WIFI移植
- wifi移植的学习
- wifi移植的学习
- wifi移植的学习 .
- 《Flask Web Development》学习笔记---chapter5 Database
- PHP Amazon S3 upload/download object
- 朱晶晶-六步制定好企业移动化战略
- jQuery $.post $.ajax用法
- 整数相除优化
- 关于Realtek RTL8188EU wifi移植要知道的
- C语言中使用大括号与给函数命名的正确方法(转载)
- 大牛初步之ORACLE服务端与客户端
- Java线程中run和start方法的区别
- acm-poj1050(动态规划)
- PHP文件包含命令(include,require)及漏洞利用
- HDU 1171 Big Event in HDU(母函数||DP)
- 关于HTML5在线播放x.264编码的mp4格式文件的长时间缓冲问题
- Libsvm使用说明