380939960@qq.com
简单来说,Ralink SDK中的NVRAM机制提供了以下功能:
* 将WIFI配置持久化在flash中,保证用户设置的SSID,KEY等WIFI参数掉电后仍然有效;
* 第三方程序通过“nvram_set”命令设置新的WIFI参数,并将它保存到FLASH中;设置完WIFI参数后,还需要使用其他命令才能让WIFI driver使用到新的WIFI参数。
* 第三方程序通过“nvram_get”命令获得当前“nvram”中的WIFI参数。注意:这个参数可能并不一定是WIFI driver当前使用的参数。
* 第三方程序通过“ralink_initgen ***”命令,根据NVRAM机制中WIFI参数生成WIFI driver使用的配置文件(例如” /etc/Wireless/RT2860/RT2860.dat”); 生成新的WIFI配置参数后,通常还需要重新打开WIFI设备才能让新配置生效(例如:ifconfig ra0 down; ifconfig ra0 up);
* 通过“ralink_initrenew 2860 [<file>]”命令恢复出厂设置。
修改WIFI参数
可以通过类似如下的命令设置当前NVRAM中的某个WIFI参数;需要指出的是nvram_set命令实际上是ralink_init命令的符号连接。
# nvram_set HT_BW 1 # |
当然如果是C程序的话,最好还是使用SDK中libnvram提供的函数来实现,例如:
if(!strlen(ntpServer)){ // user choose to make NTP server disable nvram_bufset(RT2860_NVRAM, "NTPServerIP", ""); nvram_bufset(RT2860_NVRAM, "NTPSync", ""); }else{ if(check_semicolon(ntpServer)) goto leave; if(!strlen(ntpSync)) goto leave; if(strtol(ntpSync, NULL, 10) > 300)
|