2012购买的TP-Link TL-WDR4310路由器,购买后就升级了OpenWrt for TP-Link TL-WDR4310。最近几天,想彻底重构一下家用的网络和存储设备,所以再次升级OpenWrt。

TL-WDR4310和TL-WDR4300是使用相同硬件,可以参考使用 TP-Link TL-WDR4300进行升级。

TP-Link TL-WDR4310

由于已经安装过OpenWrt系统,所以这次关注的是升级新版本,有两种升级方法:

  • 通用的Sysupgrade – 我实际采用此方法
  • Flash覆盖

Sysupgrade方法

参考 OpenWrt Sysupgrade 可以通过终端升级方法

cd /tmp
wget https://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin
sysupgrade -v /tmp/openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-sysupgrade.bin

由于原先安装的OpenWrt具有一个 LuCI Web Upgrade功能,实际我是采用web方式上传sysupgrade兼容镜像来升级的

下载OpenWrt firmware

wget https://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin

通过Web界面登录路由器

选择 System ⇒ Flash Firmware 上传下载的OpenWrt镜像文件,注意勾选”keep configuration files”

TP-Link TL-WDR4310

上传文件之后,会提示MD5校验值,建议和网站MD5值进行对比

TP-Link TL-WDR4310

等待刷新

TP-Link TL-WDR4310

刷新过程设备会自动重启,网络会短暂断开

刷新后重启,WEB登录界面如下(果然界面清新)

TP-Link TL-WDR4310

Flash 覆盖方法

  • 首先SSH登录
  • 使用 freetop 命令检查内存使用情况。镜像需要最多使用 8 MB内存,所以要确保内存空间空间有6-8MB内存空闲。这里设备由128MB RAM,所以不存在问题
  • 最简单的释放内存的方法是删除 /etc/modules.d/20-cfg80211 , /etc/modules.d/21-mac80211 , /etc/modules.d/2*-ath*/etc/modules.d/[4-9]*-* 然后重启设备。

也可以使用放弃缓存方法:

echo 3 > /proc/sys/vm/drop_caches

使用 wgetscp 复制新的firmware到 /tmp 目录

cd /tmp
wget https://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin
mtd -r write /tmp/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin firmware

上述方法应该会将系统恢复到出厂设置,可能需要重新设置,所以实际我采用 Sysupgrade 方法