路由器变砖及复活记

一、原因

为什么要尝试升级手中的路由器呢?我不记得原因了,哦,想起来了。

我最近有幸终于换了一部手机,新手机性能远比自己之前使用的手机好非常多。但唯一的遗憾是:当手机做为热点,分享给路由器的时候,路由器找不到这台新手机热点。

虽然后来莫名其妙的找到了手机热点、也连接上了。但我心中始终有个疙瘩——是不是路由器的固件版本比较低、找不到这个新手机设备?

这么想着,我就想升级一下路由器的固件。

二、直接升级失败

我的路由器是GL.iNet AR750S-EXT,原来里面的固件大概是3.1.202吧,总之就是3.x的固件版本,看它官网上,最新固件已经是4.3.17了。于是下载、升级。

升级失败,原因在于通过web端上传固件之后,始终卡在verifying阶段,无法完成MD5验证,也就无法完成升级(当然这个问题后来我知道原因了)。

在始终处于verifying阶段时,我误以为是需要联网远程验证,而也许远程验证服务器访问不到,所以无法完成verifying结果。我就贸然的进入shell,尝试了一把直接通过命令行强制手动升级。

三、路由器变砖头了

这个通过shell的命令行强制手动升级直接导致路由器变砖。后来才知道,verifying之所以无法完成,是因为那个压缩包本身也许就存在问题:我尝试在另一台电脑上进行解压缩,解压失败。这是官网提供的压缩包,不知道为什么会出这个情况,也无需细究,总之就是:冒然使用了一个非标准的升级方式,导致路由器变砖了。

直接upgrade固件不成、路由器变砖之后。想到不如直接使用UBOOT方式升级,于是又从官网下载了UBOOT刷机包,直接UBOOT刷机。

刷机估计是成功了。

为什么要说“估计”呢?因为我不知道是否成功了。起初因为没有做过这个设备的刷机,所以也不知道刷机究竟成功了没有。但当时我以为UBOOT刷机是失败的,因为刷机完成之后看不出来哪里有成功的迹象。

我以为,如果刷机成功,路由器会给个LED的闪烁提示吧?我以为,刷机成功之后,无线WIFI会出现吧?都没有,既没有LED闪烁、也没有WIFI信号出现。所以我以为是刷机失败了。

后来换成其他固件、刷机之后也没有任何提示。但察觉到原因,刷机之后默认路由器是不开启WIFI的、也没有LED闪烁,也就是说成功了时无法通过观察判断出来。

所以官网给出的UBOOT刷机,我估计是成功了,但因为自己不会操作、不会访问,也就一直以为仍然失败、路由器仍然是砖头。

这个估计已经是好了的路由器,在我当时以为仍然是砖头。既然是砖头,也就破罐破摔了!

这个“砖头”直接通过长按power进入UBOOT界面,我也就只能看到UBOOT升级界面。

四、UBOOT刷机成功

此时迎来了转机:下载到一个第三方的固件,这个第三方固件做的比较好,中文版本、并且刷机成功之后默认是开启WIFI的。

所以当我第三次尝试刷机(第一次是upgrade失败、第二次是uboot官方固件以为失败),完成之后,顺利的通过无线观察到了路由器WIFI信号。进入路由器,看到了与官网固件截然不同的luci框架和功能界面。

这个时候按理来说,就别再折腾了,直接使用这个第三方固件就是了。

但是第三方固件的版本比较低,是个4年前的发行包,这甚至要比我这个路由器最初能用是的官方固件版本还要低。

另一方面,这个第三方固件是个人制作的,我有些担忧,虽然它也是开源产品,但毕竟是个人发布,万一里面有些隐患呢?

考虑到这个第三方固件版本低、又是个人制作的,有些如鲠在喉的不悦。于是我找到了openwrt的官网,如果说我的路由器以前是安装的OEM厂商的厂商固件,如今不如直接再试试openwrt的官方通用固件?

没什么坏处,最坏的打算是再把它变砖。但手里有那个个人发行的第三方固件兜底,无论如何也还有退路。

五、学会了UBOOT刷机并成功升级至最新版固件

于是从openwrt下载了官方的固件,进行升级。

这里有4个有趣的问题:

首先,我不知道应该使用nor版本、还是使用nor/nand版本,最后就随意的使用了nor/nand版本。能用,也就先用着了;

其次,就是上面提到的,openwrt官方版其实也是默认刷机成功后没有wifi信号的,不过这个时候我已经知道了这个情况,所以刷机成功之后,依然使用网线直连路由器,顺利找到了它的管理地址,经过配置就可以使用WIFI并体验其他各种功能了;

值得一提的是,官方版本的UBOOT刷机有2个包,分别是initramfs包和sysupgrade包。必须先用initramfs包完成UBOOT刷机,这个时候相当于是将路由器以“临时live启动”,启动之后,再通过upgrade命令将sysupgrade包刷进入,才能令路由器进入到“长久可用状态”;

