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. 转载:Windows下stdlib.h与glut.h中exit()函数重复定义的解决方案

    最近用到 OpenGL的第三方库Glut,碰到了exit()这个函数在stdlib.h与glut.h两个头文件中重复定义的情况,解决方案如下: 打开glut.h,找到exit()函数定义的地方(144 ...

  2. A1075. PAT Judge

    The ranklist of PAT is generated from the status list, which shows the scores of the submittions. Th ...

  3. ~/.ssh/config 配置格式

    Host server1 HostName server1.cyberciti.biz User nixcraft Port 4242 IdentityFile /nfs/shared/users/n ...

  4. Omnibus test

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

  5. how to calculate the best fit to a plane in 3D, and how to find the corresponding statistical parameters

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

  6. secure CRT the remote system refused the connection 解决办法

    1.安装ssh服务器和客户端 apt-get install openssh-server apt-get install openssh-client 2.重启ssh /etc/init.d/ssh ...

  7. SQL记录-PLSQL基本语法与数据类型

    PL/SQL基本语法 PL/SQL是一种块结构的语言,这意味着PL/SQL程序被划分和编写代码的逻辑块.每块由三个子部分组成: S.N. 段和说明 1 声明 此部分开头使用关键字DECLARE.它是一 ...

  8. Java编程思想 学习笔记6

    六.访问权限控制 访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关. 如何把变动的事物与保持不变的事物区分开来,这是面向对象设计中的一个基本问题. 为了解决这一问题,Java提供了访问权限修饰词 ...

  9. cdqz2017-test10-加帕里图书馆(区间DP & 简单容斥)

    给定一个由小写字母组成的字符串,输出有多少重复的回文子序列 #include<cstdio> #include<cstring> using namespace std; #d ...

  10. JAVA 并发编程学习(2)之基本概念

    1,是不是线程创建越多越好? 当一个程序创建了大量的线程时,活跃的线程会消耗内存.若可运行的线程数量多于可用处理器的数量,那么有些线程将闲置.大量空闲的线程会占用许多内存,给垃圾回收带来压力,而且大量 ...