wifi调试 经典博客和个人开发经验
来源:互联网 发布:主力资金指标源码有图 编辑:程序博客网 时间:2024/05/22 06:44
http://blog.chinaunix.net/u2/66024/showart_1933469.html
上面网站分析wpa_supplicant
http://osdir.com/ml/android-platform/2009-03/msg00965.html
关于 wifi问题的处理
wifi porting文件和目录
porting wifi主要分为两个部分,源码的修改和配置文件的修改,其中配置文件的修改包括源码未编译时配置文件的修改和源码编译后的配置文件修改,下面就这两部分分析:
A:android未编译时的配置文件修改和源码修改
1:/android-cupcake/build/target/board/generic/ BoardConfig.mk
确定是否存在HAVE_CUSTOM_WIFI_DRIVER_2 := true,如果没有则添加该选项
/android-eclair/external/wpa_supplicant/.config.h
确定.config.h中,是否存在以下3个选项
CONFIG_WIRELESS_EXTENSION=y
CONFIG_CTRL_IFACE=y
CONFIG_DRIVER_WEXT=y
以上是支持wifi驱动的选项!
2:修改的源码文件
2.1/android-cupcake/system/wlan/ti/sta_dk_4_0_4_32/CUDK/tiwlan_loader/tiwlan_loader.c
这个文件修改的tiwlan_loader服务,这个服务在android1.5中需要返回成功,表示加载wifi的固件到eeprom中成功,而实际内核在加载wifi驱动的时候,同时加载了固件(即提供的bin文件)。但是在android2.0中,这个服务不是必须的!在编译tiwlan_loader.c时需要/android-cupcake/system/wlan/ti/sta_dk_4_0_4_32/CUDK/UtilityAdapter编译出来的库。
2.2/android-cupcake/hardware/libhardware_legacy/wifi/wifi.c
这个是porting wifi驱动的最重要的文件,其中包括驱动加载,连接wpa_supplicant服务都是在wifi.c中完成。所以要修改驱动加载的网络接口名和相关的宏。
2.3/android-cupcake/frameworks/base/wifi/java/android/net/wifi
这个目录下是wifi中相关的java代码,其中修改的WifiStateTracker.java,这个主要修改dhcp时,获取动态ip地址的网络接口名。
2.4 external/wpa_supplicant/wpa_ctrl.c
这个主要修改wpa_supplicatn连接时的权限,wpa_supplicant服务启动的时候客户端和服务端通过unix socket通信,JAVA UI 界面是通过此socket文件与驱动联系,此服务生成的socket在/data/system/wpa_supplicant/目录下,如果涉及到权限问题,则需要修改 external/wpa_supplicant/wpa_ctrl.c中相关的目录的权限
2.5 frameworks/base/services/java/com/android/server/WifiService.java
这个在android1.5中,上传到BSSID,ISSID,java代码无法识别。在android2.0中无需修改。
B:android编译后的相关配置文件的修改
3.1/system/etc/wifi/wpa_supplicant.conf
看目录下是否存在该文件,如果不存在,则添加;并且添加wpa_supplicant服务socket的服务接口,如下所示:
ctrl_interface=/data/system/wpa_supplicant//默认的mlan0无线网络接口的目录
update_config=1 //这个可能是更新的配置,但不确认
3.2/system/etc/dhcpcd/dhcpcd.conf
看是否存在改文件,不存在则添加,并且修改无线网络接口的网络名字,如android默认的是tiwlan0 ,而我的无线网络接口是mlan0,则把interface 后面的接口改成mlan0
3.3 init.rc
service wpa_supplicant /system/bin/wpa_supplicant -imlan0 -c/system/etc/wifi/wpa_supplicant.conf
disable
oneshot
service dhcpcd /system/bin/dhcpcd -d -f /system/etc/dhcpcd/dhcpcd.conf mlan0
disable
oneshot
以上是添加在wifi的服务。
mkdir /data/misc/wifi 0777 wifi wifi
mkdir /data/misc/wifi/sockets 0777 wifi wifi
mkdir /data/system/wpa_supplicant 0777 wifi wifi
mkdir /data/misc/dhcp 0777 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
新建以上的目录。
如果你不的平台不出稀奇古怪的问题的话,现在你已经可以ping通你想用的ip地址咯!
good luck
- wifi调试 经典博客和个人开发经验
- 搭建个人网站、个人博客经验
- framework开发个人经验
- SD 调试(个人经验存档)
- 关于android游戏开发的一些基础和个人经验
- 个人博客开发总结
- 开发一个个人博客
- Django个人博客开发
- 个人博客开发笔记
- 个人博客开发流程
- 前端开发调试经验
- Android WiFi开发 博客链接
- iOS 开发经典博客
- FuthorclySLM 从今天起正式开通CSDN的博客,发表一些个人的题解和经验
- django 个人博客系统开发 - 最新文章获取和分页
- django 个人博客系统开发 - 文章页面和自定义过滤器
- 跑步节奏音乐匹配Android项目开发和调试经验
- Android开发wifi调试取代数据线调试
- 关于C#操作word 报错的解决方法
- 弹出网页窗口全攻略(html/hta)
- 工作原则
- js提交表单及js表单验证
- Qt出现“undefined reference to vtable for”原因总结 (转my gallery)
- wifi调试 经典博客和个人开发经验
- 浅谈unique列上插入重复值的MySQL解决方案
- Ext 技术手册
- 怎样下载jrockit
- dataGrid或gridView獲取行號
- MM自动记帐相关表 -T156W
- javascript函数库
- 如何计算MS SQL语句执行的时间还有c#
- FormIECache.Designer.cs