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 性能更好…… Run OPENWrt on a CLOSED platform? No way!

可运行最新的 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,现在刷入,很快就可以完美升级到稳定版。下载 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.2ifconfig 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.1tftp > verbosetftp > binarytftp > tracetftp > rexmt tftp > timeout 60# 路由器加电,此时按下回车。# 如果使用其它 tftp 客户端,你可能没有自动重试机会,你需要观察路由器的指示灯,# 路由器的网络接口 LED 会经历全亮、只有连接的 LAN 亮、可能会闪烁、LAN LED 灭、LAN LED 再亮的瞬间,发出指令。tftp > put openwrt-ar71xx-generic-wzr-hp-g450h-squashfs-tftp.bin# 随后,固件会完成传输,等 Diag 红色指示灯不再闪烁,刷机即完成。

初始配置

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

# 配置网络ifconfig enp5s0 192.168.1.2ifconfig enp5s0 netmask 255.255.255.0route 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。

P.S:14.07 RC1 – Barrier Breaker 的软件包构建未完成,将在正式版时完成,现软件仓库里缺少大量软件,影响使用,相信等正式版发布时就不是问题了。

随机文章原创文章采用知识共享 Attribution-ShareAlike 3.0 China Mainland 许可协议进行许可.

Buffalo WZR-HP-G450H 刷 OpenWRT

相关文章:

你感兴趣的文章:

标签云: