如何修改OpenWrt系统中的路由器型号?

在路由器刷入OpenWrt系统的过程中,部分路由器因为暂时没有官方的路由器固件可以下载,所以要刷其它型号的路由器固件来代替,但是会存在一个小问题,就是在输入密码进入OpenWrt系统首页”Status – Overview“时,在”Model“一栏显示的是其它路由器的型号,例如本网站刷机时曾涉及到的:WR886N-V5显示的是WR940N-V4;WR720N-V3显示的是WR710N-V1。这对于完美主义者或者有强迫症的人来说,实在时没法接受的。所以本文就来讲解一下如何修改OpenWrt系统中的路由器型号,让其与路由器本体一致。

特别申明:本文所讲解的方法只对本文所引用的版本有效,其它版本有可能需要修改的文件及所在的目录都有所不同,大家可以慢慢去摸索,本文只是做一下“抛砖引玉”的作用。

以WR886N-V5刷WR940N-V4的自编译固件为例,固件的版本号为OpenWrt18.06.8,最初的Luci界面如下:

WR886N-V5刷WR940N-V4的自编译固件后原始界面

“Model”一栏显示的时“TP-Link TL-WR940N v4″,现在我们要想办法给它改过来。

通过WinSCP连接路由器后,打开 /usr/lib/lua/luci/view/admin_status/index.htm 文件,然后找到下图红线划的那一行。

WR886N-V5刷WR940N-V4的自编译固件后型号修改文件

将这行中的Model取值语句直接变更为输入实际的路由器型号,见下图:

WR886N-V5刷WR940N-V4的自编译固件后型号修改成正确值

保存后退出,然后在浏览器里刷新原Luci界面,你就会发现Model值已变成到你想要看到的样子的。

WR886N-V5刷WR940N-V4的自编译固件后型号修改

当然这是一种临时的应变之道,最好的方法还是在自编译固件的时候,就把路由器型号也一起改好了,这在后续我们讲解自编译固件时会涉及到。

 

 

为OpenWrt的Snapshot版本安装上Luci界面

在掌握了SSH服务的应用之后,我们现在可以来讲解如何利用SSH服务来为OpenWrt的Snapshot版本安装上Luci界面了。OpenWrt系统分”Stable Release builds“,即”稳定发布版“和”Development Snapshot builds”,即“开发版”。Snapshot版是尚处于开发期的版本,它合成了最新的、最前沿的应用来供大家测试,与发布版不同的是,它提供给最终使用者的环境是不太完善的,因为它并不包含luci界面。但是对于新潮的DIY爱好者来说,他们渴望尝试一切新鲜的、最新出炉的东西,所以这时就需要利用SSH服务来为snapshot版本自行安装Luci界面了。

下面以TL-WR710N_V1安装OpenWRT的Snapshot版本为例进行说明:

1、先下载与路由器相对应的OpenWrt的最新Snapshot版本固件,如:openwrt-ath79-generic-tplink_tl-wr710n-v1-squashfs-factory.bin。

wr710n v1 snapshot版本下载链接

2、进入路由器的刷机界面,刷入最新版的Snapshot版本固件(其硬改及刷机过程与WR886N_V5类似,此处略过)。

3、路由器重启后,将路由器的任一Lan端口与电脑的网口连接,在电脑上打开WinSCP程序(root用户,密码为空),通过SSH连接到路由器192.168.1.1。

4、再进入PuTTY程序界面,先设置root密码,命令行输入:

root@OpenWrt:~# passwd root

按提示输入密码,然后再次输入确认密码。

5、路由器Wan口接上Internet服务,注意Wan端与Lan端的DHCP要处在不同区间,若Wan端为192.168.1.X,则将Lan端须从192.168.1.1修改为192.168.X.1,采用如下Shell命令:

root@OpenWrt:~# vi /etc/config/network

6、安装uhttpd服务

root@OpenWrt:~# opkg update && opkg install uhttpd

7、安装Web-UI,即Luci界面

root@OpenWrt:~# opkg install luci

注意:在执行安装Luci服务时,可能会出现cgi-io依赖件无法安装,而导致Luci服务安装失败。这时需要先将相应型号及版本的cgi-io依赖件下载到电脑,如:cgi-io_12_mips_24kc.ipk,再将该依赖件通过WinSCP上传到路由器的/tmp目录下,然后安装该依赖件

root@OpenWrt:~# opkg install /tmp/cgi-io_12_mips_24kc.ipk

8、安装好uhttpd、luci服务后,就可以与Release版本一样,在浏览器上输入:192.168.1.1,然后进入熟悉的Luci界面了。如需使用中文界面,则继续安装中文语言程序包:

root@OpenWrt:~# opkg install luci-i18n-base-zh-cn

 

SSH服务的应用

本文主要讲解Windows系统下访问Linux系统下SSH服务的应用场景。因为大部分的第三方路由器固件系统都采用Linux内核,OpenWrt系统也不例外,所以掌握了Windows系统下访问Linux系统下SSH服务的方法,对路由器DIY爱好者来说非常重要。像OpenWrt系统下应用程序(Aria2FTPFrp等)的安装及设置都可以通过SSH服务来高效完成。

一、先在Windows电脑系统中安装相应的程序

