深圳 手机网站,淄博做网站58同城,做网站的域名,网站建设深圳亿联时代去年移植了2.2。最近又刚刚移植了4.0.3。使用的是broadcom的bcm4329网卡。现把移植经历分享一下 1.该android.hardware.wifi.xml复制到out目录下 在相应的.mk文件中。添加 PRODUCT_COPY_FILES \ frameworks/base/data/etc/android.hardware.wifi.xml:$(PRODUCT_OUT)system/etc… 去年移植了2.2。最近又刚刚移植了4.0.3。使用的是broadcom的bcm4329网卡。现把移植经历分享一下 1.该android.hardware.wifi.xml复制到out目录下 在相应的.mk文件中。添加 PRODUCT_COPY_FILES \ frameworks/base/data/etc/android.hardware.wifi.xml:$(PRODUCT_OUT)system/etc/permissions/android.hardware.wifi.xml 这样settings中就有了wifi设置 2.external/wpa_supplicant/.config 确保存在以下支持wifi的2项 CONFIG_CTRL_IFACEy CONFIG_DRIVER_WEXTy 3.配置device/**/**相应工程的BoardConfig.mk 确保有如下两项 WPA_SUPPLICANT_VERSION : VER_0_8_X //使用wpa_supplicant版本8编译 BOARD_WPA_SUPPLICANT_PRIVATE_LIB : lib_driver_cmd_wext BOARD_WPA_SUPPLICANT_DRIVER : WEXT //BCM4329所使用的driver BOARD_WLAN_DEVICE : bcm4329 ifeq($(BOARD_WLAN_DEVICE),bcm4329) WIFI_DRIVER_MODULE_NAME :dhd //在wifi.c中会用到 WIFI_DRIVER_MODULE_PATH : /system/etc/wifi/dhd.ko //在wifi.c中会用到 #endif 4.external/wpa_supplicant_8/wpa_supplicant.conf配置 标准unix socket通信方式配置 ctrl_interfaceDIR/data/system/wpa_supplicant GROUPwifi //注意要跟wifi.c中的IFACE_DIR一致 update_config1 ap_scan1 //表示自动扫描 android私有socket方式配置 ctrl_interfaceeth0 update_config1 ap_scan1 此处我使用android私有socket配置.后面的所有配置都会以此配置。编译之后就会在out目录下生成/system/etc/wifi/wpa_supplicant.conf文件。 5.wifi.c配置 仔细浏览wifi.c文件发现如下代码 /*if (access(IFACE_DIR, F_OK) 0) { snprintf(ifname, sizeof(ifname), %s/%s, IFACE_DIR, iface); //此项情况表示使用标准UNIX socket通信方式。如果wpa_supplicant配置的unix方式就要走这里。 } else*/ { strlcpy(ifname, iface, sizeof(ifname)); //此处表示使用android私有socket。如果wpa_supplicant配置android socket就要走这里。我注释掉了if的内容。 } ensure_config_file_exists会复制/system/etc/wifi/wpa_supplicant.conf到/data/misc/wifi/wpa_supplicant.conf。注意检查此处的wpa_supplicant.conf是不是使用的eth0. 6.init.rc配置 mkdir /system/etc/wifi 0770 wifi wifi chmod 0770 /system/etc/wifi chmod 0660 /system/etc/wifi/wpa_supplicant.conf chown wifi wifi /system/etc/wifi/wpa_supplicant.conf #wpa_supplicant control socket for android wifi.c (android private socket) mkdir /data/misc/wifi 0770 wifi wifi mkdir /data/misc/wifi/sockets 0770 wifi wifi chmod 0770 /data/misc/wifi chmod 0660 /data/misc/wifi/wpa_supplicant.conf chown wifi wifi /data/misc/wifi chown wifi wifi /data/misc/wifi/wpa_supplicant.conf #添加wpa_supplicant,dhcp服务 service wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/misc/wifi/wpa_supplicant.conf class main socket wpa_eth0 dgram 0660 wifi wifi disabled oneshot service dhcpcd_eth0 /system/bin/dhcpcd -BKL -d eth0 class main disabled Oneshot 在dhcp_utils.c的dhcp_do_request中。snprintf(daemon_cmd, sizeof(daemon_cmd), %s_%s:%s, DAEMON_NAME, daemon_suffix, interface); 可以看到启动daemon的命令是dhcpd_eth0 7.system.prop设置 设置wifi接口名为eth0,添加如下内容 # WiFi Interface wifi.interfaceeth0 //在wifi.c中会用到。property_get会取该值 8.其他 wpa_supplicant调试 #wpa_supplicant -dd -Dwext -ieth0 -c /data/misc/wifi/wpa_supplicant.conf wpa_cli调式 #wpa_cli -ieth0 #scan_results dhcp调试 dhcpcd -f /system/etc/dhcpcd/dhcpcd.conf -d eth0 查看firmware是否download #netcfg adb操作 adb devices //查看设备是否连上 adb remount //解决权限不足问题 adb push d:/dhd.ko /system/ 9.打印wpa_supplicant消息 external/wpa_supplicant_6/wpa_supplicant/src/utils/Wpa_debug.c中作如下修改 1)#ifdef CONFIG_ANDROID_LOG int wpa_debug_level MSG_DEBUG;#else ..... 2)android_printf函数中修改levelwpa_debug_level为MSG_DEBUG 参考文章http://blog.linuxconsulting.ro/2010/04/porting-wifi-drivers-to-android.html SoftAP:http://omapedia.org/wiki/Porting_WLAN_SoftAP_to_Android http://processors.wiki.ti.com/index.php/TI-Android-GingerBread-2.3.4-DevKit-2.1_PortingGuides#Introduction_2 product_dir/device/samsung/crespo 转载于:https://www.cnblogs.com/chengliu/archive/2012/02/17/3636426.html