修改openwrt的配置界面luci的方法

也许你想修改一下openwrt那个路由配置的丑陋界面,也许你想事项自己软件的一些功能。但是却没有办法去修改luci。在路由器上直接修改那就算了,我想说的是如何修改该luci的源代码,这样子你编译好的bin镜像文件直接刷入路由器中就ok了。

你先得了解一下luci,包括它的模块怎么写的,用的是lua语言等:
LuCI实现启动应用程序等脚本命令
然后你想知道怎么将luci编译进固件中去:

输入./scripts/feeds/ install luci

这样子你会发现feeds文件夹下面有luci了,但是里面除了文件夹一无所有,但是回到menuconfig中去回发现有luci了,还可以选择ddns等模块,还可以选择中文语言了,可以编译到固件中去了。那么我们就编译一下试试吧。

在dl文件夹中,我们看到了luci-0.10+svn7976.tar.gz

这证明源码其实是在这里的
我们又进入build_dir/target-mips_uClibc-0.9.30.1这个文件夹下面发现了解压的上述文件了,好了,其实这个就是编译的文件夹啦。看看里面有什么?theme啊什么的,找个theme里面的header.htm改改编译后看看,发现在新的固件中已经出现了改动了。

好我再模仿application文件夹下面的一些程序 如luci-ddns写了一个luci-smustar的配置程序界面放到这个文件夹下面,回头到menuconfig中发现没有啊,怎么办?别急 回到feeds/luci/luci中找到makefile加入
$(eval $(call application,smustar,smustar for 802.1x,\
+PACKAGE_luci-app-smustar:smustar-scipts))
^_^,再回到menuconfig中就看到了,果断的选了,然后就编译到固件中去了

乎,折腾了我几天的luci终于在bulder_dir下找到源码可以修改,不过最好别该这里要改就makefile和dl下的源码吧,省的有时候buldr_dir下面的源码会呗dl下的那个压缩文件解压过去,扔在里面的文件就会丢失,小心!

好了,差不多了,剩下的就靠各位自己探索吧。可以去luci官网看看它的api接口,自己就可以任意发挥了!

写的辛苦,有用的话就动动您的鼠标支持吵吵我,最近穷困潦倒!

吵吵微信朋友圈,请实名加入:

吵吵

如无特别说明,本博客文章皆为原创。转载请说明,来自吵吵博客,QQ群:25058068 。

原文链接:http://chaochaoblog.com/archives/1013

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenWrtLuci 界面开发中,NamedSection 是常用的组件之一。它可以方便地显示一些配置项,并且提供了一些常用的操作,比如添加、删除、修改等。 下面是一个简单的 NamedSection 示例: ```lua m = Map("example") s = m:section(NamedSection, "example", "example", "Example Section") o = s:option(Value, "value", "Example Option") return m ``` 这段代码创建了一个名为 "example" 的配置项,并在 Luci 界面中显示为 "Example Section"。在这个配置项中,我们可以添加一个名为 "value" 的选项。 其中,第一个参数 "example" 是配置项的唯一标识符,必须与配置文件中的标识符一致。第二个参数 "example" 是配置项的标题,用于在界面中显示。第三个参数 "Example Section" 是 NamedSection 的标题,用于在界面中显示。第四个参数是一个可选参数,用于指定 NamedSection 的 ID,如果不指定,则使用配置项的标识符。 在这个例子中,我们使用了一个 Value 组件作为选项。除此之外,还有其他常用的组件,比如 ListValue、Flag、Button 等。 ```lua m = Map("example") s = m:section(NamedSection, "example", "example", "Example Section") o = s:option(ListValue, "list", "Example List") o:value("option1", "Option 1") o:value("option2", "Option 2") o:value("option3", "Option 3") o = s:option(Flag, "flag", "Example Flag") b = s:option(Button, "button", "Example Button") b.inputtitle = "Click me!" b.write = function() luci.http.redirect(luci.dispatcher.build_url("admin/example/example")) end return m ``` 这段代码中,我们添加了一个 ListValue 组件、一个 Flag 组件和一个 Button 组件。ListValue 组件用于显示一个下拉框,Flag 组件用于显示一个勾选框,Button 组件用于显示一个按钮。 在 Button 组件中,我们设置了 inputtitle 属性,用于指定按钮上显示的文字。write 方法用于处理按钮的点击事件,这里我们简单地重定向到当前页面。 通过多次使用 NamedSection 和不同的组件,我们可以轻松地创建一个复杂的配置界面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值