这篇文章针对如何对openwrt开源系统的LUCI界面进行配置!主要如下三点:第一,主要介绍了该如何修改luci源代码,在哪里进行修改;第二,在LuCI里如何写一个自己的模块;第三,LuCI实现启动应用程序等脚本命令。
一、如何修改LUCI源代码
二、在LUCI中如何写一个模块
官网资料: http://luci.subsignal.org/
在官网的resource中可以找到一个
Documentation: References and HowTos
别的先不说,直接就奔我们的主题吧
HowTo: Write Modules
硬是要翻译的话,就是怎么写一个模块,ok,我就是想要写802.1x的认证模块
按照官方的说法,要完成一个模块并用到里面需要两个东西,
第一个我们先找到usr/lib/lua/luci/controller在里面建立一个文件夹,也就是我们的模块名称smustar
在smustar下面再写我们模块的主文件smumodule.lua
参考官网,我们的模块写法应该是这样写的
module(“luci.controller.smustar.smumodule”, package.seeall)
function index()
entry({“admin”, “network”, “802.1x”}, cbi(“smustar-smumodule/netifaces”), “Network interfaces”, 30).dependent=false
end
第一句话是声明一下这个模块了。
第二句话就是我们模块的主函数,其中要告诉它我们的入口,与其说入口,不如说就是告诉它是要admin登录才能用的,是在network这个菜单下,名字叫做802.1x。模块执行的程序在smustar-smumodule/netifaces这里。
smustar-smumodule/netifaces是什么东西?这是我们要建立的另外一个文件。
我们找到路径/usr/lib/lua/luci/module
在下面建立文件夹smustar-smmodule建立文件netfaces.lua
好了接下来就是要在netfaces.lua写我们的程序了,参考官网所说的这个什么luci最酷的地方,也就是修改config文件
不要说你不懂什么是config文件了,最简单的比如network。
我们在/etc/config下面建立一个配置文件叫smuset
那这就是一个config文件的写法
config
option ‘user’ ‘youruser’
option ‘pass’ ‘yourpass’
ok这个config文件就是这样子了,接下来写netfaces.lua
m = Map(“smuset”, “smustar”) — We want to edit the uci config file /etc/config/smustar 这里是我们要配置的文件了,默认的路径它已经能够区别的,不用管了
s = m:section(TypedSection, “interface”, “smustar”) — Especially the “interface”-sections读出里面的interface区域来
s.addremove = true — Allow the user to create and remove the interfaces
s

key=s

key.password=true; 设置为星号的密码输入框
return m — Returns the map
好了文件就完成了,之后我们进入luci配置界面
在network下可以看到了802.1x选项
进入后有账号和密码输入框 改一下之后
save&apply一下,发现密码被修改了。我们的802.1x配置界面就做好了!
三、LuCI实现启动应用程序等脚本命令
local reboot = luci.http.formvalue(“cbi.apply”)
if reboot then
s

luci.sys.call(“killall smustar”)
luci.sys.call(“smustarLogout &”)
luci.sys.call(“smustar &”)
end
s

local logout=luci.http.formvalue(“cbid.smuset.smustar.logout”)
if logout then
s

luci.sys.call(“reboot”)
end
参考资料: http://chaochaoblog.com/