Exynos4412 Android4.4 平台 WiFi 功能移植 第四篇
来源:互联网 发布:php后端开发教程 编辑:程序博客网 时间:2024/05/29 16:33
HAL层移植
HAL层移植相对简单,MT6620 采用的是Android的WiFi架构,没有经过修改,按照MTK的指导文档移植即可,这里需要注意的是wifi.c文件和init.connectivity.rc文件.
1.5.1 wifi.c文件
wifi.c文件的路径
iTop4412_KK4.4/hardware/libhardware_legacy/wifi.c
该文件会与wpa_supplicnat服务进行通信,是Android进行WIFi控制的HAL层的实现,根据logcat 输出信息判断WiFi 工作流程哪里出了问题,笔者修改了wifi.c文件的宏定义:
static charprimary_iface[PROPERTY_VALUE_MAX];
// TODO: use new ANDROID_SOCKETmechanism, once support for multiple
// sockets is in
//dg cancel formt6620
//#defineWIFI_DRIVER_MODULE_NAME1 "rtl8188eu"
//#defineWIFI_DRIVER_MODULE_PATH1 "/system/lib/modules/rtl8188eu.ko"
//#defineWIFI_DRIVER_MODULE_NAME2 "rtl8192cu"
//#defineWIFI_DRIVER_MODULE_PATH2 "/system/lib/modules/rtl8192cu.ko"
//#defineWIFI_DRIVER_MODULE_NAME3 "rt5370sta"
//#defineWIFI_DRIVER_MODULE_PATH3 "/system/lib/modules/rt5370sta.ko"
由于我们在 init.connectivity.rc 里面加载了 WiFi驱动库及运行 wmt_launcher服务,所以不再需要wif.c加载驱动了,直接注释掉相关宏即可.
wifi.c的 int wifi_load_driver() 函数会设置wifi的相关属性:
staticconst char DRIVER_PROP_NAME[] ="wlan.driver.status";
property_set(DRIVER_PROP_NAME,"ok");
设置属性后会触发WiFi上电操作,因为我们在init.connectivity.rc设置了属性触发:
#monitor property and power on/off wlan
onproperty:wlan.driver.status=ok
write /dev/wmtWifi "1"
onproperty:wlan.driver.status=unloaded
write /dev/wmtWifi "0"
wifi.c 会启动wpa_suplicant服务:
intwifi_start_supplicant(int p2p_supported)
该函数会查找wpa_supplicant服务是否已经运行,如没有运行会启动该服务.
1.5.2 init.connectivity.rc文件
init.connectivity.rc 原始文件有MTK提供:
iTop4412_KK4.4/hardware/mediatek/config/combo_mt66xx/init.combo_mt66xx.rc
原始文件名称为init.combo_mt66xx.rc,拷贝到ramdisk的root目录下面名称变更为init.connectivity.rc文件 。
我们在该文件增加了加载驱动模块库操作,运行wmt_lanucher服务操作,另外需要注意文件原有的创建wifi相关目录操作,及修改权限,变更拥有者,这些command非常的重要,比如:
mkdir /data/misc/wifi 0770 wifi wifi
mkdir /data/misc/wifi/sockets0770 wifi wifi
mkdir /data/misc/wpa_supplicant 0770 wifi wifi
mkdir /data/misc/p2p_supplicant 0770 wifi wifi
chown wifi wifi /data/misc/wifi/wpa_supplicant.conf
chown wifi wifi /data/misc/wifi/p2p_supplicant.conf
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
chmod 0660 /data/misc/wifi/p2p_supplicant.conf
wpa_supplicant会在/data/misc/wifi/sockets目录下面创建wlan0文件节点用于与外部程序wpa_cli或者Android层服务进行通信.
这样在Android4.4的Setting里面打开WiFi,就可以扫描到热点,连接互联网了,启动WiFi之前注意关闭有线连接,否则会存在网络访问冲突.
注意: Android系统第一次运行是没有开启WiFi功能的,如果您的开发板上面有WiFi模块,且手动开启了Android Setting界面的 WiFi功能 ,那么请不要把WiFi模块从底板上面拆除,否则Android启动过程中因为找不到WiFi模块 ,会频繁 打印出调试信息,导致Android启动失败 ,如果确实产生了这个问题,请重新烧写Android系统此问题即可解决.
总结:
以上作为 iTOP4412开发平台移植 WiFi功能的过程总结,即将发布的Android4.4的Kernel及Android层代码均包含Porting后的代码,也就是Wifi正常工作的代码,方便大家学习和产品研发.
如果您在实际的项目中需要WiFi功能,请参考官方的原理图设计硬件,尽力使用相同的WiFi资源,比如WiFi使能配置引脚,WiFi中断配置引脚,WiFi 复位引脚,串口配置引脚等等,这样您只需要关注硬件部分,驱动使用我们移植好的即可,否则需要您修改WiFi引脚配置,进行必要的调试工作,增加自己的工作量。
MT6620 Android4.4 Porting Guid and drivers:
http://download.csdn.net/detail/yimiyangguang1314/8656149
- Exynos4412 Android4.4 平台 WiFi 功能移植 第四篇
- Exynos4412 Android4.4 平台 WiFi 功能移植 第二篇
- Exynos4412 Android4.4 平台 WiFi 功能移植 第三篇
- Exynos4412 Android4.4 平台 WiFi 功能移植 第一篇
- UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-4wifi功能调试
- UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-13串口功能调试
- 4412开发板UT-Exynos4412三星ARM四核旗舰开发平台android4.0GPS功能
- Android平台开发-WIFI function porting-WIFI功能移植
- Android平台开发-WIFI function porting-WIFI功能移植
- Android平台开发-WIFI function porting-WIFI功能移植
- Android平台开发-WIFI function porting-WIFI功能移植
- Android平台开发-WIFI function porting-WIFI功能移植
- Android平台开发-WIFI function porting-WIFI功能移植
- Android平台开发-WIFI function porting-WIFI功能移植
- Android平台开发-WIFI function porting-WIFI功能移植
- Android平台开发-WIFI function porting-WIFI功能移植
- Android平台开发-WIFI function porting-WIFI功能移植
- Android平台开发-WIFI function porting-WIFI功能移植
- Java面向对象
- iOS开发系列之五--让你的应用“动”起来
- Memcached的安装和使用
- 13.首页热门商品显示
- Hibernate调用存储过程
- Exynos4412 Android4.4 平台 WiFi 功能移植 第四篇
- iOS开发系列之六--打造自己的“美图秀秀”
- java之jdom解析xml(二)
- 黑马程序员之 --- 集合
- python常见数据结构
- 预处理程序
- Cordys BOP 4.3平台使用小经验—数据库连接管理、导出流程模型为XPDL
- Windows 远程登录 Linux 服务器
- Make it Anagram