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. 逆向---02.je & jmp & jnz 、OD调试

    上一篇:逆向---01.Nop.中文字符串搜索.保存修改后程序 OD调试基础:(01.02篇练手工具:https://pan.baidu.com/s/1kW2qlCz) nop是删除跳转,你别问我,我 ...

  2. Jenkins中使用Azure Powershell连接Service Fabric报错not recognized的原因与解决办法

    一.使用背景 在涉及Azure service Fabric的自动化应用场景中,依赖于Service Fabric的Azure Powershell cmdlets,我们可以使用Jenkins能实现c ...

  3. Ubuntu16.04中禁用UTC解决双系统时间问题

    解决方法一 sudo hwclock -w --localtime 解决方法二 timedatectl set-local-rtc 1 解决方法三 修改/etc/adjtime文件中的UTC,为LOC ...

  4. EXGCD 扩展欧几里得

    推荐:https://www.zybuluo.com/samzhang/note/541890 扩展欧几里得,就是求出来ax+by=gcd(x,y)的x,y 为什么有解? 根据裴蜀定理,存在u,v使得 ...

  5. bzoj3209 花神的数论题——数位dp

    题目大意: 花神的题目是这样的 设 sum(i) 表示 i 的二进制表示中 1 的个数.给出一个正整数 N ,花神要问你 派(Sum(i)),也就是 sum(1)—sum(N) 的乘积. 要对1000 ...

  6. typescript函数(笔记非干货)

    函数类型 Function Type 为函数定义类型 Define types for functions 我们可以给每个参数添加类型之后再为函数本身添加返回值类型. TypeScript能够根据返回 ...

  7. npm install 报错Unexpected end of JSON input while parsing near...

    安装node http://nodejs.cn/download/ 克隆代码 ....... 执行安装 npm install 然后就报了一坨错误 清理一下缓存 sudo npm cache veri ...

  8. Linux追加文件内容并在内容前加上该文件名(awk, FILENAME功能妙用)

    假如有三个文件file1.txt,file2.txt,file3.txt 每一个文件内容如下: 现在打算提取每一个文件字符为16的行,打印该行所有的内容.以及该文件名,并追加到file4.txt,则可 ...

  9. 多目标遗传算法 ------ NSGA-II (部分源码解析)父、子种群合并 merge.c

    /* Routine for mergeing two populations */ # include <stdio.h> # include <stdlib.h> # in ...

  10. Hive记录-使用Hue管理Hive元数据

    Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web ...