怎么更改openwrt状态里的文字?(回答满意后再追加赏分!!)

譬如把图中红框里的openwrt改成其他什么字,求大神指导。尽量说的简单点,毕竟是新手啊。(是不是可以用winscp打开某个文件直接改一下就可以了?)... 譬如把图中红框里的openwrt改成其他什么字,求大神指导。尽量说的简单点,毕竟是新手啊。(是不是可以用winscp打开某个文件直接改一下就可以了?) 展开
 我来答
怪物甄别指南rY
推荐于2017-10-10 · TA获得超过1541个赞
知道大有可为答主
回答量:1005
采纳率:0%
帮助的人:948万
展开全部

这个问题比较碎,慢慢说吧


LuCi是用Lua写的Web框架,所以你要修改这些文字就需要修改Lua脚本或者Lua脚本获得的信息


在中间的“系统名称”和“路由型号”是定义在/usr/lib/lua/luci/sys.lua这个文件里,在这个文件里你会找到一个函数叫做sysinfo()

function sysinfo()
local cpuinfo = fs.readfile("/proc/cpuinfo")
local meminfo = fs.readfile("/proc/meminfo")
local memtotal = tonumber(meminfo:match("MemTotal:%s*(%d+)"))
local memcached = tonumber(meminfo:match("\nCached:%s*(%d+)"))
local memfree = tonumber(meminfo:match("MemFree:%s*(%d+)"))
local membuffers = tonumber(meminfo:match("Buffers:%s*(%d+)"))
local bogomips = tonumber(cpuinfo:match("[Bb]ogo[Mm][Ii][Pp][Ss].-: ([^\n]+)")) or 0
local swaptotal = tonumber(meminfo:match("SwapTotal:%s*(%d+)"))
local swapcached = tonumber(meminfo:match("SwapCached:%s*(%d+)"))
local swapfree = tonumber(meminfo:match("SwapFree:%s*(%d+)"))
local system =
cpuinfo:match("system type\t+: ([^\n]+)") or
cpuinfo:match("Processor\t+: ([^\n]+)") or
cpuinfo:match("model name\t+: ([^\n]+)")
local model =
luci.util.pcdata(fs.readfile("/tmp/sysinfo/model")) or
cpuinfo:match("machine\t+: ([^\n]+)") or
cpuinfo:match("Hardware\t+: ([^\n]+)") or
luci.util.pcdata(fs.readfile("/proc/diag/model")) or
nixio.uname().machine or
system
return system, model, memtotal, memcached, membuffers, memfree, bogomips, swaptotal, swapcached, swapfree
end

这段代码里,model这个变量的结果就是你看到“路由型号”,所以你只要修改这个变量,或是这个变量指向的文件(/tmp/sysinfo/model),页面上看到的产品型号就会变化


那“系统名称”呢,英文版里更清晰,其实是指的“Hostname”,也就是你的路由器在局域网内的名字。这个的值很明白,是Linux系统决定的,具体修改的文件是/etc/config/system,里面有hostname一项。LuCI开机时从nixio.so这个动态库里的函数调用显示了这个值。从hostname(newname)这个函数里能看出来Lua使用的hostname暂存在内存的/proc/sys/kernel/hostname这里

function hostname(newname)
if type(newname) == "string" and #newname > 0 then
fs.writefile( "/proc/sys/kernel/hostname", newname )
return newname
else
return nixio.uname().nodename
end
end


我在命令行里运行echo "lalala" > /proc/sys/kernel/hostname之后,又修改了设备名称文件(tmp/sysinfo/model),将TP-Link WDR4300 V1后面的型号去掉,看起来就是这样子


(我的是新版的LuCI,界面看起来不太一样但是代码一样的)


至于固件版本,这个变量的脚本存在/usr/lib/lua/luci/version.lua。具体内容你进去看一眼应该就对上号了


记得/proc/sys/kernel/hostname和/tmp/sysinfo/model都是临时文件(都在内存里,重启或者断电就消失了)

更多追问追答
追问
断电消失啊,有没有断电不消失的办法?
追答
你可以直接指定变量名,这是死方法

在sys.lua里,直接把model这个变量赋值就好
model="The model you want"

这样他就会永远都是你指定的内容了

其他变量也一样
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
匿名用户
2017-04-07
展开全部
openwrt.pro资料挺多的,可以去看下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式