Buffalo WZR-HP-G450H 刷 OpenWRT

三年前,我买了一台 Buffalo WHR-HP-G54,这台路由器是曾经的神器,具有和 Linksys WRT54G 对抗的能力,是 802.11g 路由器的经典。

然而,仅 16 MB 的内存和 4 MB 的闪存,连运行 Linux 3.x 都存在困难,直接导致内核 OOM 杀掉重要进程,从而无限重启。虽然网络上充斥更换内存颗粒的教程,但比尔盖子这样的硬件杀手,即使有热风枪,也不敢下手,否则主板大概就要被我烤糊了。

后来,又使用树莓派充当路由器。ath9k_htc 的 USB 设备虽然开放,然而却有很多 Bugs,导致连接不稳定。就连 OpenWRT 团队,自己打了一堆没有并入内核的补丁,也只能说是基本而不是彻底解决 ath 的问题;发射功率低,新好不好;再加上受限于 USB 2.0 的传输速度(算上树莓派的硬限制,USB 2.0 的理论速度绝对是达不到的);同时,缺少有线接口,导致无线出现问题时无法上网,因此不适合长期使用。

因此,最近便打算购买一款新的路由器。要求:

  • 802.11n, MIMO

    速度、信号。

  • 32 MB 内存

  • 尽量不要有闭源模块和 Firmware

    Buffalo WHR-HP-G54 的 Linux 2.4 无线驱动就是闭源的,社区版驱动为独立开发,导致普遍认为 Linux 2.4 的无线要比 Linux 2.6 性能更好……

  • 可运行最新的 Linux 内核

    有些时候可以运行在 OpenWRT 上,但只能运行较旧版本的内核。

正巧,看上了 Free Software Foundation 使用的 WZR-HP-G300NH,正好满足上述全部条件。但 WZR-HP-G300NH v1 已经停产,由 v2 硬件修订版替代,配置大大缩水。国内任何地方都买不到,Amazon.com 上只能购买到 v2,Amazon.co.jp 可以购买到二手,但卖家限定国内发货……

最后,正考虑是否应该从 FSF 那里买一台过来时,从 OpenWRT Wiki 看到了一款类似的型号,WZR-HP-G450H 于是便入了。

刷 OpenWRT

WZR-HP-G450H 的作风,同 WHR-HP-G54 等其它系列机器是一样的,开机时,Bootloader 会给你几秒钟时间上传 Firmware,这样一来,无论如何也不可能变砖。然而,WZR-HP-G450H 的时间窗口更难掌控,网络的配置也更加复杂,显然是为了防止轻易被刷。

工具

刷机之前,需要准备一些必要工具。常见的工具,如 OpenSSH,我不会列出。

  • 固件文件

    OpenWRT 最近刚刚发布了 14.07 RC1 - Barrier Breaker,虽然 RC 版还存在一些问题,但基本已经可用。现在刷入,很快就可以完美升级到稳定版。下载 http://downloads.openwrt.org/barrier_breaker/14.07-rc1/ar71xx/generic/openwrt-ar71xx-generic-wzr-hp-g450h-squashfs-tftp.bin

  • tftp 客户端

    tftp 的实现很多,选择自己喜欢的即可。我使用的是 http://www.kernel.org/pub/software/network/tftp/ 维护的 tftp-hpa。很多发行版里就直接叫 tftp。

  • telnet 客户端

    如今的系统不太可能预装这东西了,我使用的是 telnet-bsd。

指令

事先,把路由器只留一个 LAN 口,连接电脑,放在自己能观察到 Lan 指示灯的地方,断电。

把 enp5s0 换成自己的有线网卡设备名,如 eth0;tftp 使用的是 tftp-hpa,如果你使用其它客户端,请使用相应语法替代。

# 首先,关闭系统中任何网络管理器,依系统不同而不同
systemctl stop NetworkManager

# 设置本机 IP、子网掩码
ifconfig enp5s0 192.168.11.2
ifconfig enp5s0 netmask 255.255.255.0

# 添加静态路由,此 MAC 地址是 Bootloader 中规定的维护用地址,不要把它替换成你设备的 MAC。
arp -s 192.168.11.1 02:aa:bb:cc:dd:23

# 设置网卡为百兆以太网、全双工(某些奇葩的失败可通过此方法解决,不过这一步似乎不必要)
ethtool -s enp5s0 speed 100 duplex full

# 启动 tftp 客户端
tftp 192.168.11.1
tftp > verbose
tftp > binary
tftp > trace
tftp > rexmt 
tftp > timeout 60

# 路由器加电,此时按下回车。
# 如果使用其它 tftp 客户端,你可能没有自动重试机会,你需要观察路由器的指示灯,
# 路由器的网络接口 LED 会经历全亮、只有连接的 LAN 亮、可能会闪烁、LAN LED 灭、LAN LED 再亮的瞬间,发出 TFTP 指令。
tftp > put openwrt-ar71xx-generic-wzr-hp-g450h-squashfs-tftp.bin

# 随后,固件会完成传输,等 Diag 红色指示灯不再闪烁,刷机即完成。

初始配置

此时,OpenWRT Linux 已经开始运行,但没有 DHCP 服务器、SSH 服务器、Web 界面,会给你一种刷坏掉的假象。

# 配置网络
ifconfig enp5s0 192.168.1.2
ifconfig enp5s0 netmask 255.255.255.0
route add default gw 192.168.1.1

# 连接
telnet 192.168.1.1

# 设置 root 密码
(telnet) passwd

# 重启
reboot

一旦你设置了 root 密码,接下来 OpenWRT 将会进入标准模式,启动 SSH 和 DHCP 服务器。此时,可以把网络管理器重新启动了

systemctl start NetworkManager

进一步配置

设置 PPPoE?启用无线模块?配置 LED 行为?请阅读 OpenWRT Wiki。



文章来源:https://biergaizi.info/archives/2014/07/1878.html

你可能感兴趣的:(Buffalo WZR-HP-G450H 刷 OpenWRT)