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 无线配置文件生效过程的更多相关文章

  1. 想要配置文件生效 需要通过添加到web.xml加载到内存中

    想要配置文件生效 需要通过添加到web.xml加载到内存中

  2. MyBatis 源码分析 - 配置文件解析过程

    * 本文速览 由于本篇文章篇幅比较大,所以这里拿出一节对本文进行快速概括.本篇文章对 MyBatis 配置文件中常用配置的解析过程进行了较为详细的介绍和分析,包括但不限于settings,typeAl ...

  3. 修改无线wifi网络名称。注册表。windows 无线属性 windows 无线 配置文件

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha windows 无线属性 windows 无线 配置文件 ======= 修改完成,之后 ...

  4. @Value和@PropertySource实现*.properties配置文件读取过程和实现原理

    @Value和@PropertySource实现*.properties 配置文件读取过程和实现原理 1       配置使用步骤 (1)右击resource目录添加*.prooerties配置文件

  5. []转帖]linux 上修改了nginx.conf 怎么重新加载配置文件生效

    linux 上修改了nginx.conf 怎么重新加载配置文件生效 https://www.cnblogs.com/zhuyeshen/ 步骤如下先利用/usr/local/nginx/sbin/ng ...

  6. 高通 mixer_paths.xml 音频配置文件 初始化过程

    记录一下高通音频配置文件mixer_paths.xml初始化过程.参考代码基于Android O. hardware/qcom/audio/hal/audio_hw.c struct audio_mo ...

  7. linux 上修改了nginx.conf 怎么重新加载配置文件生效

    步骤如下先利用/usr/local/nginx/sbin/nginx -t测试配置文件修改是否正常/usr/local/nginx/sbin/nginx -s reload重新加载 nginx 更改配 ...

  8. mysql配置文件生效顺序

    安装完数据库 除了将my.cnf放在/etc/下放在其他地方也是可以的 cp /usr/share/mysql/my-default.cnf /etc/my.cnf 今天就看一下这些my.cnf是怎么 ...

  9. IDEA2018.3.5Tomcat output 中文乱码 修改配置文件生效的解决办法

    首先,我也是尝试别人介绍的方法: IDEA Windows 环境 console 乱码问题 - intellij idea 15 控制台输出中文乱码问题解决办法 - liuhai的博客 - CSDN博 ...

随机推荐

  1. Memcached在Windows下的配置和使用

    Memcached学习笔记---- 安装和配置 首先,下载Memcached相关文件. 打开控制台,进入Memcached主程序目录,输入: memcached.exe -d install //安装 ...

  2. ReactNative组件之scrollView实现轮播

    想要实现轮播效果,首先安装时间定时器 接下来就是在我们的项目中使用定时器 接下来我们将竖着的轮播图变成横着的 接下来我们调整间距 我们知道轮播图下方,还有5个圆点,那我们怎么做呢? 拿到每一个圆点 看 ...

  3. Nginx一台机器上负载均衡多个Tomcat

    默认你的机器上安装了Java环境,解压了Tomcat,安装了Nginx.默认这几个tomcat都部署在一台机器上. 对于Tomcat需要改三个地方[你部署的所有tomcat这三个地方都不能一样,如果你 ...

  4. 关于jQuery.ajax()的jsonp碰上post详解

    前言 以前一直以为当$.ajax()的 dataType设置为jsonp时,其method(请求方法)无论怎么设置,都会变成get,直到前两天遇到了一个坑. 下面来一起看看详细的介绍: 关于跨域请求与 ...

  5. sqlserver 导入数据出现 无法创建 OLE DB 取值函数。请查看列元数据是否有效

    我用的是Sql Server 的导入导出功能来实现的,但是有些数据可以导进去,有些就不行.总是出现一些错误! 执行之前 (错误)消息错误 0xc0202005: 数据流任务: 在数据源中找不到列“Un ...

  6. 关于checkbox全选与全不选的实现与遇到的问题

    HTML: <div class="outbox"> <label for="box">全选</label> <inp ...

  7. C#面向对象设计的七大原则

    本文我们要谈的七大原则,即:单一职责,里氏替换,迪米特法则,依赖倒转,接口隔离,合成/聚合原则,开放-封闭 . 1.   开闭原则(Open-Closed Principle, OCP) 定义:软件实 ...

  8. 比特币VS美元兑换查询网址

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  9. Linux将ActiveMQ修改为自启动

    1.在root权限下操作 2.ln -s  /usr/local/activemq/bin/activemq /etc/init.d/activemq 3.vi /etc/init.d/activem ...

  10. xgboost应用

    在业务中,我们经常需要对数据建模并预测.简单的情况下,我们采用 if else 判断(一棵树)即可.但如果预测结果与众多因素有关,而每一个特征的权重又不尽相同. 所以我们如何把这些特征的权重合理的找出 ...