最后,就是openwrt官方提供的固件,版本新,内核版本是5.15.150,这要远比OEM厂商提供的还要高很多。而且功能多,功能的开放度也高,很多配置都是开放给终端用户的,看了个眼花缭乱、不知所以。

只能说自己对这个的知识十分欠缺,后面又有的学、有的忙了。

后记

升级固件也好、玩电脑也罢,说白了就是乱捣鼓。其实我现在很不喜欢冒然的尝试新的东西,软件、开发,能用就好、会用就好。接触新的东西、学习新的知识,实在是消耗精力。最近两天,就为了升级这个路由器,让它从砖头复活,你看我下载的这一大堆固件,各种乱尝试、乱蒙撞。

好在最后成功复活了它,否则,我的内心一定苦闷:买不起新的,砖头又实在不舍得丢弃。

每天学习一些新的知识,尽可能保持自己的学习动力。

Related Posts

为P1.27的排针焊接做准备

一、起因 前几天在焊接电路板时,遇到了1.27mm间距的排针,结果十分悲惨——每一个2×2位置都被我焊成了一大坨,四个针脚被一颗巨大的焊锡包裹住了。之后无论是用焊刀吸锡、还是用铜带、又或者热风枪……无论任何方法,无论上面再添加多少助焊剂,都无法将这一坨焊锡搞下去、分割开,直到板子烧糊了也无法将焊锡移除。 这对我而言是一个障碍,如果不解决,那么我想制作的小硬件将会因为这个障碍而最终胎死腹中。所以这几天一直在为这个“手艺”做准备: 首先是新买了一把刀头,我之前用的刀头可能已经有些氧化,无法顺滑的吸锡。另外就是又买了几块PCB焊接练习板,这种经验工作,必须要依靠大量的练习才能掌握技巧。之后今天又觉得我的焊锡丝在粗了,现在使用的是0.8mm的焊锡丝,我想应该再买一捆细一些的,例如0.3-0.5mm的焊锡丝,应该是有帮助的吧。 这么想着,未来几天我就要开始动手练习,期望能够顺利。 另外还有一个比较头痛的事情,就是如何确保这些排针、排母焊接的周正、没有歪斜。这也要再花时间想一想办法。 二、初步尝试使用新买的烙铁头 上面提到准备工作还缺少一些线径更细的焊锡丝,但是实际上我发现完全没有必要,现在使用的0.8mm焊锡丝是可以完成对1.27mm间距排针的焊接的。实际上,焊锡丝的粗细并没有影响,即便是更粗的焊锡丝也是可以搞定的。关键在于烙铁头和焊接的技巧。 1、烙铁头 刚刚尝试了一下新购买的烙铁头,确实比之前使用的好用许多,即便是我这样对焊接技术完全的门外汉,这支新的老铁也非常容易挂锡、非常容易将PCB上多余的焊锡吸起来。而且这只烙铁头的导热效果明显比之前的好许多,我甚至觉得它更适合使用高含锡量的焊锡丝。 2、焊装技巧 之前总觉得自己只有两只手不沟通,现在发现只要先把排针(或排母)的焊脚插入到焊膏中,让焊膏挂在引脚上一些,在把排针插入到PCB上,这样焊膏就相当于粘合剂,会把排针黏住。此时排针的位置就是固定的,而且可以解放出手指来不再手忙脚乱。 将PCB翻转过来,因为排针已经“黏贴”在电路板上,所以既不会掉、也不用手指扶着,它自然而然地悬垂在电路板上,周正、稳定。 然后就是用新购买的烙铁头,挂上一些焊锡。此时就发现手中当前的0.8mm焊锡丝为什么可以使用了——原因是并不会再用到焊锡丝,而是直接使用烙铁头上挂住的锡进行焊接操作。此时也会发现为什么60%含锡量的锡丝不合适了——原因是挂在烙铁头上的锡因为里面含有40%的助焊剂会开始大量冒烟。如果用90%的锡丝,不冒烟,烙铁头上就是熔融的金属锡。 直接用烙铁头在PCB露出来的引脚上一贴,只需要1秒不到的时间,就完成了焊接操作。因为PCB的插孔中有焊膏做为助焊剂,所以烙铁头上的金属锡会马上转移到PCB的焊盘上、并且沁润到过孔中,从而完成焊接操作。助焊剂并不会“提前蒸发掉”,所以整个焊接过程中的流动性非常高,不仅有利于焊锡从烙铁头转移到焊盘、也不会出现焊盘与焊盘之间的连锡。 如上,就是我找到的1.27mm排针焊接的技巧。相信只要再练习20-30次,就能熟练掌握对1.27mm排针的焊接了。

买了东西不敢再乱扔包装了

