本帖最后由 small_5 于 2019-12-1 02:23 编辑
2019-12-1:修改压缩包里面的autocore文件(来自lean的仓库),部分网卡使用以前的脚本无法打开checksum gso tso功能,做了一下调整
2019-11-18:再次优化读取速度
2019-11-17晚:之前的代码ubus调用时间稍微有点长,所以重写了/usr/libexec/rpcd/luci和/usr/bin/ethinfo文件,重新打包上传
2019-11-17:新增网口信息显示,基于js构建,CPU频率温度和网口信息都与状态页同步刷新(以前在html的时候必须要手动刷新网页才会刷新数据)
另外要说明的是,某些网卡在断开情况下,速率和双工模式会显示为Unknown!,所以在这种情况下,LUCI界面显示的速率和双工模式是"-",这是正常的,请不要因为这个问题回贴回我原因。
不发单独的修改教程,帖子结尾打包上传显示CPU频率温度和网口信息的所有文件,包括原始js文件和po文件。(生成网口信息的ethinfo为明文sh文件,未编译成二进制),网口显示功能依赖ethtool,请确保编译的时候勾选上或者现有固件存在ethtool命令。
如果不知道怎么使用可以下载我发布的X64的固件,已经集成网口显示功能:https://www.right.com.cn/forum/thread-263538-1-1.html(基于https://github.com/openwrt/openwrt 19.07分支编译)
前几天19.07的LUCI将状态页面的显示从之前的html切换成js了。(Master貌似早就切换成js了)
之前给X64添加频率和温度修改index.html或者10_system.html的办法已经失效,因为切换成了js以后,不能直接在js文件里面直接使用luci.sys.exec来运行grep和sensors命令了,需要通过js文件调用ubus接口来获取,现在将新版本的方法发出来供大家参考使用:
首先修改/usr/libexec/rpcd/luci文件,添加一个ubus的method:
代码如下:
getCPUInfo = {
call = function()
local sys = require "luci.sys"
local rv = {}
rv.cpufreq = sys.exec("grep 'MHz' /proc/cpuinfo | cut -c11- | sed -n '1p' | tr -d '\n'")
rv.cputemp = sys.exec("sensors | grep 'Core 0' | cut -c10-24 | tr -d '\n'")
return rv
end
},
然后修改/usr/share/rpcd/acl.d/luci-base.json,给刚刚添加的getCPUInfo添加权限:
46行,luci这一行的结尾处改为"getMountPoints", "getCPUInfo" ],
注意结尾处空格和英文状态的逗号
最后修改/www/luci-static/resources/view/status/include/10_system.js
因为编译成固件以后js文件会把格式紧凑,所以我使用未编译之前的js文件来修改:
var callCPUInfo = rpc.declare({
object: 'luci',
method: 'getCPUInfo'
});
render: function(data) {
var boardinfo = data[0],
systeminfo = data[1],
cpuinfo = data[2],
luciversion = data[3];
把_('Architecture'), boardinfo.system, 改为_('CPU Info'), cpuinfo.cpufreq + ' MHz ' + cpuinfo.cputemp,
最后/etc/init.d/rpcd restart重启rcpd服务以后就OK了。
我把需要修改的文件打包放出来,可以自行替换源代码里面的文件自行编译,js文件我把编译前和编译后的都放出来,方便已有固件添加使用(请确保有sensors命令,不然无法获取到CPU温度)
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|