任务目标:为小米路由WEB管理首页添加CPU温度显示(如下图)
支持平台:R1D(初代大路由)、R2D(二代大路由) 使用工具:WINSCP
所需基础:windows基本操作 MP插件群:162049771
前言: 小米路由,从出身那天起就没有离开“极客”这两个字。然而尴尬的是,抱怨之声在论坛、Q群等各处此起彼伏,诸如“真垃圾,连个XX功能都没有”、“垃圾!根本不好用”、“早知不买了,几年不出一个新插件”等等。也不知道是小米宣传时定位模糊还是消费者自我定位错误。最终,一款“极客”性质的产品成了普通小白的消费品,那么抱怨之声自然而然的就来了。
然而真正的“极客”们是不该抱怨的,小米路由作为一款基于开源项目openwrt系统的产品,在软件扩展性方面是足够优秀的。不支持usb打印?“极客”可以编译相关模块来添加相关功能;广告过滤插件形同虚设?“极客”可以添加新的模块,甚至修改原有的模块来加强。与其等别人开发出功能,不如自己动手,这才是“极客”。还有,不要让人家用某路由的看不起用小米路由的,他们有“大神”帮忙开发插件?我希望小米路由论坛以后到处都是“大神”。
今天的教程会涉及到一些令人看不懂的代码,不过请放心,就算没有任何编写代码的基础,只要照着做就可以实现,之后好人会给出此功能的独立安装命令。
一、备份原文件(非常重要) 1.1 打开winscp,使用控制台逐条运行以下命令并: mkdir -p /etc/backup cp /usr/lib/lua/luci/controller/api/misystem.lua /etc/backup/ cp /usr/lib/lua/xiaoqiang/util/XQSysUtil.lua /etc/backup/ cp /usr/lib/lua/luci/view/web/*index.htm /etc/backup/
至此,原始文件就备份好了。备份的原始文件在/etc/backup/里面。
二、打开系统区域读写 2.1 winscp控制台中运行如下命令 mount -o remount rw /
此条命令作用便是挂载路由根目录为读写。 完成操作后,关闭winscp控制台。
三、修改web页面,给“CPU温度显示”做个“地基” 3.1 修改index.htm和apidex.htm 3.1.1 index.htm和apindex.htm这两个文件位于/usr/lib/lua/luci/view/web 使用winscp找到文件,先修改index.htm
3.1.2右键点击index.htm,选择编织>内部编辑器
3.2 修改index.htm 3.2.1在文本编辑窗口中使用热键ctrl+f加关键字“id="cpuhz"”找到相关代码段
3.2.2 在其下一行插入如下代码:
代码无法在论坛显示,只能用图片代替,大家可以复制文本里上面一段然后修改一下
3.2.3 ctrl+f热键搜“#cpuhz”
3.2.4 在下一行插入以下代码: $('#cputmp').text( data.tmp );
3.2.5 修改完毕。热键ctrl+s保存修改,关闭文本编辑器。
3.3 如法炮制,修改apindex.htm 3.3.1 在文本编辑窗口中使用热键ctrl+f加关键字“id="cpuhz"”找到相关代码段
3.3.2 在此行最后一个后插入以下代码:
以上为图片形式,大家可以复制前面的文本替换几个不同的字符
3.3.3 ctrl+f热键搜“#cpuhz”
3.3.4 在此行下面添加代码: $('#cputmp').text( data.tmp );
3.3.5 修改完毕。热键ctrl+s保存修改,关闭文本编辑器。
3.4至此我们已经为“CPU温度显示”在web页面做好了“地基”,刷新我们的web管理首页已经能看到了。
只是温度这里现在还没有数据显示。因为我们还没有做好“三通一平”啊!。
四、修改小米官方API,为“CPU温度显示”做好“三通一平” 4.1 修改misystem.lua文件 4.1.1 找到位于/usr/lib/lua/luci/controller/api的misystem.lua文件
4.1.2 右键该文件选择内部编辑器打开
4.1.3 热键ctrl+f搜索“["core"]”,找到如下图中的代码段
4.1.4 在下面一行插入如下代码: ["tmp"] = sys.tmp,
4.1.5 修改完毕。热键ctrl+s保存修改,关闭文本编辑器。
4.2 修改XQSysUtil.lua文件 4.2.1 找到位于/usr/lib/lua/xiaoqiang/util的XQSysUtil.lua文件
4.2.2 右键该文件选择内部编辑器打开
4.2.3 热键ctrl+f搜索“sysInfo["system"]”,找到如下图中的代码段
4.2.4 在上面一行插入如下代码: sysInfo["tmp"] = LuciUtil.exec([[cat /proc/dmu/temperature|awk '/CPU/{print substr($4,1,length($4)-2)"℃"}']])
4.2.5 修改完毕。热键ctrl+s保存修改,关闭文本编辑器。
4.6 至此,此“三通一平”工作已经全部完成。
五、生效及恢复
打开winscp控制台,逐条运行以下命令: rm -rf /tmp/luci-modulecache mount -o remount ro / 现在刷新web管理首页已经可以看到cpu核心温度了! 其实整个修改过程非常简单,难点在于不要做错任何一步,任何一步出了问题都可能失败,失败有可能会在登录web管理后出现500错误。这时请使用一开始就让大家备份的文件恢复。恢复命令: cp -rf /etc/backup/misystem.lua /usr/lib/lua/luci/controller/api/ cp -rf /etc/backup/XQSysUtil.lua /usr/lib/lua/xiaoqiang/util/ cp -rf /etc/backup/*index.htm /usr/lib/lua/luci/view/web/ 推荐大家安装当贝市场,然后从当贝市场里面一键下载软件,方便又省事。
注:本帖转自网络,版权归原作者所有! |