[RK3288][Android6.0] WiFi的wifi_bt_common.mk文件说明
来源:互联网 发布:mpp数据库开源 编辑:程序博客网 时间:2024/06/04 17:47
Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
发现这个文件里面的定义对代码流程研究有影响,所以做一个说明。
wifi_bt_common.mk:
ifneq ($(strip $(TARGET_BOARD_PLATFORM)), sofia3gr)BOARD_CONNECTIVITY_VENDOR := BroadcomBOARD_CONNECTIVITY_MODULE := ap6xxxendififeq ($(strip $(BOARD_CONNECTIVITY_VENDOR)), Broadcom)BOARD_WPA_SUPPLICANT_DRIVER := NL80211WPA_SUPPLICANT_VERSION := VER_0_8_XBOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhdBOARD_HOSTAPD_DRIVER := NL80211BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_bcmdhdBOARD_WLAN_DEVICE := bcmdhdWIFI_DRIVER_FW_PATH_PARAM := "/sys/module/bcmdhd/parameters/firmware_path"WIFI_DRIVER_FW_PATH_STA := "/system/etc/firmware/fw_bcm4329.bin"WIFI_DRIVER_FW_PATH_P2P := "/system/etc/firmware/fw_bcm4329_p2p.bin"WIFI_DRIVER_FW_PATH_AP := "/system/etc/firmware/fw_bcm4329_apsta.bin"endif
- BOARD_CONNECTIVITY_VENDOR := Broadcom
控制是否copy文件init.connectivity.rc
device/rockchip/common/device.mk
ifeq ($(filter MediaTek_mt7601 MediaTek RealTek Espressif, $(strip $(BOARD_CONNECTIVITY_VENDOR))), )PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/init.connectivity.rc:root/init.connectivity.rcendif
另外,使用它来控制使用哪个wifi.c文件,可以看到realtek有它自己的实现。
hardware/libhardware_legacy/wifi/Android.mk
ifeq ($(strip $(BOARD_CONNECTIVITY_VENDOR)), RealTek) LOCAL_SRC_FILES += ../realtek/wlan/libhardware_legacy/wifi/wifi_realtek.celse LOCAL_SRC_FILES += wifi/wifi.cendif
- BOARD_CONNECTIVITY_MODULE := ap6xxx
和BT以及NFC有关,这里不关注。
- WPA_SUPPLICANT_VERSION := VER_0_8_X
只有两个选择,VER_0_8_X和VER_2_1_DEVEL
external/wpa_supplicant_8/Android.mk
ifneq ($(filter VER_0_8_X VER_2_1_DEVEL,$(WPA_SUPPLICANT_VERSION)),)include $(LOCAL_PATH)/hostapd/Android.mk \ $(LOCAL_PATH)/wpa_supplicant/Android.mkendif
另外也控制使用哪个wpa接口,当wpa_supplicant存在的时候,libhardware_legacy下的接口例如wpa_ctrl_open()会被覆盖掉,
比如在开启wifi的时候会去connect supplicant,这时候会调用wpa_supplicant的wpa_ctrl_open().
hardware/libhardware_legacy/wifi/Android.mk
ifdef WPA_SUPPLICANT_VERSIONLOCAL_CFLAGS += -DLIBWPA_CLIENT_EXISTSLOCAL_SHARED_LIBRARIES += libwpa_clientendif
- BOARD_WPA_SUPPLICANT_DRIVER := NL80211
- BOARD_HOSTAPD_DRIVER := NL80211
用于控制是否对NL80211驱动的支持,wifi_bt_common.mk会覆盖external/wpa_supplicant_8/android.cfg里的配置。
external/wpa_supplicant_8/wpa_supplicant/Android.mk
ifneq ($(BOARD_WPA_SUPPLICANT_DRIVER),) CONFIG_DRIVER_$(BOARD_WPA_SUPPLICANT_DRIVER) := yendif
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_bcmdhd
用于控制使用的静态库
external/wpa_supplicant_8/wpa_supplicant/Android.mk
ifneq ($(BOARD_WPA_SUPPLICANT_PRIVATE_LIB),)LOCAL_STATIC_LIBRARIES += $(BOARD_WPA_SUPPLICANT_PRIVATE_LIB)endif
- BOARD_WLAN_DEVICE := bcmdhd
这个宏在前面的文章已经提到了,是用来控制WiFi使用哪个Vendor的HAL,参考WiFi的HAL层加载问题
- WIFI_DRIVER_FW_PATH_PARAM := “/sys/module/bcmdhd/parameters/firmware_path”
- WIFI_DRIVER_FW_PATH_STA := “/system/etc/firmware/fw_bcm4329.bin”
- WIFI_DRIVER_FW_PATH_P2P := “/system/etc/firmware/fw_bcm4329_p2p.bin”
- WIFI_DRIVER_FW_PATH_AP := “/system/etc/firmware/fw_bcm4329_apsta.bin”
这几个参数是没使用了,因为开机的时候kernel driver已经默认加载了firware以及nvram文件,对应的文件在
external/wlan_loader/firmware下
- [RK3288][Android6.0] WiFi的wifi_bt_common.mk文件说明
- [RK3288][Android6.0] WiFi的dts配置说明(AP6335)
- [RK3288][Android6.0] WiFi的Firmware和Nvram文件
- [RK3288][Android6.0] Wifi相关文件及类整理
- RK3288[Android6.0] Wifi相关文件及类整理
- [RK3288][Android6.0] WiFi的驱动初始化过程小结
- [RK3288][Android6.0] WiFi的HAL层加载问题
- [RK3288][Android6.0] WiFi的配置文件wpa_supplicant.conf
- [RK3288][Android6.0] WiFi之Framework的socket(客户端)
- [RK3288][Android6.0] WiFi之wpa_supplicant的socket(服务端)
- [RK3288][Android6.0] WiFi之无线网络配置的保存过程
- [RK3288][Android6.0] WiFi之无线网络配置的断开过程
- [RK3288][Android6.0] WiFi之无线网络配置的关闭过程
- [RK3288][Android6.0] WiFi之与ConnectivityService的交互
- [RK3288][Android6.0] WiFi之NetworkFactory形成的评分机制
- [RK3288][Android6.0] WiFi之NetworkAgent对评分的更新
- [RK3288][Android6.0] WiFi之WifiWatchdogStateMachine
- [RK3288][Android6.0] WIFI接入过程的加密和认证方式小结
- 理论---Timer
- JDK1.8的String类
- 追赶百度阿里,腾讯开放AI平台【智库2861】
- maven安装及验证
- Android之adb2原理分析_reprint
- [RK3288][Android6.0] WiFi的wifi_bt_common.mk文件说明
- 简单排序算法时间空间复杂度分析及应用(7)-希尔排序
- Control character in cookie value, consider BASE64 encoding your value , java操作cookie遇到中文会报错的解决方案
- 无值和 NULL 值做出选择很简单
- SpringBoot打成war包
- socket服务器发送大数据,客户端循环接收
- 前端之页面布局
- Android Studio Error:Connection timed out: connect.解决方案
- 4、broker、consumer、producer主要配置