分类:
2012-10-30 13:26:23
原文地址:dd-wrt nvram 命令 参数 详解 作者:jerichen
我们常说的BIOS是存储在FLASH芯片中的,象我们现在卖的BUFFALO AP中FLASH芯片一般为4M。
整个FLASH芯片中大致分为3部分:
第一部分就是FLASH的开头部分叫做CFE,存储启动必须的一些信息,例如初始地址、MAC地址、内存地址等等;
第二部分就是我们可以下载升级部分,你从产品网站上下载的BIOS升级程序就是这部分;
第三部分就是楼上说的NVRAM,基本可以理解为用来保存AP的设置参数。
OpenWrt:什么是NVRAM?
NVRAM 全名是 Non-Volatile Ram ,在 OpenWrt 里是用了 Flash Rom 最后的 64K 区块,用来储存一些环境参数,OpenWrt通过这些参数来配置网络,DHCP,DNS和记载硬件版本等。
常用的 nvram 指令有以下 4 种:
1. nvram show
列出 NVRAM 内所有参数,我们亦可以用 grep 命令来抽取部份资讯,例如
nvram show | grep lan_
这命令列出了所以用 lan_开头的参数,结果如下:
lan_gateway=192.168.1.254
dr_lan_rx=0
lan_netmask=255.255.255.0
lan_lease=86400
lan_stp=1
lan_hwaddr=00:12:17:E1:56:F5
lan_dns=211.152.179.7 202.96.128.86
lan_ifnames=vlan0 eth1
size: 12567 bytes (20201 left)
lan_ipaddr=192.168.1.1
lan_proto=static
lan_ifname=br0
lan_wins=
lan_hwnames=
2. nvram set 参数=数值
用来添加或修改一些参数,例如我想把 LAN 的 IP 由 192.168.1.1 改为 192.168.1.2,可执行:
nvram set lan_ipaddr=192.168.1.2
nvram commit
reboot
第 1 行是修改 IP 地址,第 2 行是保存,第 3 行是重新启动 OpenWrt ,因为更改 IP 地址后要重启才能生效。
3. nvram unset 参数
用来删除一些参数,不过这个功能很少用到,因为 NVRAM 的 64K 容量足够保存大量参数,大部份人都赖得去删。
例如我想删除“dr_lan_rx=0”这个参数,请执行:
nvram unset dr_lan_rx
4. nvram commit
当你对 NVRAM 做了一大堆修改后,你需要把这些修改保存起来,否则你的路由器 RESET 后,这些修改便没有了,和上面一样,这时你要执行:
nvram commit
mtd -erase nvram
nvram commit
reboot
如果不行,就刷上openwrt,然后执行以上命令
好了之后再用bootwait刷回dd-wrt就可以了
回到dd-wrt启动时候,按住reset button启动,去web gui把reset button支持关掉,保存,重启
===============================================
WVR纯DD清nvram,刷tomato
1、进入管理界面点开升级界面。
2、进入TELNET管理后输入“mtd -e nvram erase nvram”再执行“nvram commit”这是保存,
3、到你刚点开的升级界面,选择TOMATO的固件,
4升级吧,现在你就可以进入西红柿了(用户名和密码和DD的一样)。
以上操作不用REBOOT。
对第2台WVR进行了升级,必须得恢复到默认设置(好像只有4116 也就是10.10日的版本可以恢复出厂默认)后再进行上面1-4的操作。
我的WAN口接了设备,这时也不行,要拨下来,才可以进入到西红柿。
其实tomato能清除nvram的原因不是它能同时写入到dual nvram,而是它把main part给清除了再把自己的默认数据写了进去,reboot以后pmon检测主备均正常,然后把主拷贝到备里面~~~
而dd呢,把main擦除了,希望交给pmon来写入默认值,但pmon发现虽然main无效了,但是sub 还是好的,so就把sub给拷贝到main了~~