mtk 无线配置文件生效过程
openwrt 下无线接口的配置文件位于 /etc/config/wirless 中。
启动 /sbin/wifi 脚本后,生效过程如下:
(1)通过 uci2dat 工具生成所需要的 .dat文件 (例如: mt7603e.dat )
一般存放在 /etc/wireless/mt7603e 目录下。
(2)每当接口down 或 up 时,会调用所需的 .dat 文件来进行接口属性的配置。
其中定义了结构体
typedef struct __RT_CMD_INF_UP_DOWN {
IN int (*rt28xx_open)(VOID *net_dev);
IN int (*rt28xx_close)(VOID *net_dev);
} RT_CMD_INF_UP_DOWN;
在虚拟接口 up 或者 down 时来进行实例化。
__inline INT VIRTUAL_IF_UP(VOID *pAd)
{
RT_CMD_INF_UP_DOWN InfConf = { rt28xx_open, rt28xx_close };
if (RTMP_COM_IoctlHandle(pAd, NULL, CMD_RTPRIV_IOCTL_VIRTUAL_INF_UP,
0, &InfConf, 0) != NDIS_STATUS_SUCCESS)
return -1;
return 0;
}
__inline VOID VIRTUAL_IF_DOWN(VOID *pAd)
{
RT_CMD_INF_UP_DOWN InfConf = { rt28xx_open, rt28xx_close };
RTMP_COM_IoctlHandle(pAd, NULL, CMD_RTPRIV_IOCTL_VIRTUAL_INF_DOWN,
0, &InfConf, 0);
return;
}
然后查看 rt28xx_open 函数, 对芯片和其他初始化时
/* Chip & other init */
if (rt28xx_init(pAd, mac, hostname) == FALSE)
goto err;
包含了对 AP模式、 Client模式 以及 通常情况下的配置。
/* Initialize pAd->StaCfg, pAd->ApCfg, pAd->CommonCfg to manufacture default*/
if (rtmp_cfg_init(pAd, pHostName) != TRUE)
goto err5;
这些配置过程中就包含了读取dat数据的钩子函数:
RTMPPreReadParametersHook(pAd);
status = RTMPReadParametersHook(pAd);
if (status != NDIS_STATUS_SUCCESS)
{
DBGPRINT_ERR(("RTMPReadParametersHook failed, Status[=0x%08x]\n",status));
return FALSE;
}
在钩子(回调)函数RTMPReadParametersHook中真正实现读取配置文件的是函数
src = get_dev_profile(pAd);
只有读取到配置文件内容后,才能进行其他的操作,在钩子函数中。
(3)读取配置文件
static UCHAR *get_dev_profile(RTMP_ADAPTER *pAd)
{
UCHAR *src = NULL;
{
#ifdef CONFIG_AP_SUPPORT
// AP 模式下
IF_DEV_CONFIG_OPMODE_ON_AP(pAd)
{
src = AP_PROFILE_PATH;
}
#endif /* CONFIG_AP_SUPPORT */
}
return src;
}
AP_PROFILE_PATH 的宏定义如下:
#ifdef CONFIG_AP_SUPPORT
#ifdef RTMP_MAC_PCI
#if defined(CONFIG_SUPPORT_OPENWRT)
#define AP_PROFILE_PATH "/etc/wireless/mt7603e/mt7603e.dat"
#else
#define AP_PROFILE_PATH "/etc/Wireless/RT2860AP/RT2860AP.dat"
#endif #define AP_RTMP_FIRMWARE_FILE_NAME "/etc/Wireless/RT2860AP/RT2860AP.bin"
#endif
#endif
mtk 无线配置文件生效过程的更多相关文章
- 想要配置文件生效 需要通过添加到web.xml加载到内存中
想要配置文件生效 需要通过添加到web.xml加载到内存中
- MyBatis 源码分析 - 配置文件解析过程
* 本文速览 由于本篇文章篇幅比较大,所以这里拿出一节对本文进行快速概括.本篇文章对 MyBatis 配置文件中常用配置的解析过程进行了较为详细的介绍和分析,包括但不限于settings,typeAl ...
- 修改无线wifi网络名称。注册表。windows 无线属性 windows 无线 配置文件
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha windows 无线属性 windows 无线 配置文件 ======= 修改完成,之后 ...
- @Value和@PropertySource实现*.properties配置文件读取过程和实现原理
@Value和@PropertySource实现*.properties 配置文件读取过程和实现原理 1 配置使用步骤 (1)右击resource目录添加*.prooerties配置文件
- []转帖]linux 上修改了nginx.conf 怎么重新加载配置文件生效
linux 上修改了nginx.conf 怎么重新加载配置文件生效 https://www.cnblogs.com/zhuyeshen/ 步骤如下先利用/usr/local/nginx/sbin/ng ...
- 高通 mixer_paths.xml 音频配置文件 初始化过程
记录一下高通音频配置文件mixer_paths.xml初始化过程.参考代码基于Android O. hardware/qcom/audio/hal/audio_hw.c struct audio_mo ...
- linux 上修改了nginx.conf 怎么重新加载配置文件生效
步骤如下先利用/usr/local/nginx/sbin/nginx -t测试配置文件修改是否正常/usr/local/nginx/sbin/nginx -s reload重新加载 nginx 更改配 ...
- mysql配置文件生效顺序
安装完数据库 除了将my.cnf放在/etc/下放在其他地方也是可以的 cp /usr/share/mysql/my-default.cnf /etc/my.cnf 今天就看一下这些my.cnf是怎么 ...
- IDEA2018.3.5Tomcat output 中文乱码 修改配置文件生效的解决办法
首先,我也是尝试别人介绍的方法: IDEA Windows 环境 console 乱码问题 - intellij idea 15 控制台输出中文乱码问题解决办法 - liuhai的博客 - CSDN博 ...
随机推荐
- myEclipse全局搜索时报错
1.全局搜索时出错. 大家都知道,Eclipse可以用Ctrl+ H 进行全局搜索,但今天搜索时出现了一个问题: Problem Occurred ‘File Search’ has encounte ...
- 关于阿里云Centos服务器搭建Java网站不能访问的问题
首先阿里云提供的手册是没问题的 手工搭建 然后我在地址栏输入服务器地址之后总是提示无法访问! 输入命令 netstat -tunlp,80端口确实是在监听(这里不是8080,因为我在tomcat的配置 ...
- 关于Picasso load本地图片显示失败的探究
今天测试找过来说图片不显示了,查了一下是Picasso加载本地图片没有显示,奇怪了,以前都是这样写为什么现在不行了,难道是Picasso有bug了,怀着激动的心情断点跟进去发现 Picasso所有lo ...
- CentOS Linux release 7.3源码安装zabbix
CentOS Linux release 7.3安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 我去年用用centos6的环境搭建了一下 zabbix3.0 ...
- Port Forwarding in Windows
转自:http://woshub.com/port-forwarding-in-windows/ Since Windows XP there is a built-in ability in Mic ...
- 文件上传---form表单,ajax,jquery,以及iframe无刷新上传 (processData,contentType讲解)
服务端程序: import tornado.web import os IMG_LIST=[] class IndexHandler(tornado.web.RequestHandler): def ...
- 谈谈你对MVC的理解
MVC 模式 MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式.这种模式用于应用程序的分层开发. Model(模型) - 模型代表一个存取数据的对象或 JAVA ...
- 【1】【JUC】Condition和生产者消费者模型
本篇文章将介绍Condition的实现原理和基本使用方法,基本过程如下: 1.Condition提供了await()方法将当前线程阻塞,并提供signal()方法支持另外一个线程将已经阻塞的线程唤醒. ...
- Java编程思想 学习笔记12
十二.通过异常处理错误 Java的基本理念是“结构不佳的代码不能运行”. Java中的异常处理的目的在于通过使用少于目前数量的代码来简化大型.可靠的程序的生成,并且通过这种方式可以使你更加自信:你的 ...
- FastReport动态绑定只显示一条数据。
产生这个问题的原因是因为需要把Band绑定DataSource.有两种方法 (1)DataBand data = report1.Report.FindObject("Data1" ...