本项目使用的外置wifi dongle,用于参数配置,要求热插拔,
再之前的海思/AR9201平台下是用udev规则启一个start_external_wifi_ap.sh的脚本,在脚本里面启做状态检测,参数配置后,起hostapd/udhcpd,
但是NT9832X平台下,依据此思路实现,手动执行脚本,WIFI AP 正常.
但是用udev规则起该脚本,WIFI AP不能正常使用.
经分析,udev规则能正常作用,start_external_wifi_ap.sh脚本有执行,
但是当执行hostapd后,该可执行文件并没有执行,在hostapd的main函数中加log,没有跑.
经过很多时序调整,代码分析,selinux分析都没有找到方法.原因未知.
暂时解决方法:1.本地起rcS里面起一个脚本,一直监听本地的某个文件是否存在,如果存在,则起startt_external_wifi_ap.sh 2.udev规则中起另一个脚本,在该脚本中touch 机器本地一个文件.作为前一个脚本的检测flag.也作为wifi 模块插入的flag.
3.在start_external_wifi_ap.sh的起hostpad之前,将该touch的文件rm掉.以达到循环检测下一次热插拔目录.