1、到PuTTY官网下载putty最新版程序,32位系统下载:putty-0.74-installer.msi;64位系统下载:putty-64bit-0.74-installer.msi。下载完成后,点击文件直接安装。

2、到WinSCP官网下载最新版的WinSCP应用程序:WinSCP-5.17.8-Setup.exe,下载后点击文件直接安装。

Ps:以上两个程序你也可以通过点击本网站的“DIY专栏 – 下载中心”直接下载(百度网盘提取码:lyzj)。

二、运行WinSCP

1、双击桌面上的WinSCP图标运行程序,进入“登录”对话框,点左框中的“新建站点”或直接在右框输入。

SSH服务的应用-WinSCP新建站点界面

2、“文件协议”的选择取决于你的系统,像OpenWrt系统,你就选择“SCP”;Ubuntu系统,你就选择“SFTP”,要是最终电脑无法访问到SSH服务,那多半是“文件协议”选择不正确所致。

3、“主机名”一般就是输入路由器的内网地址,如:192.168.1.1,但如果你的电脑是通过远程访问路由器的,这里就填路由器的域名,如:www.xxxxx.com。

4、“端口号”如果在系统设定时没更改过的话,就保留缺省的“22”端口号不变。如果是远程访问,一般会采用端口映射(将远程端口号映射到内网的22端口号),那这里就填远程端口号就行。

5、填上用户名:可以是“root”,也可以是自己设定的其它用户名;再输入密码,就可以点”登录“进入WinSCP程序界面了。

SSH服务的应用-WinSCP程序界面

6、左右两个框,一个显示的是Windows电脑段的文件,另一个显示的是Linux系统(上图中显示的是OpenWrt系统的根目录)的文件,你可以像Windows系统的资源管理器一样管理两端的文件,也可以相互操作,例如将电脑端的文件拷贝到Linux系统端,或者反之。

三、运行PuTTY

1、在WinSCP程序界面中,点击上图红圈中的图标,就可以进入与Linux系统实时”会话“的PuTTY程序界面,这里需要再重新输一下密码(注:因为输密码的时候密码不可见的,所以有时须考虑是否是输入法的设置原因而导致密码错误)。SSH服务的应用-PuTTY程序界面

2、PuTTY程序界面,与Linux系统的”终端“相似,这里你可以输入Shell命令来实时操控Linux系统,建立各种”会话“。

这样,利用系统提供的SSH服务,再加上WinSCP及PuTTY两个程序工具,我们就可以在文件层面及实时操作层面与Linux系统建立起联系,实现Windows系统与Linux系统或Linux内核系统进行良好”沟通“的目的。

 

从原始Flash中提取ART文件

ART是指路由器的无线校准文件,路由器通过ART文件来使无线功能得到最好状态的发挥。它是由厂家在出厂时就设定好的,通常来说每个路由器的都会有不一样的ART文件。在我们刷写第三方固件,如OpenWrt固件时,为了发挥原无线的最佳功能,需要将原路由器的ART文件也一并刷入,具体过程可参见“WR886N_V5刷OpenWrt固件”一文。本文将详细讲述如何将ART文件从原闪存Flash上提取出来。

准备素材:

1、从原路由器上焊下的闪存芯片;

2、编程器:我这里采用的是XTW100Pro,你也可以用常规的CH341A;

3、文本及代码编辑器:我习惯采用Notepad++,你也可以采用WinHex等其它编辑器。

ART文件提取过程:

1、由于不同的CPU对应的ART起始地址可能是不一样,个人很难去一一记住或者查询的话也很费时间,不过好在有人已经将常见的路由器的ART文件放在网络上共享,我们可以将相应的ART文件下载下来作为范本,再将从原闪存中提取的数据直接覆盖掉范本数据,就会生成你自己手头上路由器的ART文件;以TL-WR886N-V5路由器为例,其主控芯片为TP9343,那我们就到网络上去下载art-tp9343.bin文件,你也可以点击本网站的”DIY专栏-下载中心“下载到相应的范本文件(百度网盘提取码:lyzj)。

2、通过编程器将闪存内的所有数据读出,保存为:wr886n原固件.bin;具体过程略

3、将以上两个文件同时在Notepad++中打开,先点开art-tp9343.bin文件,前面都是FF空数据区,一直往下拉,到00001000地址行处才出现真正的数据区,一直到00001430行为止。回到00001000地址行,将前面的几个字节”02 02 00 03 7F”选中后,点”复制“;

Notepad 001

4、再点开wr886n原固件.bin文件,点“搜索search”,点”查找find“,在选”字节值hex-values”,在输入框粘贴刚才复制的字节值;

Notepad 002

5、点“确认OK”后,地址栏自动会跳转到00020800行处,从这个地址一直往下到00020C30行处,就是这个路由器出厂时的ART数据,将这些数据全部选中,然后复制;

Notepad 003

6、再回到art-tp9343.bin文件,光标停在00001000行字节区起始处,点击鼠标右键,再点“粘贴覆盖paste write”,原ART文件的范本数据就被该路由器的真实数据替换了;

Notepad 004

7、再将art-tp9343.bin文件重命名保存即可,整个提取过程到此结束。后续就可以将新命名的ART文件用于该路由器的第三方固件刷写过程中了。