wifi softap(hotspot) porting

本文档详细介绍了在Android平台上进行WiFi SoftAP(热点)移植的步骤,包括编译WiFi驱动、配置固件路径、放置配置文件、修改宏定义以及调整内核配置等关键环节。内容涉及firmware下载路径、Android.mk文件、wpa_supplicant.conf和dhcpcd.conf配置、宏定义的修改以及内核配置的更新,旨在确保WiFi驱动和SoftAP功能的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

wifi softap(hotspot) porting


声明:该文件为本人原创,如转载修改及使用其中任何内容,请注明出处及原作者。

Author:lanbo(高兆成)

E-mail:lanbo_g@126.com

如有任何疑问可留言或E-mail


1、编译wifi driver

修改firmware下载路径,或确认firmware路径

A:有些wifi driver下载firmware是在driver中直接到指定位置读取firmware并通过SDIO(如SDIO接口)下到wifi芯片,这种方式比较简单,但需要知道firmware的路径,以便在向根文件系统存放firmware与该路径一致。如broadcomdriver

   set download dir: dhd/sys/dhd_linux.c fun:dhd_attach

   strcpy(fw_path, "/system/etc/firmware/fw.bin");

   strcpy(nv_path, "/system/etc/firmware/nvram.txt");

    注:download实现的地方:dhd/sys/dhd_linux.cfun:dhd_bus_start

生成dhd.ko

B:也有一些wifi driver在下载firmware前通过request_firmware创建属性文件和uevent socket,并发送firmware add uevent,在android上层/system/core/init.c中再创建一个socket用于接收kernel的uevent并将firmware写入属性文件,driver再将firmware传给wifi芯片。(相对来讲这一种方式比较正式,个人认为。具体download firmware如何实现在其它文件中会给出)

注该方法download firmware的firmware路径是固定的“/etc/firmware/”在/system/core/init/devices.c中有定义

 

2、将wifi driver firmware config档放入根文件系统指定位置

这些编译时源文件目录在andorid可放任何处,但最好不要乱放以免打乱上层文件存放结构,目前我存放的路径为/hardware/平台名称/wlan/broadcom/

/wlan/Broadcom/Android.mk内容

ifeq ($(BOARD_WLAN_DEVICE),bcm4329)

    include $(callall-subdir-makefiles)

endif

 

/wlan/Broadcom/firmware/Android.mk 文件内容,作用是将firmware档sta.xbv(/wlan/Broadcom/firmware/sta.xbv)放到/system/etc/firmware目录下的子目录unifi-sdio-0中去。

最终firmware路径为:/system/etc/firmware/module_name/sta.xbv

LOCAL_PATH := $(call my-dir)

local_target_dir := $(TARGET_OUT_ETC)/firmware

 

########################

 

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := sta.xbv

LOCAL_MODULE_TAGS := user

LOCAL_MODULE_CLASS := ETC

LOCAL_MODULE_PATH := $(local_target_dir)/module_name

LOCAL_SRC_FILES := $(LOCAL_MODULE)

include $(BUILD_PREBUILT)

 

########################

源文件目录结构为:

/hardware/平台名称/wlan/芯片名/Android.mk

/hardware/平台名称/wlan/芯片名/firmware/Android.mk

/hardware/平台名称/wlan/芯片名/firmware/*.bin

/hardware/平台名称/wlan/芯片名/config/Android.mk

/hardware/平台名称/wlan/芯片名/config/android_dhcpcd.conf

/hardware/平台名称/wlan/芯片名/config/wpa_supplicant.conf

/hardware/平台名称/wlan/芯片名/module/Android.mk

/hardware/平台名称/wlan/芯片名/module/*.ko

有的公司需要一些tools使用:

/hardware/平台名称/wlan/芯片名/tools/ Android.mk

/hardware/平台名称/wlan/芯片名/tools/*

目的目录路径:

其它config文件及driver模块用同样的方式存放

firmware:/system/etc/firmware

module:/system/lib/modules

wap_supplicant.conf:/system/etc/wifi

dhcpcd.conf:/system/etc/dhcpcd

 

因wpa

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值