小的时候无论购买什么东西,买回来之后都是暴力拆包,只留下商品,然后会将外包装、商品包装、说明书、附件等等全部丢弃。想想那时的自己,活的真潇洒、过的真痛快。哪怕是几千元的手机、电脑、游戏机,只要到了手里,无论好坏,都会在第一时间撕掉所有的贴膜、附件。 如今不敢了,从什么时候转变的呢?也记不清了,总之就是如今购买回来商品,都会小心翼翼的拆开包装,如果遇到订书钉或胶带,也会非常谨慎的拆开,并且所有的包装一律保留着。万一内部的商品有问题、不喜欢、用不惯、用不着、买后悔了……都还能给自己留下一个退换的机会。 即便商品购买时没有退换政策的商品,也同样不再乱丢乱弃,去年购买的AMD R5,我就将它的盒子保留了下来,并将自己的一颗很古老的CPU放在其中,精心的收留着。时隔一年多,突然有了一个需要用到那颗老CPU的时机,很顺利的找到并替换使用。这种“爹味生活习惯”,恰恰就是“父母的生活习惯”,估计人到中年,都会被生活磨平棱角,变得如此吧。

控制台中VIM编辑中文时字符鬼影问题的解决

这个问题困扰我好久了,也不记得是什么时候开始的,也许是自从开始使用PowerShell时就出现了这个问题?控制台下使用VIM进行中文编辑,如果当前行有中文,那么这一行的内容编辑、选中,总会在行尾甩出一些鬼影字符。 因为近几年程序写得少、偶尔遇到这个问题就会换用其他编辑器临时救急,所以也就没放在心上。今天实在忍受不了,折腾了一个晚上终于找到了原因并解决了。 在vimrc配置中加入一行 set termguicolors 即可解决: 虽然说加入这行配置之后会导致vim的颜色配置与默认配置有了一些差异,但终归还是“彩色渲染”的代码,修改前后都是“赏心悦目”的状态,因而对于使用也没有什么影响。 这行代码的作用是让vim改用真彩色进行文字渲染,否则vim默认使用的是256色对文本进行渲染。而默认使用256色彩模式时,在显示复杂的 Unicode 字符(如中文字符)时,就有可能导致显示问题——无法正确计算出字符的宽度、从而引起鬼影问题。 上面的解释听起来很牵强,色彩管理和字符宽度能有什么关联呢……但毕竟它真的能解决问题,因而也就不再纠结其中的因果联系了。 奇怪的是用了很多年vim,以前从来没有察觉这个问题,似乎是最近1、2年才出现的问题。毕竟最近很少写代码,偶尔写一写、遇到稀奇古怪的编辑器问题也都是尽量避开,有的时候犯懒甚至就用notepad临时改动几行,所以也没有去深究过。感觉可能是: 1、或者就是自从windows弃用了控制台、启用了powershell之后出现的这个问题; 2、又或者是这个问题一直存在,只不过以前我在windows下一直使用的是neovim所以没有这个问题吧; 不确定,总之,经过上述调整,现在vim又可以正常的对中文内容进行编辑操作了。

小游戏(1)第一步是先写出 Hello,World

写任何程序的第一步,都是先写出 Hello, World。原因在于,能够撰写、编译、运行出最初的一个简单的输出、或者跑通基本的窗口,意味着整个变成环境的框架已经搭建起来并且通顺了。 以当前要做的这个程序为例,我并没有 Java 代码的基础知识、对正在使用的开发环境也不了解,但是我知道无论如何,也要先令开发环境顺利的部署、搭建起来。怎么证明我的开发环境是正确部署起来的呢?就是通过 Hello, world 进行验证。 这在今天对于开发者而言已经是非常友好、简单的了。从 Android Studio 官方下载 IDE 集成开发工具,在自己的电脑上一键安装,然后运行起来,基本就完成了整个开发环境的部署。与其说是“部署”,不如说就是一键傻瓜式安装。 如果放在早些年,仅这一步也许就要花费几天的时间,需要自己将整个编译链上每一个环节都调试通顺,甚至有大量的依赖工具或库,都是需要自己根据自己的电脑和系统环境准备、调整,不断地调整才能彼此配合妥当的。 受益于“包管理器”和“自动依赖检查”等概念和工具,并且受益于开源领域大量的预编译二进制包,今天这个准备过程已经非常简便。当然这是对程序的语言和开发框架而言,如果是新兴语言或行业应用、又或者是比较小众的环境,这个过程还是会令人感到痛苦和繁琐的。 无论如何,我们这次尝试进行的只是一个使用 Java 语言进行 PApplet 应用窗体的开发,所以对于搭建它的开发环境,显然是非常简单,一步操作即可完成。 在 Android Studio 中将初始的程序项目打开,并且点击运行,很快就能够看到一个基本的窗口出现,这意味着 Hello,…

防火墻設置不當招來SqlServer拒絕服務攻擊

因爲防火墻的端口設置不當,導致SqlServer的服務端口暴露給了外網,從而招來了密碼窮舉猜測攻擊。這次攻擊應該不是有針對性的,只是群掃群攻,但卻持續了好幾天,導致我的服務器宕機了。

在iPhone上用電容筆塗鴉的主觀評測

平時很喜歡畫畫、塗鴉,雖然自己繪畫水平非常差,但是閑暇的時候塗一塗能夠令自己的心情十分愉悅。自從得到了新的手機,我就一直想再買一根電容筆,這樣就可以直接使用手機塗鴉,隨時隨地、享受樂趣。