微信豆 其他 文章详情

老麦玩路由器之刷机篇

麦四级玩电脑 2016-08-27

下面首先要登场的主角是tplink的3g路由器tl-mr12u(这款路由器的详细信息请大家自行百度搜索),老麦今天要给它动一个换脑手术(俗称刷机)。




恢复tplink官方固件


老麦喜欢干什么事之前都想好退路,如果以后这个路由器由于种种原因不想用openwrt固件而想恢复官方原始的固件的话该怎么做?

下面这段话摘自openwrt官网。(从这个网址https://wiki.openwrt.org/toh/tp-link/tl-mr13u可以找到这段内容)


Back to original firmware
Download the latest firmware http://service.tp-link.com.cn/detail_download_1226.html unpack the archive.
You should have mr13uv1.bin inside it. This file has little over 4MB so it contains a bootloader.
You can't flash it directly from OpenWrt web interface or through ssh and mtd command. First you have to strip the .bin file of the bootloader. For this you use a tool called dd.
Cut first 0x20200 bytes from original firmware
 dd if=mr13uv1.bin of=mr13uv1_noboot.bin skip=257 bs=512
Then upload it to the router
 scp mr13uv1_noboot.bin root@192.168.1.1:/tmp
Type your root password when prompted and a slow upload will start. SSH to your router and perform the following commands:
Flash via mtd
  mtd -r write /tmp/mr13uv1_noboot.bin firmware


上面这段说的是tl-mr13u的固件恢复方法,tl-mr12u的固件恢复方法同它完全一样,不过tplink官网并没有给出官方固件的下载连接。

老麦经过多方搜索,已经从下面的网址找到,该网址有固件下载的连接,经过老麦刷机验证,一切正常。

固件介绍网址:http://www.right.com.cn/forum/thread-165705-1-1.html

好了,知道了如何恢复官方固件的方法,可以开始刷机了。



定制openwrt固件

tl-mr12u这个路由器的内存很小,如果你直接刷openwrt官网上预编译好的固件,你会发现你基本无法再装其它软件。

所以我们需要采用所谓extroot的方式把系统扩展到外加的tf卡(或u盘)上才能安装其它各种软件(何谓extroot请大家自行从openwrt官网搜索了解)。

定制编译包含extroot模块的教程可以从下面网址找到。
https://wiki.openwrt.org/doc/howto/extroot
https://wiki.openwrt.org/doc/howto/obtain.firmware.generate#

这里老麦把关键的那一小段教程摘录如下,

Automatic Setup
    There's a project called OpenWrt Auto extroot that can build a customized firmware image (using the Image Generator).
        When this image is flashed, it will automatically set up extroot on any inserted storage device and then reboot (hopefully into the freshly set up extroot).
        It's a nice foundation for custom applications that require auto provisioning, or just for your convenience at home for an easy extroot setup.
    This is an ImageBuilder example for building very small images (compatible with 4 MB devices) with only the required packages for manual extroot setup. Please mind that there is no LuCI installed. Once extroot is performed, you can install LuCI and all the packages you require on top of the newly created filesystem.
    make image PROFILE=TLMR3020 PACKAGES="blkid block-mount kmod-fs-ext4 kmod-usb2 kmod-usb-uhci kmod-usb-ohci kmod-usb-storage"


根据openwrt官方的说法,自行编译生成固件需要在x64的linux环境下才能进行。

老麦我是用VirtualBox装了一个Debian8的虚拟机,在虚拟机里根据openwrt官方的介绍一步步编译生成固件。

所用的编译命令:
make image PROFILE=TLMR12U PACKAGES="blkid block-mount kmod-fs-ext4 kmod-usb2 kmod-usb-uhci kmod-usb-ohci kmod-usb-storage"

看到了吗,就是上面那段的最后一句,只是TLMR3020改成了TLMR12U

详细的编译过程,老麦就不展开了,在上面的网址可以找到具体教程(英文的,不过懂Linux的人应该不难看懂)。

老麦这次定制的固件版本是openwrt的最新版chaos_calmer

源代码包的下载地址是:
https://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/

编译后生成的固件文件名是:
openwrt-15.05.1-ar71xx-generic-tl-mr12u-v1-squashfs-factory.bin



刷入oppenwrt固件

从官方固件刷openwrt的固件其实非常简单,具体操作可以参考tplink官网介绍或路由器的使用手册。

只要把上面编译生成的
openwrt-15.05.1-ar71xx-generic-tl-mr12u-v1-squashfs-factory.bin

指定为要升级的固件文件名,等固件上载完毕并重新启动之后,刷机工作就算结束了,路由器的大脑已经被换成更开放的openwrt系统了。

接下来,老麦要开始路由器的系统设置喽。

先休息一下,老麦要喝杯咖啡提提精神。

相关文章